From 7544517685ea20f75dd9278ee778b0616167c2dc Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Thu, 4 Mar 2021 17:32:53 +0530
Subject: [PATCH 01/14] =?UTF-8?q?=F0=9F=94=97=20Bibata=20Rainbow=20repo=20?=
=?UTF-8?q?link=20added?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 62 ++++++++++++++++++++++++-------------------------------
1 file changed, 27 insertions(+), 35 deletions(-)
diff --git a/README.md b/README.md
index 54e8e0a9..ac35a0e1 100644
--- a/README.md
+++ b/README.md
@@ -72,27 +72,18 @@
---
-
-
-
- Sub Projects (click to expand)
-
-- [Bibata Rainbow](./bitmapper/packages/rainbow)
-
-
-
# Bibata ?
Bibata is **OpenSource**, Compact and Material Designed Cursor set. This project masterelop for improve `Cursor` Experience.
-- **Bibata Amber :** Yellowish Theme.
-- **Bibata Classic :** Solid Black Theme.
-- **Bibata Ice :** Light Theme.
+- **Bibata Amber :** Yellowish Theme.
+- **Bibata Classic :** Solid Black Theme.
+- **Bibata Ice :** Light Theme.
## Bibata Styles
-- **Bibata Original :** Sharp edge Bibata Cursors
-- **Bibata Modern :** Round edge Bibata Cursors
+- **Bibata Original :** Sharp edge Bibata Cursors
+- **Bibata Modern :** Round edge Bibata Cursors
## Cursor Sizes
@@ -230,9 +221,9 @@ sudo mv Bibata-* /usr/share/icons/
## External Libraries
-- libxcursor-dev
-- libx11-dev
-- libpng-dev (<=1.6)
+- libxcursor-dev
+- libx11-dev
+- libpng-dev (<=1.6)
#### Install External Libraries
@@ -263,22 +254,22 @@ sudo dnf install libX11-devel libXcursor-devel libpng-devel
## Build Dependencies
-- [gcc](https://gcc.gnu.org/install/)
-- [make](https://www.gnu.org/software/make/)
-- [nodejs](https://nodejs.org/en/) (<=12.x.x)
-- [yarn](https://classic.yarnpkg.com/en/docs/install/)
-- [python](https://www.python.org/downloads/) (<=3.8)
-- [pip3](https://pip.pypa.io/en/stable/installing/)
+- [gcc](https://gcc.gnu.org/install/)
+- [make](https://www.gnu.org/software/make/)
+- [nodejs](https://nodejs.org/en/) (<=12.x.x)
+- [yarn](https://classic.yarnpkg.com/en/docs/install/)
+- [python](https://www.python.org/downloads/) (<=3.8)
+- [pip3](https://pip.pypa.io/en/stable/installing/)
### Node Packages
-- [puppeteer](https://www.npmjs.com/package/puppeteer)
-- [pngjs](https://www.npmjs.com/package/pngjs)
-- [pixelmatch](https://www.npmjs.com/package/pixelmatch)
+- [puppeteer](https://www.npmjs.com/package/puppeteer)
+- [pngjs](https://www.npmjs.com/package/pngjs)
+- [pixelmatch](https://www.npmjs.com/package/pixelmatch)
### PyPi Packages
-- [clickgen](https://pypi.org/project/clickgen/s)
+- [clickgen](https://pypi.org/project/clickgen/s)
## Build From Scratch
@@ -333,9 +324,10 @@ make windows WIN_SIZE=96 # Supports only one pixel-size
# You may also like...
-- [**Bibata Extra**](https://github.com/ful1e5/Bibata_Extra_Cursor) - More Bibata!
-- [**Bibata Adapta**](https://gitlab.com/cscs/Bibata_AdaptaBreath_Cursors) - Bibata Based Cursor Made for AdaptaBreath and Manjaro.
-- [**Bibata Translucent**](https://github.com/Silicasandwhich/Bibata_Cursor_Translucent) - Bibata translucent is a translucent flavor of the Bibata.
+- [**Bibata Adapta**](https://gitlab.com/cscs/Bibata_AdaptaBreath_Cursors) - Bibata Based Cursor Made for AdaptaBreath and Manjaro.
+- [**Bibata Extra**](https://github.com/ful1e5/Bibata_Extra_Cursor) - More Bibata!
+- [**Bibata Rainbow**](https://github.com/ful1e5/Bibata_Cursor_Rainbow) - 'Semi-Animated' Bibata cursors with rainbow colors
+- [**Bibata Translucent**](https://github.com/Silicasandwhich/Bibata_Cursor_Translucent) - Bibata translucent is a translucent flavor of the Bibata.
@@ -359,11 +351,11 @@ Check [CONTRIBUTING.md](CONTRIBUTING.md), any suggestions for features and contr
# Credit
-- [Adwaita](https://github.com/GNOME/adwaita-icon-theme)
-- [Dmz](https://github.com/GalliumOS/dmz-cursor-theme)
-- [Yaru](https://github.com/ubuntu/yaru)
-- Emojis are taken from [here](https://emojipedia.org/)
-- Wedge loading from [loading.io](https://loading.io/spinner/wedges/-pie-wedge-pizza-circle-round-rotate) with **Microsoft** colors
+- [Adwaita](https://github.com/GNOME/adwaita-icon-theme)
+- [Dmz](https://github.com/GalliumOS/dmz-cursor-theme)
+- [Yaru](https://github.com/ubuntu/yaru)
+- Emojis are taken from [here](https://emojipedia.org/)
+- Wedge loading from [loading.io](https://loading.io/spinner/wedges/-pie-wedge-pizza-circle-round-rotate) with **Microsoft** colors
From c4bb105a5b1a195b1556e55dd75fdc38af30eadc Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Sun, 21 Mar 2021 19:49:15 +0530
Subject: [PATCH 02/14] =?UTF-8?q?=F0=9F=91=B7=20clickgen=20v1.1.9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bitmapper/packages/core/src/BitmapsGenerator.ts | 1 +
builder/setup.py | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/bitmapper/packages/core/src/BitmapsGenerator.ts b/bitmapper/packages/core/src/BitmapsGenerator.ts
index 7a017ba6..422171a9 100644
--- a/bitmapper/packages/core/src/BitmapsGenerator.ts
+++ b/bitmapper/packages/core/src/BitmapsGenerator.ts
@@ -153,3 +153,4 @@ class BitmapsGenerator {
}
}
export { BitmapsGenerator };
+export { BitmapsGenerator };
diff --git a/builder/setup.py b/builder/setup.py
index 79409db8..997fc53d 100644
--- a/builder/setup.py
+++ b/builder/setup.py
@@ -12,7 +12,7 @@ setup(
package_dir={"bbpkg": "bbpkg"},
author="Kaiz Khatri",
author_email="kaizmandhu@gamil.com",
- install_requires=["clickgen==1.1.8"],
+ install_requires=["clickgen==1.1.9"],
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
From dcc0a9984580fc0e2347338217fa0e2380f36855 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Tue, 23 Mar 2021 18:52:45 +0530
Subject: [PATCH 03/14] =?UTF-8?q?=F0=9F=91=B7=20clickgen=20v1.1.9=20and=20?=
=?UTF-8?q?todo?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 7 +++++++
builder/setup.py | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c8a8d076..005ce896 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [unreleased]
+### Added
+
+- use `clickgen.packagers` for packaging **X11/UNIX** cursors
+- typing supports from `clickgen` (v1.1.9)
+- Set clickgen version to v1.1.9 inside `builder/setup.py`
+- `Pillow` version locked at **8.1.1** by clickgen **v1.1.9**
+
### Changed
- Bibata Rainbow packages move to [own](https://github.com/ful1e5/Bibata_Cursor_Rainbow) repo
diff --git a/builder/setup.py b/builder/setup.py
index 997fc53d..67f503ad 100644
--- a/builder/setup.py
+++ b/builder/setup.py
@@ -5,7 +5,7 @@ from setuptools import setup
setup(
name="bbpkg",
- version="1.1.0",
+ version="1.1.0", # TODO: bump up
description="Generate 'Bibata' cursor theme from PNGs file",
url="https://github.com/ful1e5/Bibata_Cursor",
packages=["bbpkg"],
From b495940b9783b6a3ac1987156adc3b103b63be5b Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Tue, 23 Mar 2021 18:54:53 +0530
Subject: [PATCH 04/14] =?UTF-8?q?=F0=9F=93=A6=20XPackager=20from=20"clickg?=
=?UTF-8?q?en.packagers"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
builder/bbpkg/generator.py | 3 +--
builder/bbpkg/packager.py | 26 --------------------------
2 files changed, 1 insertion(+), 28 deletions(-)
delete mode 100644 builder/bbpkg/packager.py
diff --git a/builder/bbpkg/generator.py b/builder/bbpkg/generator.py
index d9176c30..26991ad1 100644
--- a/builder/bbpkg/generator.py
+++ b/builder/bbpkg/generator.py
@@ -6,10 +6,9 @@ from typing import Any, Dict, NamedTuple
from clickgen.builders import WindowsCursor, XCursor
from clickgen.core import CursorAlias
-from clickgen.packagers import WindowsPackager
+from clickgen.packagers import WindowsPackager, XPackager
from bbpkg.constants import AUTHOR, URL
-from bbpkg.packager import XPackager
from bbpkg.symlinks import add_missing_xcursor
diff --git a/builder/bbpkg/packager.py b/builder/bbpkg/packager.py
deleted file mode 100644
index 959e8fc8..00000000
--- a/builder/bbpkg/packager.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-from pathlib import Path
-from string import Template
-from typing import Dict
-
-THEME_FILES_TEMPLATES: Dict[str, Template] = {
- "cursor.theme": Template("[Icon Theme]\nName=$theme_name\nInherits=$theme_name"),
- "index.theme": Template(
- '[Icon Theme]\nName=$theme_name\nComment=$comment\nInherits="hicolor"'
- ),
-}
-
-
-def XPackager(directory: Path, theme_name: str, comment: str) -> None:
- """ Create a crispy `XCursors` theme package. """
-
- # Writing all .theme files
- files: Dict[str, str] = {}
- for file, template in THEME_FILES_TEMPLATES.items():
- files[file] = template.safe_substitute(theme_name=theme_name, comment=comment)
-
- for f, data in files.items():
- fp: Path = directory / f
- fp.write_text(data)
From bde717165b1a6c5aa65aa644e02054df55de01d1 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Tue, 23 Mar 2021 20:01:38 +0530
Subject: [PATCH 05/14] =?UTF-8?q?=E2=9C=85=20methods=20docs=20&=20import?=
=?UTF-8?q?=20sorting?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
builder/bbpkg/configure.py | 27 +++++++++----------
builder/bbpkg/constants.py | 1 -
builder/bbpkg/generator.py | 55 +++++++++++++++++++-------------------
builder/bbpkg/symlinks.py | 7 +++--
4 files changed, 45 insertions(+), 45 deletions(-)
diff --git a/builder/bbpkg/configure.py b/builder/bbpkg/configure.py
index 4b89fef7..4f4cbda4 100644
--- a/builder/bbpkg/configure.py
+++ b/builder/bbpkg/configure.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-from typing import Any, Dict, Tuple, TypeVar
+from pathlib import Path
+from typing import Any, Dict, Tuple, TypeVar, Union
from clickgen.util import PNGProvider
@@ -15,24 +16,20 @@ def to_tuple(x: X) -> Tuple[X, X]:
return (x, x)
-def get_config(bitmaps_dir, **kwargs) -> Dict[str, Any]:
- """Return configuration of `Bibata` pointers.
+def get_config(bitmaps_dir: Union[str, Path], **kwargs) -> Dict[str, Any]:
+ """Return configuration of `Bibata`.
- ```
- Args:
+ :param bitmaps_dir: Path to .png file's directory.
+ :type bitmaps_dir: Union[str, Path]
- :bitmaps_dir: (str | Path) Path to .png file's directory.
+ :param x_sizes: List of pixel-sizes for xcursors.
+ :type x_sizes: List[int]
+ :param win_canvas_size: Windows cursor's canvas pixel-size.
+ :type win_canvas_size: int
- Keywords Args:
-
- :x_sizes: (List[int]) List of pixel-sizes for xcursors.
-
- :win_canvas_size: (int) Windows cursor's canvas pixel-size.
-
- :win_size: (int) Pixel-size for Windows cursor.
-
- ```
+ :param win_size: Pixel-size for Windows cursor.
+ :type win_size: int
Example:
diff --git a/builder/bbpkg/constants.py b/builder/bbpkg/constants.py
index 8feb55e0..b8bd14b7 100644
--- a/builder/bbpkg/constants.py
+++ b/builder/bbpkg/constants.py
@@ -10,7 +10,6 @@ URL = "https://github.com/ful1e5/Bibata_Cursor"
# XCursor
X_DELAY: int = 13
-
# Windows Cursor
WIN_DELAY = 1
diff --git a/builder/bbpkg/generator.py b/builder/bbpkg/generator.py
index 26991ad1..3d20f4bb 100644
--- a/builder/bbpkg/generator.py
+++ b/builder/bbpkg/generator.py
@@ -4,13 +4,12 @@
from pathlib import Path
from typing import Any, Dict, NamedTuple
+from bbpkg.constants import AUTHOR, URL
+from bbpkg.symlinks import add_missing_xcursor
from clickgen.builders import WindowsCursor, XCursor
from clickgen.core import CursorAlias
from clickgen.packagers import WindowsPackager, XPackager
-from bbpkg.constants import AUTHOR, URL
-from bbpkg.symlinks import add_missing_xcursor
-
class Info(NamedTuple):
name: str
@@ -20,14 +19,16 @@ class Info(NamedTuple):
def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path, info: Info) -> None:
"""Build `Bibata` cursor theme for only `X11`(UNIX) platform.
- ```
- :config: (Dict) `Bibata` configuration.
+ :param config: `Bibata` configuration.
+ :type config: Dict[str, Dict[str, Any]]
- :x_out_dir: (Path) Path to the output directory,
- Where the `X11` cursor theme package will generate.
- It also creates a directory if not exists.
- :info: (Dict) Content theme name & comment
- ```
+ :param x_out_dir: Path to the output directory, \
+ Where the `X11` cursor theme package will generate.\
+ It also creates a directory if not exists.
+ :type x_out_dir: Path
+
+ :param info: Content theme name & comment
+ :type info: Info
"""
for _, item in config.items():
@@ -48,14 +49,16 @@ def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path, info: Info) -> No
def wbuild(config: Dict[str, Dict[str, Any]], win_out_dir: Path, info: Info) -> None:
"""Build `Bibata` cursor theme for only `Windows` platforms.
- ```
- :config: (Dict) `Bibata` configuration.
+ :param config: `Bibata` configuration.
+ :type config: Dict[str, Dict[str, Any]]
- :win_out_dir: (Path) Path to the output directory,
- Where the `Windows` cursor theme package will generate.
- It also creates a directory if not exists.
- :info: (Dict) Content theme name & comment
- ```
+ :param win_out_dir: Path to the output directory,\
+ Where the `Windows` cursor theme package will \
+ generate. It also creates a directory if not exists.
+ :type win_out_dir: Path
+
+ :param info: Content theme name & comment
+ :type info: Dict
"""
for _, item in config.items():
@@ -88,18 +91,16 @@ def build(
) -> None:
"""Build `Bibata` cursor theme for `X11` & `Windows` platforms.
- ```
- :config: (Dict) `Bibata` configuration.
+ :param config: `Bibata` configuration.
+ :type config: Dict[str, Dict[str, Any]]
- :x_out_dir: (Path) Path to the output directory,
- Where the `X11` cursor theme package will generate.
- It also creates a directory if not exists.
+ :param win_out_dir: Path to the output directory,\
+ Where the `Windows` cursor theme package will \
+ generate. It also creates a directory if not exists.
+ :type win_out_dir: Path
- :win_out_dir: (Path) Path to the output directory,
- Where the `Windows` cursor theme package will generate.
- It also creates a directory if not exists.
- :info: (Dict) Content theme name & comment
- ```
+ :param info: Content theme name & comment
+ :type info: Dict
"""
def win_build(item: Dict[str, Any], alias: CursorAlias) -> None:
diff --git a/builder/bbpkg/symlinks.py b/builder/bbpkg/symlinks.py
index bb2578fe..278028e6 100644
--- a/builder/bbpkg/symlinks.py
+++ b/builder/bbpkg/symlinks.py
@@ -2,14 +2,17 @@
# -*- coding: utf-8 -*-
import os
+from pathlib import Path
+from typing import Union
from clickgen.util import chdir
-def add_missing_xcursor(directory) -> None:
+def add_missing_xcursor(directory: Union[str, Path]) -> None:
"""Add missing `XCursor` to the Unix cursor package.
- :directory: (Path|str) directory where XCursors are available.
+ :param directory: directory where XCursors are available.
+ :type directory: Union[str, Path]
"""
symlinks = [
From 3beabbcbc0e2f9e8c7bcd424dc49f599e6a7c147 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 16:59:00 +0530
Subject: [PATCH 06/14] =?UTF-8?q?=F0=9F=A7=B0=20Use=20for=20loop=20in=20re?=
=?UTF-8?q?peated=20commands?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
builder/Makefile | 36 +++++++++++++-----------------------
1 file changed, 13 insertions(+), 23 deletions(-)
diff --git a/builder/Makefile b/builder/Makefile
index faed9ffe..7d8974a2 100644
--- a/builder/Makefile
+++ b/builder/Makefile
@@ -7,14 +7,14 @@ bitmaps_dir = "../bitmaps"
.ONESHELL:
SHELL:=/bin/bash
-X_SIZES ?=22 24 28 32 40 48 56 64 72 80 88 96
+THEMES = Amber Classic Ice
+X_SIZES ?= 22 24 28 32 40 48 56 64 72 80 88 96
WIN_CANVAS_SIZE ?= 32
WIN_SIZE ?= 24
clean:
- @rm -rf applbuild.egg-info build dist
+ @rm -rf bbpkg.egg-info build dist
@find -iname "*.pyc" -delete
-
# Removing setup.py package files if installed
@if [ -f "files.txt" ]; then
@xargs rm -rf < files.txt
@@ -22,41 +22,31 @@ clean:
@fi
setup: setup.py
- @test -d venv || python3 -m venv venv
- @. venv/bin/activate; python3 setup.py install --record files.txt
+ @python3 setup.py install --record files.txt
+
build: build_modern build_original
build_modern: build.py
- @. venv/bin/activate; python3 build.py -p "$(bitmaps_dir)/Bibata-Modern-Amber" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py -p "$(bitmaps_dir)/Bibata-Modern-Classic" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py -p "$(bitmaps_dir)/Bibata-Modern-Ice" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
+ @$(foreach theme,$(THEMES), python3 build.py -p "$(bitmaps_dir)/Bibata-Modern-$(theme)" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE);)
build_original: build.py
- @. venv/bin/activate; python3 build.py -p "$(bitmaps_dir)/Bibata-Original-Amber" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py -p "$(bitmaps_dir)/Bibata-Original-Classic" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py -p "$(bitmaps_dir)/Bibata-Original-Ice" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
+ @$(foreach theme,$(THEMES), python3 build.py -p "$(bitmaps_dir)/Bibata-Original-$(theme)" --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE);)
+
build_unix: build_modern_unix build_original_unix
build_modern_unix: build.py
- @. venv/bin/activate; python3 build.py unix -p "$(bitmaps_dir)/Bibata-Modern-Amber" --xsizes $(X_SIZES)
- @. venv/bin/activate; python3 build.py unix -p "$(bitmaps_dir)/Bibata-Modern-Classic" --xsizes $(X_SIZES)
- @. venv/bin/activate; python3 build.py unix -p "$(bitmaps_dir)/Bibata-Modern-Ice" --xsizes $(X_SIZES)
+ @$(foreach theme,$(THEMES), python3 build.py unix -p "$(bitmaps_dir)/Bibata-Modern-$(theme)" --xsizes $(X_SIZES);)
build_original_unix: build.py
- @. venv/bin/activate; python3 build.py unix -p "$(bitmaps_dir)/Bibata-Original-Amber" --xsizes $(X_SIZES)
- @. venv/bin/activate; python3 build.py unix -p "$(bitmaps_dir)/Bibata-Original-Classic" --xsizes $(X_SIZES)
- @. venv/bin/activate; python3 build.py unix -p "$(bitmaps_dir)/Bibata-Original-Ice" --xsizes $(X_SIZES)
+ @$(foreach theme,$(THEMES), python3 build.py unix -p "$(bitmaps_dir)/Bibata-Original-$(theme)" --xsizes $(X_SIZES);)
+
build_windows: build_modern_windows build_original_windows
build_modern_windows: build.py
- @. venv/bin/activate; python3 build.py windows -p "$(bitmaps_dir)/Bibata-Modern-Amber" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py windows -p "$(bitmaps_dir)/Bibata-Modern-Classic" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py windows -p "$(bitmaps_dir)/Bibata-Modern-Ice" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
+ @$(foreach theme,$(THEMES), python3 build.py windows -p "$(bitmaps_dir)/Bibata-Modern-$(theme)" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE);)
build_original_windows: build.py
- @. venv/bin/activate; python3 build.py windows -p "$(bitmaps_dir)/Bibata-Original-Amber" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py windows -p "$(bitmaps_dir)/Bibata-Original-Classic" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
- @. venv/bin/activate; python3 build.py windows -p "$(bitmaps_dir)/Bibata-Original-Ice" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE)
+ @$(foreach theme,$(THEMES), python3 build.py windows -p "$(bitmaps_dir)/Bibata-Original-$(theme)" --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE);)
From 28614dfc25309f25ba9074527ec48beb2a746cb5 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 17:15:35 +0530
Subject: [PATCH 07/14] =?UTF-8?q?=F0=9F=93=84=20Reformat=20typescript=20wi?=
=?UTF-8?q?th=202-Space?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bitmapper/package.json | 26 +-
bitmapper/packages/core/package.json | 40 +--
.../packages/core/src/BitmapsGenerator.ts | 247 +++++++++---------
.../core/src/SVGHandler/SvgDirectoryParser.ts | 118 ++++-----
.../packages/core/src/SVGHandler/colorSvg.ts | 52 ++--
bitmapper/packages/core/src/types.ts | 10 +-
.../packages/core/src/util/frameNumber.ts | 10 +-
.../packages/core/src/util/matchImages.ts | 10 +-
bitmapper/packages/core/src/util/toHTML.ts | 2 +-
bitmapper/packages/core/tsconfig.json | 20 +-
bitmapper/packages/modern/package.json | 30 +--
bitmapper/packages/modern/src/config.ts | 52 ++--
bitmapper/packages/modern/src/index.ts | 36 +--
bitmapper/packages/modern/tsconfig.json | 14 +-
bitmapper/packages/original/package.json | 30 +--
bitmapper/packages/original/src/config.ts | 52 ++--
bitmapper/packages/original/src/index.ts | 36 +--
17 files changed, 395 insertions(+), 390 deletions(-)
diff --git a/bitmapper/package.json b/bitmapper/package.json
index 685086c7..1b3f552f 100644
--- a/bitmapper/package.json
+++ b/bitmapper/package.json
@@ -1,15 +1,15 @@
{
- "name": "bibata-cursor",
- "version": "1.1.0",
- "description": "Material Based Cursors",
- "main": "index.js",
- "author": "Kaiz Khatri",
- "license": "GPL-3.0",
- "private": true,
- "scripts": {
- "render:bibata-modern": "yarn workspace bibata-modern render",
- "render:bibata-original": "yarn workspace bibata-original render",
- "render:bibata-rainbow": "yarn workspace bibata-rainbow render"
- },
- "workspaces": ["packages/*"]
+ "name": "bibata-cursor",
+ "version": "1.1.0",
+ "description": "Material Based Cursors",
+ "main": "index.js",
+ "author": "Kaiz Khatri",
+ "license": "GPL-3.0",
+ "private": true,
+ "scripts": {
+ "render:bibata-modern": "yarn workspace bibata-modern render",
+ "render:bibata-original": "yarn workspace bibata-original render",
+ "render:bibata-rainbow": "yarn workspace bibata-rainbow render"
+ },
+ "workspaces": ["packages/*"]
}
diff --git a/bitmapper/packages/core/package.json b/bitmapper/packages/core/package.json
index b464c2b6..8659588f 100644
--- a/bitmapper/packages/core/package.json
+++ b/bitmapper/packages/core/package.json
@@ -1,22 +1,22 @@
{
- "name": "bibata-core",
- "version": "1.1.0",
- "description": "Bibata bitmapper's core modules",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "author": "Kaiz Khatri",
- "license": "GPL-3.0",
- "private": true,
- "dependencies": {
- "pixelmatch": "^5.2.1",
- "pngjs": "^6.0.0",
- "puppeteer": "^7.1.0"
- },
- "devDependencies": {
- "@types/pixelmatch": "^5.2.2",
- "@types/pngjs": "^6.0.0",
- "@types/puppeteer": "^5.4.3",
- "ts-node": "^9.1.1",
- "typescript": "^4.1.5"
- }
+ "name": "bibata-core",
+ "version": "1.1.0",
+ "description": "Bibata bitmapper's core modules",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "author": "Kaiz Khatri",
+ "license": "GPL-3.0",
+ "private": true,
+ "dependencies": {
+ "pixelmatch": "^5.2.1",
+ "pngjs": "^6.0.0",
+ "puppeteer": "^7.1.0"
+ },
+ "devDependencies": {
+ "@types/pixelmatch": "^5.2.2",
+ "@types/pngjs": "^6.0.0",
+ "@types/puppeteer": "^5.4.3",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.1.5"
+ }
}
diff --git a/bitmapper/packages/core/src/BitmapsGenerator.ts b/bitmapper/packages/core/src/BitmapsGenerator.ts
index 422171a9..823a2a83 100644
--- a/bitmapper/packages/core/src/BitmapsGenerator.ts
+++ b/bitmapper/packages/core/src/BitmapsGenerator.ts
@@ -8,149 +8,154 @@ import { matchImages } from "./util/matchImages";
import { toHTML } from "./util/toHTML";
class BitmapsGenerator {
- /**
- * Generate Png files from svg code.
- * @param themeName Give name, So all bitmaps files are organized in one directory.
- * @param bitmapsDir `absolute` or `relative` path, Where `.png` files will store.
- */
- constructor(private bitmapsDir: string) {
- this.bitmapsDir = path.resolve(bitmapsDir);
- this.createDir(this.bitmapsDir);
- }
+ /**
+ * Generate Png files from svg code.
+ * @param themeName Give name, So all bitmaps files are organized in one directory.
+ * @param bitmapsDir `absolute` or `relative` path, Where `.png` files will store.
+ */
+ constructor(private bitmapsDir: string) {
+ this.bitmapsDir = path.resolve(bitmapsDir);
+ this.createDir(this.bitmapsDir);
+ }
- /**
- * Create directory if it doesn't exists.
- * @param dirPath directory `absolute` path.
- */
- private createDir(dirPath: string) {
- if (!fs.existsSync(dirPath)) {
- fs.mkdirSync(dirPath, { recursive: true });
- }
- }
+ /**
+ * Create directory if it doesn't exists.
+ * @param dirPath directory `absolute` path.
+ */
+ private createDir(dirPath: string) {
+ if (!fs.existsSync(dirPath)) {
+ fs.mkdirSync(dirPath, { recursive: true });
+ }
+ }
- /**
- * Prepare headless browser.
- */
- public async getBrowser(): Promise {
- return await puppeteer.launch({
- ignoreDefaultArgs: ["--no-sandbox"],
- headless: true,
- });
- }
+ /**
+ * Prepare headless browser.
+ */
+ public async getBrowser(): Promise {
+ return await puppeteer.launch({
+ ignoreDefaultArgs: ["--no-sandbox"],
+ headless: true,
+ });
+ }
- private async getSvgElement(
- page: Page,
- content: string
- ): Promise> {
- if (!content) {
- throw new Error(`${content} File Read error`);
- }
+ private async getSvgElement(
+ page: Page,
+ content: string
+ ): Promise> {
+ if (!content) {
+ throw new Error(`${content} File Read error`);
+ }
- const html = toHTML(content);
- await page.setContent(html, { timeout: 0 });
+ const html = toHTML(content);
+ await page.setContent(html, { timeout: 0 });
- const svg = await page.$("#container svg");
+ const svg = await page.$("#container svg");
- if (!svg) {
- throw new Error("svg element not found!");
- }
- return svg;
- }
+ if (!svg) {
+ throw new Error("svg element not found!");
+ }
+ return svg;
+ }
- public async generateStatic(browser: Browser, content: string, key: string) {
- const page = await browser.newPage();
- const svg = await this.getSvgElement(page, content);
+ public async generateStatic(browser: Browser, content: string, key: string) {
+ const page = await browser.newPage();
+ const svg = await this.getSvgElement(page, content);
- const out = path.resolve(this.bitmapsDir, `${key}.png`);
+ const out = path.resolve(this.bitmapsDir, `${key}.png`);
- await svg.screenshot({ omitBackground: true, path: out });
- await page.close();
- }
+ await svg.screenshot({ omitBackground: true, path: out });
+ await page.close();
+ }
- private async screenshot(
- element: ElementHandle
- ): Promise {
- const buffer = await element.screenshot({
- encoding: "binary",
- omitBackground: true,
- });
+ private async screenshot(
+ element: ElementHandle
+ ): Promise {
+ const buffer = await element.screenshot({
+ encoding: "binary",
+ omitBackground: true,
+ });
- if (!buffer) {
- throw new Error("SVG element screenshot not working");
- }
- return buffer;
- }
+ if (!buffer) {
+ throw new Error("SVG element screenshot not working");
+ }
+ return buffer;
+ }
- private async stopAnimation(page: Page) {
- const client = await page.target().createCDPSession();
- await client.send("Animation.setPlaybackRate", {
- playbackRate: 0,
- });
- }
+ private async stopAnimation(page: Page) {
+ const client = await page.target().createCDPSession();
+ await client.send("Animation.setPlaybackRate", {
+ playbackRate: 0,
+ });
+ }
- private async resumeAnimation(page: Page, playbackRate: number) {
- const client = await page.target().createCDPSession();
- await client.send("Animation.setPlaybackRate", {
- playbackRate,
- });
- }
+ private async resumeAnimation(page: Page, playbackRate: number) {
+ const client = await page.target().createCDPSession();
+ await client.send("Animation.setPlaybackRate", {
+ playbackRate,
+ });
+ }
- private async saveFrameImage(key: string, frame: Buffer | string) {
- const out_path = path.resolve(this.bitmapsDir, key);
- fs.writeFileSync(out_path, frame);
- }
+ private async saveFrameImage(key: string, frame: Buffer | string) {
+ const out_path = path.resolve(this.bitmapsDir, key);
+ fs.writeFileSync(out_path, frame);
+ }
- public async generateAnimated(
- browser: Browser,
- content: string,
- key: string,
- options?: {
- playbackRate?: number;
- diff?: number;
- frameLimit?: number;
- framePadding?: number;
- }
- ) {
- const opt = Object.assign(
- { playbackRate: 0.1, diff: 0, frameLimit: 300, framePadding: 4 },
- options
- );
+ public async generateAnimated(
+ browser: Browser,
+ content: string,
+ key: string,
+ options?: {
+ playbackRate?: number;
+ diff?: number;
+ frameLimit?: number;
+ framePadding?: number;
+ }
+ ) {
+ const opt = Object.assign(
+ {
+ playbackRate: 0.1,
+ diff: 0,
+ frameLimit: 300,
+ framePadding: 4,
+ },
+ options
+ );
- const page = await browser.newPage();
- const svg = await this.getSvgElement(page, content);
- await this.stopAnimation(page);
+ const page = await browser.newPage();
+ const svg = await this.getSvgElement(page, content);
+ await this.stopAnimation(page);
- let index = 1;
- let breakRendering = false;
- let prevImg: Buffer | string;
+ let index = 1;
+ let breakRendering = false;
+ let prevImg: Buffer | string;
- // Rendering frames till `imgN` matched to `imgN-1` (When Animation is done)
- while (!breakRendering) {
- if (index > opt.frameLimit) {
- throw new Error("Reached the frame limit.");
- }
+ // Rendering frames till `imgN` matched to `imgN-1` (When Animation is done)
+ while (!breakRendering) {
+ if (index > opt.frameLimit) {
+ throw new Error("Reached the frame limit.");
+ }
- await this.resumeAnimation(page, opt.playbackRate);
- const img: string | Buffer = await this.screenshot(svg);
- await this.stopAnimation(page);
+ await this.resumeAnimation(page, opt.playbackRate);
+ const img: string | Buffer = await this.screenshot(svg);
+ await this.stopAnimation(page);
- if (index > 1) {
- // @ts-ignore
- const diff = matchImages(prevImg, img);
- if (diff <= opt.diff) {
- breakRendering = !breakRendering;
- }
- }
- const number = frameNumber(index, opt.framePadding);
- const frame = `${key}-${number}.png`;
+ if (index > 1) {
+ // @ts-ignore
+ const diff = matchImages(prevImg, img);
+ if (diff <= opt.diff) {
+ breakRendering = !breakRendering;
+ }
+ }
+ const number = frameNumber(index, opt.framePadding);
+ const frame = `${key}-${number}.png`;
- this.saveFrameImage(frame, img);
+ this.saveFrameImage(frame, img);
- prevImg = img;
- ++index;
- }
- await page.close();
- }
+ prevImg = img;
+ ++index;
+ }
+ await page.close();
+ }
}
export { BitmapsGenerator };
export { BitmapsGenerator };
diff --git a/bitmapper/packages/core/src/SVGHandler/SvgDirectoryParser.ts b/bitmapper/packages/core/src/SVGHandler/SvgDirectoryParser.ts
index 65756dad..516c69b6 100644
--- a/bitmapper/packages/core/src/SVGHandler/SvgDirectoryParser.ts
+++ b/bitmapper/packages/core/src/SVGHandler/SvgDirectoryParser.ts
@@ -2,76 +2,76 @@ import fs from "fs";
import path from "path";
interface Svg {
- key: string;
- content: string;
+ key: string;
+ content: string;
}
class SvgDirectoryParser {
- /**
- * Manage and Parse SVG file path in `absolute` fashion.
- * This Parser look svg files as below fashion:
- * `
- * <@svgDir>/static
- * <@svgDir>/animated
- * `
- * @param svgDir is relative/absolute path, Where `SVG` files are stored.
- */
- semiAnimated: boolean = false;
- constructor(private svgDir: string) {
- if (!fs.existsSync(this.svgDir)) {
- throw new Error(`SVG files not found in ${this.svgDir}`);
- }
- }
+ /**
+ * Manage and Parse SVG file path in `absolute` fashion.
+ * This Parser look svg files as below fashion:
+ * `
+ * <@svgDir>/static
+ * <@svgDir>/animated
+ * `
+ * @param svgDir is relative/absolute path, Where `SVG` files are stored.
+ */
+ semiAnimated: boolean = false;
+ constructor(private svgDir: string) {
+ if (!fs.existsSync(this.svgDir)) {
+ throw new Error(`SVG files not found in ${this.svgDir}`);
+ }
+ }
- private readData(f: string): Svg {
- const content = fs.readFileSync(f, "utf-8");
- const key = path.basename(f, ".svg");
- return { content, key };
- }
+ private readData(f: string): Svg {
+ const content = fs.readFileSync(f, "utf-8");
+ const key = path.basename(f, ".svg");
+ return { content, key };
+ }
- /**
- * Return absolute paths array of SVG files data located inside '@svgDir/static'
- */
- public getStatic(): Svg[] {
- const staticDir = path.resolve(this.svgDir, "static");
+ /**
+ * Return absolute paths array of SVG files data located inside '@svgDir/static'
+ */
+ public getStatic(): Svg[] {
+ const staticDir = path.resolve(this.svgDir, "static");
- if (!fs.existsSync(staticDir)) {
- console.log(`${this.svgDir} contains semi-animated .svg files`);
- this.semiAnimated = true;
- return [];
- } else {
- const svgs = fs
- .readdirSync(staticDir)
- .map((f) => this.readData(path.resolve(staticDir, f)));
+ if (!fs.existsSync(staticDir)) {
+ console.log(`${this.svgDir} contains semi-animated .svg files`);
+ this.semiAnimated = true;
+ return [];
+ } else {
+ const svgs = fs
+ .readdirSync(staticDir)
+ .map((f) => this.readData(path.resolve(staticDir, f)));
- if (svgs.length == 0) {
- throw new Error("Static Cursors directory is empty");
- }
- return svgs;
- }
- }
- /**
- * Return absolute paths array of SVG files data located inside '@svgDir/animated'
- */
- public getAnimated(): Svg[] {
- const animatedDir = path.resolve(this.svgDir, "animated");
+ if (svgs.length == 0) {
+ throw new Error("Static Cursors directory is empty");
+ }
+ return svgs;
+ }
+ }
+ /**
+ * Return absolute paths array of SVG files data located inside '@svgDir/animated'
+ */
+ public getAnimated(): Svg[] {
+ const animatedDir = path.resolve(this.svgDir, "animated");
- if (!fs.existsSync(animatedDir)) {
- throw new Error("Animated Cursors directory not found");
- }
+ if (!fs.existsSync(animatedDir)) {
+ throw new Error("Animated Cursors directory not found");
+ }
- const svgs = fs
- .readdirSync(animatedDir)
- .map((f) => this.readData(path.resolve(animatedDir, f)));
+ const svgs = fs
+ .readdirSync(animatedDir)
+ .map((f) => this.readData(path.resolve(animatedDir, f)));
- if (svgs.length == 0 && this.semiAnimated) {
- throw new Error(
- `Can't parse svg directory ${this.svgDir} as semi-animated theme`
- );
- }
+ if (svgs.length == 0 && this.semiAnimated) {
+ throw new Error(
+ `Can't parse svg directory ${this.svgDir} as semi-animated theme`
+ );
+ }
- return svgs;
- }
+ return svgs;
+ }
}
export { SvgDirectoryParser };
diff --git a/bitmapper/packages/core/src/SVGHandler/colorSvg.ts b/bitmapper/packages/core/src/SVGHandler/colorSvg.ts
index 148dcd20..49a0b500 100644
--- a/bitmapper/packages/core/src/SVGHandler/colorSvg.ts
+++ b/bitmapper/packages/core/src/SVGHandler/colorSvg.ts
@@ -7,11 +7,11 @@ import { Colors } from "../types";
* watch.background="#FF0000" (Red)
* */
const defaultKeyColors: Colors = {
- base: "#00FF00",
- outline: "#0000FF",
- watch: {
- background: "#FF0000",
- },
+ base: "#00FF00",
+ outline: "#0000FF",
+ watch: {
+ background: "#FF0000",
+ },
};
/**
@@ -22,31 +22,31 @@ const defaultKeyColors: Colors = {
* @returns {string} SVG code with colors.
*/
const colorSvg = (
- content: string,
- colors: Colors,
- keys: Colors = defaultKeyColors
+ content: string,
+ colors: Colors,
+ keys: Colors = defaultKeyColors
): string => {
- content = content
- .replace(new RegExp(keys.base, "ig"), colors.base)
- .replace(new RegExp(keys.outline, "ig"), colors.outline);
+ content = content
+ .replace(new RegExp(keys.base, "ig"), colors.base)
+ .replace(new RegExp(keys.outline, "ig"), colors.outline);
- try {
- // === trying to replace `watch` color ===
+ try {
+ // === trying to replace `watch` color ===
- if (!colors.watch?.background) {
- throw new Error("");
- }
- const { background: b } = colors.watch;
- content = content.replace(new RegExp(keys.watch!.background, "ig"), b); // Watch Background
- } catch (error) {
- // === on error => replace `watch` color as `base` ===
+ if (!colors.watch?.background) {
+ throw new Error("");
+ }
+ const { background: b } = colors.watch;
+ content = content.replace(new RegExp(keys.watch!.background, "ig"), b); // Watch Background
+ } catch (error) {
+ // === on error => replace `watch` color as `base` ===
- content = content.replace(
- new RegExp(keys.watch!.background, "ig"),
- colors.base
- );
- }
- return content;
+ content = content.replace(
+ new RegExp(keys.watch!.background, "ig"),
+ colors.base
+ );
+ }
+ return content;
};
export { colorSvg };
diff --git a/bitmapper/packages/core/src/types.ts b/bitmapper/packages/core/src/types.ts
index cd5ddb33..da9fb1c2 100644
--- a/bitmapper/packages/core/src/types.ts
+++ b/bitmapper/packages/core/src/types.ts
@@ -10,11 +10,11 @@ type HexColor = string;
* @default background is `base` color.
*/
type Colors = {
- base: HexColor;
- outline: HexColor;
- watch?: {
- background: HexColor;
- };
+ base: HexColor;
+ outline: HexColor;
+ watch?: {
+ background: HexColor;
+ };
};
export { Colors };
diff --git a/bitmapper/packages/core/src/util/frameNumber.ts b/bitmapper/packages/core/src/util/frameNumber.ts
index 76d1165c..6afbdc46 100644
--- a/bitmapper/packages/core/src/util/frameNumber.ts
+++ b/bitmapper/packages/core/src/util/frameNumber.ts
@@ -1,7 +1,7 @@
export const frameNumber = (index: number, padding: number) => {
- let result = "" + index;
- while (result.length < padding) {
- result = "0" + result;
- }
- return result;
+ let result = "" + index;
+ while (result.length < padding) {
+ result = "0" + result;
+ }
+ return result;
};
diff --git a/bitmapper/packages/core/src/util/matchImages.ts b/bitmapper/packages/core/src/util/matchImages.ts
index 625d2bd5..351c76c1 100644
--- a/bitmapper/packages/core/src/util/matchImages.ts
+++ b/bitmapper/packages/core/src/util/matchImages.ts
@@ -2,10 +2,10 @@ import Pixelmatch from "pixelmatch";
import { PNG } from "pngjs";
export const matchImages = (img1: Buffer, img2: Buffer): number => {
- const { data: img1Data, width, height } = PNG.sync.read(img1);
- const { data: imgNData } = PNG.sync.read(img2);
+ const { data: img1Data, width, height } = PNG.sync.read(img1);
+ const { data: imgNData } = PNG.sync.read(img2);
- return Pixelmatch(img1Data, imgNData, null, width, height, {
- threshold: 0.1,
- });
+ return Pixelmatch(img1Data, imgNData, null, width, height, {
+ threshold: 0.1,
+ });
};
diff --git a/bitmapper/packages/core/src/util/toHTML.ts b/bitmapper/packages/core/src/util/toHTML.ts
index aecb3d79..effe8eef 100644
--- a/bitmapper/packages/core/src/util/toHTML.ts
+++ b/bitmapper/packages/core/src/util/toHTML.ts
@@ -16,4 +16,4 @@ export const template = `
`;
export const toHTML = (svgData: string): string =>
- template.replace("", svgData);
+ template.replace("", svgData);
diff --git a/bitmapper/packages/core/tsconfig.json b/bitmapper/packages/core/tsconfig.json
index 376e7bed..fb190a06 100644
--- a/bitmapper/packages/core/tsconfig.json
+++ b/bitmapper/packages/core/tsconfig.json
@@ -1,12 +1,12 @@
{
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "declaration": true,
- "declarationMap": true,
- "sourceMap": true,
- "composite": true,
- "outDir": "dist",
- "rootDir": "src"
- },
- "include": ["src"]
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "declarationMap": true,
+ "sourceMap": true,
+ "composite": true,
+ "outDir": "dist",
+ "rootDir": "src"
+ },
+ "include": ["src"]
}
diff --git a/bitmapper/packages/modern/package.json b/bitmapper/packages/modern/package.json
index ae778873..0b458e17 100644
--- a/bitmapper/packages/modern/package.json
+++ b/bitmapper/packages/modern/package.json
@@ -1,17 +1,17 @@
{
- "name": "bibata-modern",
- "version": "1.1.0",
- "description": "Rounded edges bibata cursors",
- "main": "dist/index.js",
- "scripts": {
- "build": "npx tsc --build",
- "render": "yarn build && node dist/index.js"
- },
- "author": "Kaiz Khatri",
- "license": "GPL-3.0",
- "private": true,
- "devDependencies": {
- "ts-node": "^9.1.1",
- "typescript": "^4.1.5"
- }
+ "name": "bibata-modern",
+ "version": "1.1.0",
+ "description": "Rounded edges bibata cursors",
+ "main": "dist/index.js",
+ "scripts": {
+ "build": "npx tsc --build",
+ "render": "yarn build && node dist/index.js"
+ },
+ "author": "Kaiz Khatri",
+ "license": "GPL-3.0",
+ "private": true,
+ "devDependencies": {
+ "ts-node": "^9.1.1",
+ "typescript": "^4.1.5"
+ }
}
diff --git a/bitmapper/packages/modern/src/config.ts b/bitmapper/packages/modern/src/config.ts
index 8a47eb7d..61886277 100644
--- a/bitmapper/packages/modern/src/config.ts
+++ b/bitmapper/packages/modern/src/config.ts
@@ -1,8 +1,8 @@
import { Colors } from "bibata-core/src/types";
interface Config {
- themeName: string;
- color: Colors;
+ themeName: string;
+ color: Colors;
}
const black = "#000000";
@@ -11,30 +11,30 @@ const amber = "#FF8300";
const richBlack = "#001524";
const config: Config[] = [
- {
- themeName: "Bibata-Modern-Amber",
- color: {
- base: amber,
- outline: white,
- watch: {
- background: richBlack,
- },
- },
- },
- {
- themeName: "Bibata-Modern-Classic",
- color: {
- base: black,
- outline: white,
- },
- },
- {
- themeName: "Bibata-Modern-Ice",
- color: {
- base: white,
- outline: black,
- },
- },
+ {
+ themeName: "Bibata-Modern-Amber",
+ color: {
+ base: amber,
+ outline: white,
+ watch: {
+ background: richBlack,
+ },
+ },
+ },
+ {
+ themeName: "Bibata-Modern-Classic",
+ color: {
+ base: black,
+ outline: white,
+ },
+ },
+ {
+ themeName: "Bibata-Modern-Ice",
+ color: {
+ base: white,
+ outline: black,
+ },
+ },
];
export { config };
diff --git a/bitmapper/packages/modern/src/index.ts b/bitmapper/packages/modern/src/index.ts
index 02377170..506309ab 100644
--- a/bitmapper/packages/modern/src/index.ts
+++ b/bitmapper/packages/modern/src/index.ts
@@ -7,31 +7,31 @@ const root = path.resolve(__dirname, "../../../../");
const svgDir = path.resolve(root, "svg", "modern");
const main = async () => {
- for (const { themeName, color } of config) {
- console.log("=>", themeName);
+ for (const { themeName, color } of config) {
+ console.log("=>", themeName);
- const bitmapsDir = path.resolve(root, "bitmaps", themeName);
- const svg = new SVGHandler.SvgDirectoryParser(svgDir);
+ const bitmapsDir = path.resolve(root, "bitmaps", themeName);
+ const svg = new SVGHandler.SvgDirectoryParser(svgDir);
- const png = new BitmapsGenerator(bitmapsDir);
- const browser = await png.getBrowser();
+ const png = new BitmapsGenerator(bitmapsDir);
+ const browser = await png.getBrowser();
- for (let { key, content } of svg.getStatic()) {
- console.log(" -> Saving", key, "...");
+ for (let { key, content } of svg.getStatic()) {
+ console.log(" -> Saving", key, "...");
- content = SVGHandler.colorSvg(content, color);
- await png.generateStatic(browser, content, key);
- }
+ content = SVGHandler.colorSvg(content, color);
+ await png.generateStatic(browser, content, key);
+ }
- for (let { key, content } of svg.getAnimated()) {
- console.log(" -> Saving", key, "...");
+ for (let { key, content } of svg.getAnimated()) {
+ console.log(" -> Saving", key, "...");
- content = SVGHandler.colorSvg(content, color);
- await png.generateAnimated(browser, content, key);
- }
+ content = SVGHandler.colorSvg(content, color);
+ await png.generateAnimated(browser, content, key);
+ }
- await browser.close();
- }
+ await browser.close();
+ }
};
main();
diff --git a/bitmapper/packages/modern/tsconfig.json b/bitmapper/packages/modern/tsconfig.json
index bb3d9cbc..2ca28c0a 100644
--- a/bitmapper/packages/modern/tsconfig.json
+++ b/bitmapper/packages/modern/tsconfig.json
@@ -1,9 +1,9 @@
{
- "references": [{ "path": "../core" }],
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "dist"
- },
- "include": ["src"]
+ "references": [{ "path": "../core" }],
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "rootDir": "src",
+ "outDir": "dist"
+ },
+ "include": ["src"]
}
diff --git a/bitmapper/packages/original/package.json b/bitmapper/packages/original/package.json
index 90d5e275..70591169 100644
--- a/bitmapper/packages/original/package.json
+++ b/bitmapper/packages/original/package.json
@@ -1,17 +1,17 @@
{
- "name": "bibata-original",
- "version": "1.1.0",
- "description": "Sharp edges bibata cursors",
- "main": "dist/index.js",
- "scripts": {
- "build": "npx tsc --build",
- "render": "yarn build && node dist/index.js"
- },
- "author": "Kaiz Khatri",
- "license": "GPL-3.0",
- "private": true,
- "devDependencies": {
- "ts-node": "^9.1.1",
- "typescript": "^4.1.5"
- }
+ "name": "bibata-original",
+ "version": "1.1.0",
+ "description": "Sharp edges bibata cursors",
+ "main": "dist/index.js",
+ "scripts": {
+ "build": "npx tsc --build",
+ "render": "yarn build && node dist/index.js"
+ },
+ "author": "Kaiz Khatri",
+ "license": "GPL-3.0",
+ "private": true,
+ "devDependencies": {
+ "ts-node": "^9.1.1",
+ "typescript": "^4.1.5"
+ }
}
diff --git a/bitmapper/packages/original/src/config.ts b/bitmapper/packages/original/src/config.ts
index 4c80f869..a70b89c0 100644
--- a/bitmapper/packages/original/src/config.ts
+++ b/bitmapper/packages/original/src/config.ts
@@ -1,8 +1,8 @@
import { Colors } from "bibata-core/src/types";
interface Config {
- themeName: string;
- color: Colors;
+ themeName: string;
+ color: Colors;
}
const black = "#000000";
@@ -11,30 +11,30 @@ const amber = "#FF8300";
const richBlack = "#001524";
const config: Config[] = [
- {
- themeName: "Bibata-Original-Amber",
- color: {
- base: amber,
- outline: white,
- watch: {
- background: richBlack,
- },
- },
- },
- {
- themeName: "Bibata-Original-Classic",
- color: {
- base: black,
- outline: white,
- },
- },
- {
- themeName: "Bibata-Original-Ice",
- color: {
- base: white,
- outline: black,
- },
- },
+ {
+ themeName: "Bibata-Original-Amber",
+ color: {
+ base: amber,
+ outline: white,
+ watch: {
+ background: richBlack,
+ },
+ },
+ },
+ {
+ themeName: "Bibata-Original-Classic",
+ color: {
+ base: black,
+ outline: white,
+ },
+ },
+ {
+ themeName: "Bibata-Original-Ice",
+ color: {
+ base: white,
+ outline: black,
+ },
+ },
];
export { config };
diff --git a/bitmapper/packages/original/src/index.ts b/bitmapper/packages/original/src/index.ts
index 7c53ba4e..82da63f9 100644
--- a/bitmapper/packages/original/src/index.ts
+++ b/bitmapper/packages/original/src/index.ts
@@ -7,31 +7,31 @@ const root = path.resolve(__dirname, "../../../../");
const svgDir = path.resolve(root, "svg", "original");
const main = async () => {
- for (const { themeName, color } of config) {
- console.log("=>", themeName);
+ for (const { themeName, color } of config) {
+ console.log("=>", themeName);
- const bitmapsDir = path.resolve(root, "bitmaps", themeName);
- const svg = new SVGHandler.SvgDirectoryParser(svgDir);
+ const bitmapsDir = path.resolve(root, "bitmaps", themeName);
+ const svg = new SVGHandler.SvgDirectoryParser(svgDir);
- const png = new BitmapsGenerator(bitmapsDir);
- const browser = await png.getBrowser();
+ const png = new BitmapsGenerator(bitmapsDir);
+ const browser = await png.getBrowser();
- for (let { key, content } of svg.getStatic()) {
- console.log(" -> Saving", key, "...");
+ for (let { key, content } of svg.getStatic()) {
+ console.log(" -> Saving", key, "...");
- content = SVGHandler.colorSvg(content, color);
- await png.generateStatic(browser, content, key);
- }
+ content = SVGHandler.colorSvg(content, color);
+ await png.generateStatic(browser, content, key);
+ }
- for (let { key, content } of svg.getAnimated()) {
- console.log(" -> Saving", key, "...");
+ for (let { key, content } of svg.getAnimated()) {
+ console.log(" -> Saving", key, "...");
- content = SVGHandler.colorSvg(content, color);
- await png.generateAnimated(browser, content, key);
- }
+ content = SVGHandler.colorSvg(content, color);
+ await png.generateAnimated(browser, content, key);
+ }
- await browser.close();
- }
+ await browser.close();
+ }
};
main();
From 7c993b12fcbcfc7501ea9e9a921295db839c7fa6 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 17:19:31 +0530
Subject: [PATCH 08/14] =?UTF-8?q?=F0=9F=93=9A=20documentation=20linting?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
builder/bbpkg/generator.py | 2 ++
builder/bbpkg/symlinks.py | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/builder/bbpkg/generator.py b/builder/bbpkg/generator.py
index 3d20f4bb..e2d4ed91 100644
--- a/builder/bbpkg/generator.py
+++ b/builder/bbpkg/generator.py
@@ -12,6 +12,8 @@ from clickgen.packagers import WindowsPackager, XPackager
class Info(NamedTuple):
+ """Important cursor package's information field"""
+
name: str
comment: str
diff --git a/builder/bbpkg/symlinks.py b/builder/bbpkg/symlinks.py
index 278028e6..94955007 100644
--- a/builder/bbpkg/symlinks.py
+++ b/builder/bbpkg/symlinks.py
@@ -9,7 +9,7 @@ from clickgen.util import chdir
def add_missing_xcursor(directory: Union[str, Path]) -> None:
- """Add missing `XCursor` to the Unix cursor package.
+ """Add missing `XCursor` to the UNIX cursor package.
:param directory: directory where XCursors are available.
:type directory: Union[str, Path]
From 432e468d6566bc5ec230c876ec4a04bfd5e20fa6 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 17:21:43 +0530
Subject: [PATCH 09/14] =?UTF-8?q?=F0=9F=93=83=20Changes=20log=20updated?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 005ce896..0f70a3dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,9 +13,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- typing supports from `clickgen` (v1.1.9)
- Set clickgen version to v1.1.9 inside `builder/setup.py`
- `Pillow` version locked at **8.1.1** by clickgen **v1.1.9**
+- **2 Space** format in `bitmapper`
+- Sphinx based docsstring in `builder/bbpkg`
### Changed
+- Bibata builder `bbpkg` install as system level
+- Removed python3 virtual environment from `builder/Makefile`
+- **clean** target fixed in `builder/Makefile`
- Bibata Rainbow packages move to [own](https://github.com/ful1e5/Bibata_Cursor_Rainbow) repo
- puppeteer `svg` element timeout fixed
- optional options typing in `BitmapGenerator.ts`
@@ -200,3 +205,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[bibata v.0.4.1]: https://github.com/ful1e5/Bibata_Cursor/compare/v0.3.1...v0.4.1
[bibata v0.3.1]: https://github.com/ful1e5/Bibata_Cursor/compare/v0.3...v0.3.1
[bibata v0.3]: https://github.com/ful1e5/Bibata_Cursor/tree/v0.3
+[bibata v0.3]: https://github.com/ful1e5/Bibata_Cursor/tree/v0.3
From 0d5db8117c1de2a0febec6929b454aa40506bfcd Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 17:44:27 +0530
Subject: [PATCH 10/14] =?UTF-8?q?=E2=9A=A1=20Remove=20dublicate=20exports?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bitmapper/packages/core/src/BitmapsGenerator.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bitmapper/packages/core/src/BitmapsGenerator.ts b/bitmapper/packages/core/src/BitmapsGenerator.ts
index 823a2a83..6536e959 100644
--- a/bitmapper/packages/core/src/BitmapsGenerator.ts
+++ b/bitmapper/packages/core/src/BitmapsGenerator.ts
@@ -157,5 +157,5 @@ class BitmapsGenerator {
await page.close();
}
}
-export { BitmapsGenerator };
+
export { BitmapsGenerator };
From bfaeb4c5ca5de7d79f071a1f46f584822822cbe2 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 17:50:27 +0530
Subject: [PATCH 11/14] =?UTF-8?q?=F0=9F=94=A2=20Increase=20animated=20png?=
=?UTF-8?q?=20frames=20limit=20(set=20to=20500=20max)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bitmapper/packages/core/src/BitmapsGenerator.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bitmapper/packages/core/src/BitmapsGenerator.ts b/bitmapper/packages/core/src/BitmapsGenerator.ts
index 6536e959..d3788339 100644
--- a/bitmapper/packages/core/src/BitmapsGenerator.ts
+++ b/bitmapper/packages/core/src/BitmapsGenerator.ts
@@ -115,7 +115,7 @@ class BitmapsGenerator {
{
playbackRate: 0.1,
diff: 0,
- frameLimit: 300,
+ frameLimit: 500,
framePadding: 4,
},
options
From 920c38cf410bbdb11121df106022002cbacb01ec Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Wed, 24 Mar 2021 17:59:16 +0530
Subject: [PATCH 12/14] =?UTF-8?q?=E2=9C=A8=20Tweak=20animated=20cursor=20f?=
=?UTF-8?q?rame=20speed?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bitmapper/packages/core/src/BitmapsGenerator.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bitmapper/packages/core/src/BitmapsGenerator.ts b/bitmapper/packages/core/src/BitmapsGenerator.ts
index d3788339..59ff2829 100644
--- a/bitmapper/packages/core/src/BitmapsGenerator.ts
+++ b/bitmapper/packages/core/src/BitmapsGenerator.ts
@@ -113,9 +113,9 @@ class BitmapsGenerator {
) {
const opt = Object.assign(
{
- playbackRate: 0.1,
+ playbackRate: 0.3,
diff: 0,
- frameLimit: 500,
+ frameLimit: 300,
framePadding: 4,
},
options
From d8a6da25bec31f7765ff93aa26d0eefe5dce5eac Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Thu, 25 Mar 2021 18:40:25 +0530
Subject: [PATCH 13/14] =?UTF-8?q?=F0=9F=A7=B9=20Clean=20builder=20cache=20?=
=?UTF-8?q?on=20every=20"build"=20Make=20commands?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Makefile | 10 +++++-----
builder/Makefile | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
index 77f49a1f..b1f17f1b 100644
--- a/Makefile
+++ b/Makefile
@@ -32,21 +32,21 @@ render_modern: bitmapper svg
#
build: bitmaps
- @cd builder && make setup build
+ @cd builder && make setup build clean
build_unix: bitmaps
@rm -rf themes
- @cd builder && make setup build_unix
+ @cd builder && make setup build_unix clean
build_windows: bitmaps
@rm -rf themes
- @cd builder && make setup build_windows
+ @cd builder && make setup build_windows clean
build_modern: bitmaps
- @cd builder && make setup build_modern
+ @cd builder && make setup build_modern clean
build_original: bitmaps
- @cd builder && make setup build_original
+ @cd builder && make setup build_original clean
#
# Installation
diff --git a/builder/Makefile b/builder/Makefile
index 7d8974a2..f4210675 100644
--- a/builder/Makefile
+++ b/builder/Makefile
@@ -22,7 +22,7 @@ clean:
@fi
setup: setup.py
- @python3 setup.py install --record files.txt
+ @python3 setup.py install --user --record files.txt
build: build_modern build_original
From 3d131e5ca6ac7c5f59ff867c00e0554aeaa0a160 Mon Sep 17 00:00:00 2001
From: ful1e5 <24286590+ful1e5@users.noreply.github.com>
Date: Fri, 26 Mar 2021 10:21:04 +0530
Subject: [PATCH 14/14] =?UTF-8?q?=F0=9F=9A=80=20Prepare=20Bibata=20v1.1.1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 8 ++++++--
bitmapper/package.json | 2 +-
bitmapper/packages/modern/package.json | 2 +-
bitmapper/packages/original/package.json | 2 +-
bitmapper/yarn.lock | 13 +------------
builder/setup.py | 2 +-
6 files changed, 11 insertions(+), 18 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0f70a3dc..bfeb2076 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [unreleased]
+## [Bibata v1.1.1] - 26 Mar 2021
+
### Added
- use `clickgen.packagers` for packaging **X11/UNIX** cursors
@@ -18,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Clean builder cache on every `make` commands
- Bibata builder `bbpkg` install as system level
- Removed python3 virtual environment from `builder/Makefile`
- **clean** target fixed in `builder/Makefile`
@@ -25,7 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- puppeteer `svg` element timeout fixed
- optional options typing in `BitmapGenerator.ts`
- Format `svg` files
-- Remove old username of author with Contributors table
+- Remove old username of an author with Contributors table
## [Bibata v1.1.0] - 26 Feb 2021
@@ -192,7 +195,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Initial release 🎊
-[unreleased]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.1.0...main
+[unreleased]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.1.1...main
+[bibata v1.1.1]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.1.0...v1.1.1
[bibata v1.1.0]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.3...v1.1.0
[bibata v1.0.3]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.2...v1.0.3
[bibata v1.0.2]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.1...v1.0.2
diff --git a/bitmapper/package.json b/bitmapper/package.json
index 1b3f552f..6efe2698 100644
--- a/bitmapper/package.json
+++ b/bitmapper/package.json
@@ -1,6 +1,6 @@
{
"name": "bibata-cursor",
- "version": "1.1.0",
+ "version": "1.1.1",
"description": "Material Based Cursors",
"main": "index.js",
"author": "Kaiz Khatri",
diff --git a/bitmapper/packages/modern/package.json b/bitmapper/packages/modern/package.json
index 0b458e17..84b4df3e 100644
--- a/bitmapper/packages/modern/package.json
+++ b/bitmapper/packages/modern/package.json
@@ -1,6 +1,6 @@
{
"name": "bibata-modern",
- "version": "1.1.0",
+ "version": "1.1.1",
"description": "Rounded edges bibata cursors",
"main": "dist/index.js",
"scripts": {
diff --git a/bitmapper/packages/original/package.json b/bitmapper/packages/original/package.json
index 70591169..637fdb3d 100644
--- a/bitmapper/packages/original/package.json
+++ b/bitmapper/packages/original/package.json
@@ -1,6 +1,6 @@
{
"name": "bibata-original",
- "version": "1.1.0",
+ "version": "1.1.1",
"description": "Sharp edges bibata cursors",
"main": "dist/index.js",
"scripts": {
diff --git a/bitmapper/yarn.lock b/bitmapper/yarn.lock
index fc0fadbd..3dcdf7bb 100644
--- a/bitmapper/yarn.lock
+++ b/bitmapper/yarn.lock
@@ -414,17 +414,6 @@ through@^2.3.8:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-ts-node@^8.10.2:
- version "8.10.2"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
- integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
- dependencies:
- arg "^4.1.0"
- diff "^4.0.1"
- make-error "^1.1.1"
- source-map-support "^0.5.17"
- yn "3.1.1"
-
ts-node@^9.1.1:
version "9.1.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
@@ -437,7 +426,7 @@ ts-node@^9.1.1:
source-map-support "^0.5.17"
yn "3.1.1"
-typescript@^4.0.5, typescript@^4.1.5:
+typescript@^4.1.5:
version "4.1.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72"
integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==
diff --git a/builder/setup.py b/builder/setup.py
index 67f503ad..119a7e7c 100644
--- a/builder/setup.py
+++ b/builder/setup.py
@@ -5,7 +5,7 @@ from setuptools import setup
setup(
name="bbpkg",
- version="1.1.0", # TODO: bump up
+ version="1.1.1",
description="Generate 'Bibata' cursor theme from PNGs file",
url="https://github.com/ful1e5/Bibata_Cursor",
packages=["bbpkg"],