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"],