⚡ Merge branch 'dev' with conflicts
152
.github/workflows/bibata-ci.yml
vendored
|
@ -1,92 +1,96 @@
|
||||||
name: bibata-ci
|
name: bibata-ci
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- "**.md"
|
- "**.md"
|
||||||
- "**.bbcode"
|
- "**.bbcode"
|
||||||
- "packages/rainbow/**"
|
- "bitmapper/packages/rainbow/**"
|
||||||
- LICENSE
|
- LICENSE
|
||||||
branches: [main, dev]
|
branches: [main, dev]
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- "**.md"
|
||||||
|
- "**.bbcode"
|
||||||
|
- "bitmapper/packages/rainbow/**"
|
||||||
|
- LICENSE
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Install build dependencies (apt)
|
- name: Install build dependencies (apt)
|
||||||
run: |
|
run: sudo apt install -y libx11-dev libxcursor-dev libpng-dev
|
||||||
sudo apt install libx11-dev libxcursor-dev libpng-dev
|
continue-on-error: false
|
||||||
continue-on-error: false
|
|
||||||
|
|
||||||
- name: Get yarn cache directory path
|
- name: Get yarn cache directory path
|
||||||
id: yarn-cache-dir-path
|
id: yarn-cache-dir-path
|
||||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||||
|
|
||||||
- uses: actions/cache@v2
|
- name: Caching yarn packages
|
||||||
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
uses: actions/cache@v2
|
||||||
with:
|
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
||||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
with:
|
||||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||||
restore-keys: |
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||||
${{ runner.os }}-yarn-
|
restore-keys: |
|
||||||
|
${{ runner.os }}-yarn-
|
||||||
|
|
||||||
- uses: actions/setup-node@v1
|
- name: Set Up NodeJS 12.x
|
||||||
with:
|
uses: actions/setup-node@v1
|
||||||
node-version: "12.x"
|
with:
|
||||||
- run: yarn install
|
node-version: "12.x"
|
||||||
- run: yarn render:bibata-modern
|
|
||||||
- run: yarn render:bibata-original
|
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Caching pip packages
|
||||||
uses: actions/setup-python@v2
|
uses: actions/cache@v2
|
||||||
with:
|
id: pip-cache # use this to check for `cache-hit` (`steps.pip-cache.outputs.cache-hit != 'true'`)
|
||||||
python-version: "3.x"
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-pip-
|
||||||
|
|
||||||
- name: Cache pip dependencies
|
- name: Set up Python 3.8
|
||||||
uses: actions/cache@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
# This path is specific to Ubuntu
|
python-version: "3.8"
|
||||||
path: ~/.cache/pip
|
|
||||||
# Look to see if there is a cache hit for the corresponding requirements file
|
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pip-
|
|
||||||
${{ runner.os }}-
|
|
||||||
|
|
||||||
- name: Install pip dependencies
|
- name: Generating `Bibata-Modern` Cursor Theme
|
||||||
run: |
|
run: make modern
|
||||||
python -m pip install --upgrade pip
|
|
||||||
python -m pip install --upgrade setuptools
|
|
||||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
||||||
python setup.py install
|
|
||||||
continue-on-error: false
|
|
||||||
|
|
||||||
- name: Generating `Bibata` Cursor Theme
|
- name: Compressing `Bibata-Modern` Cursor Theme
|
||||||
run: python build.py
|
run: tar -cvzf Bibata-Modern.tar.gz themes/*
|
||||||
|
|
||||||
- name: Compressing Artifacts
|
- name: Uploading `Bibata-Modern` Bitmaps artifact
|
||||||
run: |
|
uses: actions/upload-artifact@v2
|
||||||
tar -cvzf logs.tar.gz build.log
|
with:
|
||||||
tar -cvzf bitmaps.tar.gz bitmaps
|
name: Bibata-Modern-Bitmaps
|
||||||
tar -cvzf Bibata.tar.gz themes
|
path: bitmaps/*
|
||||||
|
|
||||||
- name: Uploading `Bibata` Build Log artifact
|
- name: Uploading `Bibata-Modern` Theme artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: logs
|
name: Bibata-Modern
|
||||||
path: logs.tar.gz
|
path: Bibata-Modern.tar.gz
|
||||||
|
|
||||||
- name: Uploading `bitmaps` artifact
|
- name: Generating `Bibata-Original` Cursor Theme
|
||||||
uses: actions/upload-artifact@v2
|
run: make original
|
||||||
with:
|
|
||||||
name: bitmaps
|
|
||||||
path: bitmaps.tar.gz
|
|
||||||
|
|
||||||
- name: Uploading `Bibata` Theme artifact
|
- name: Compressing `Bibata-Original` Cursor Theme
|
||||||
uses: actions/upload-artifact@v2
|
run: tar -cvzf Bibata-Original.tar.gz themes/*
|
||||||
with:
|
|
||||||
name: Bibata
|
- name: Uploading `Bibata-Original` Bitmaps artifact
|
||||||
path: Bibata.tar.gz
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Bibata-Original-Bitmaps
|
||||||
|
path: bitmaps/*
|
||||||
|
|
||||||
|
- name: Uploading `Bibata-Original` Theme artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Bibata-Original
|
||||||
|
path: Bibata-Original.tar.gz
|
||||||
|
|
94
.github/workflows/bibata-pr-build.yml
vendored
|
@ -1,94 +0,0 @@
|
||||||
|
|
||||||
name: bibata-pr
|
|
||||||
|
|
||||||
on:
|
|
||||||
|
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- "**.md"
|
|
||||||
- "**.bbcode"
|
|
||||||
- "packages/rainbow/**"
|
|
||||||
- LICENSE
|
|
||||||
branches: [main]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install build dependencies (apt)
|
|
||||||
run: |
|
|
||||||
sudo apt install libx11-dev libxcursor-dev libpng-dev
|
|
||||||
continue-on-error: false
|
|
||||||
|
|
||||||
- name: Get yarn cache directory path
|
|
||||||
id: yarn-cache-dir-path
|
|
||||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
|
||||||
|
|
||||||
- uses: actions/cache@v2
|
|
||||||
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
|
||||||
with:
|
|
||||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
|
||||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-yarn-
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: "12.x"
|
|
||||||
- run: yarn install
|
|
||||||
- run: yarn render:bibata-modern
|
|
||||||
- run: yarn render:bibata-original
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: "3.x"
|
|
||||||
|
|
||||||
- name: Cache pip dependencies
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
# This path is specific to Ubuntu
|
|
||||||
path: ~/.cache/pip
|
|
||||||
# Look to see if there is a cache hit for the corresponding requirements file
|
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pip-
|
|
||||||
${{ runner.os }}-
|
|
||||||
|
|
||||||
- name: Install pip dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
python -m pip install --upgrade setuptools
|
|
||||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
||||||
python setup.py install
|
|
||||||
continue-on-error: false
|
|
||||||
|
|
||||||
- name: Generating `Bibata` Cursor Theme
|
|
||||||
run: python build.py
|
|
||||||
|
|
||||||
- name: Compressing Artifacts
|
|
||||||
run: |
|
|
||||||
tar -cvzf logs.tar.gz build.log
|
|
||||||
tar -cvzf bitmaps.tar.gz bitmaps
|
|
||||||
tar -cvzf Bibata.tar.gz themes
|
|
||||||
|
|
||||||
- name: Uploading `Bibata` Build Log artifact
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: logs
|
|
||||||
path: logs.tar.gz
|
|
||||||
|
|
||||||
- name: Uploading `bitmaps` artifact
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: bitmaps
|
|
||||||
path: bitmaps.tar.gz
|
|
||||||
|
|
||||||
- name: Uploading `Bibata` Theme artifact
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: Bibata
|
|
||||||
path: Bibata.tar.gz
|
|
148
.github/workflows/bibata-rainbow-ci.yml
vendored
|
@ -1,92 +1,92 @@
|
||||||
name: bibata-rainbow-ci
|
name: bibata-rainbow-ci
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
paths:
|
paths:
|
||||||
- "packages/rainbow/**"
|
- "bitmapper/packages/rainbow/**"
|
||||||
branches: [main, dev]
|
branches: [main, dev]
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- "packages/rainbow/**"
|
- "bitmapper/packages/rainbow/**"
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Install build dependencies (apt)
|
- name: Install build dependencies (apt)
|
||||||
run: |
|
run: |
|
||||||
sudo apt install libx11-dev libxcursor-dev libpng-dev
|
sudo apt install libx11-dev libxcursor-dev libpng-dev
|
||||||
continue-on-error: false
|
continue-on-error: false
|
||||||
|
|
||||||
- name: Get yarn cache directory path
|
- name: Get yarn cache directory path
|
||||||
id: yarn-cache-dir-path
|
id: yarn-cache-dir-path
|
||||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||||
|
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-yarn-
|
${{ runner.os }}-yarn-
|
||||||
|
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: "12.x"
|
node-version: "12.x"
|
||||||
- run: yarn install
|
- run: yarn install
|
||||||
- run: yarn render:bibata-rainbow
|
- run: yarn render:bibata-rainbow
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
|
|
||||||
- name: Cache pip dependencies
|
- name: Cache pip dependencies
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
# This path is specific to Ubuntu
|
# This path is specific to Ubuntu
|
||||||
path: ~/.cache/pip
|
path: ~/.cache/pip
|
||||||
# Look to see if there is a cache hit for the corresponding requirements file
|
# Look to see if there is a cache hit for the corresponding requirements file
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
|
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-pip-
|
${{ runner.os }}-pip-
|
||||||
${{ runner.os }}-
|
${{ runner.os }}-
|
||||||
|
|
||||||
- name: Install pip dependencies
|
- name: Install pip dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
python -m pip install --upgrade setuptools
|
python -m pip install --upgrade setuptools
|
||||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||||
python setup.py install
|
python setup.py install
|
||||||
continue-on-error: false
|
continue-on-error: false
|
||||||
|
|
||||||
- name: Generating `Bibata Rainbow` Cursor Theme
|
- name: Generating `Bibata Rainbow` Cursor Theme
|
||||||
run: python build.py -x
|
run: python build.py -x
|
||||||
|
|
||||||
- name: Compressing Artifacts
|
- name: Compressing Artifacts
|
||||||
run: |
|
run: |
|
||||||
tar -cvzf logs.tar.gz build.log
|
tar -cvzf logs.tar.gz build.log
|
||||||
tar -cvzf bitmaps.tar.gz bitmaps
|
tar -cvzf bitmaps.tar.gz bitmaps
|
||||||
tar -cvzf Bibata.tar.gz themes
|
tar -cvzf Bibata.tar.gz themes
|
||||||
|
|
||||||
- name: Uploading `Bibata Rainbow` Build Log artifact
|
- name: Uploading `Bibata Rainbow` Build Log artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: logs
|
name: logs
|
||||||
path: logs.tar.gz
|
path: logs.tar.gz
|
||||||
|
|
||||||
- name: Uploading `bitmaps` artifact
|
- name: Uploading `bitmaps` artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: bitmaps
|
name: bitmaps
|
||||||
path: bitmaps.tar.gz
|
path: bitmaps.tar.gz
|
||||||
|
|
||||||
- name: Uploading `Bibata Rainbow` Theme artifact
|
- name: Uploading `Bibata Rainbow` Theme artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: Bibata
|
name: Bibata
|
||||||
path: Bibata.tar.gz
|
path: Bibata.tar.gz
|
||||||
|
|
2
.gitignore
vendored
|
@ -5,7 +5,7 @@ themes
|
||||||
test.py
|
test.py
|
||||||
|
|
||||||
# Logs Files
|
# Logs Files
|
||||||
build.log
|
builder/files.txt
|
||||||
|
|
||||||
# Extra
|
# Extra
|
||||||
.vscode
|
.vscode
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"trailingComma": "none"
|
|
||||||
}
|
|
176
CHANGELOG.md
|
@ -7,166 +7,190 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
# Tags
|
# Tags
|
||||||
|
|
||||||
- Normal tagging for **Bibata** (v1.0.0)
|
- Normal tagging for **Bibata** (v1.0.0)
|
||||||
- Tag with `br` postfix in **Bibata Rainbow** (v1.0.0.br)
|
- Tag with `br` postfix in **Bibata Rainbow** (v1.0.0.br)
|
||||||
|
|
||||||
## [unreleased]
|
## [Bibata v1.1.0] - 26 Feb 2021
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- new **[copr](https://copr.fedorainfracloud.org/coprs/peterwu/rendezvous/package/bibata-cursor-themes/)** package by @peterwu
|
|
||||||
|
- new **[copr](https://copr.fedorainfracloud.org/coprs/peterwu/rendezvous/package/bibata-cursor-themes/)** package by @peterwu
|
||||||
|
- `.svg` files separated to `<root>/svg`
|
||||||
|
- Customizable Windows & UNIX cursors #91
|
||||||
|
- Easy build system with `Make` supports
|
||||||
|
- Make docs in[README.md](./README.md#manual-build)
|
||||||
|
- use builtin clickgen WinPackager for Windows package
|
||||||
|
- Constant frames in animated cursors
|
||||||
|
- Smooth animation in Windows cursors
|
||||||
|
- `install` & `uninstall` with `make` commands
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Individual cursor build with clickgen v1.1.8 #93
|
||||||
|
- puppeteer 'single-process' args removed
|
||||||
|
- All Bitmapping code structured in `bitmapper` directory
|
||||||
|
- builder code structured inside `builder` directory
|
||||||
|
- `builder` package renamed to `bbpkg`
|
||||||
|
- Symblinks provided by `bbpkg`(new Bibata builder)
|
||||||
|
- Automatic build environment setup with `make`
|
||||||
|
- Logging file removed
|
||||||
|
- Fix dnf runtime requirements packages ful1e5/apple_cursor#34
|
||||||
|
- Fix grabbing cursors symlinks #87
|
||||||
|
- Fix Cursors not available for Login Window in Linux Mint 20 #88
|
||||||
|
- Dirty pixel in `move` cursor fixed #94
|
||||||
|
|
||||||
## [Bibata Rainbow v1.0.0] - 17 Nov 2020
|
## [Bibata Rainbow v1.0.0] - 17 Nov 2020
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- **Bibata Rainbow** (semi-animated) cursors. **#55**
|
- **Bibata Rainbow** (semi-animated) cursors. **#55**
|
||||||
- **Bibata Rainbow** workflow file added `bibata-rainbow-ci.yml`
|
- **Bibata Rainbow** workflow file added `bibata-rainbow-ci.yml`
|
||||||
- **semi-animated** cursors `.svg` parsing support in `bibata-core`
|
- **semi-animated** cursors `.svg` parsing support in `bibata-core`
|
||||||
- `PLING.bbcode` for Bibata Rainbow
|
- `PLING.bbcode` for Bibata Rainbow
|
||||||
- Tagging guid in [CHANGELOG.md](./CHANGELOG.md#tags)
|
- Tagging guid in [CHANGELOG.md](./CHANGELOG.md#tags)
|
||||||
- Bibata Rainbow's **branding** assets in `packages/rainbow/src/svgs/branding`
|
- Bibata Rainbow's **branding** assets in `packages/rainbow/src/svgs/branding`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- `build` workflow changed to `bibata-ci`
|
- `build` workflow changed to `bibata-ci`
|
||||||
- **Bibata** workflow file names changed to `bibata-ci.yml` & `bibata-pr.yml`
|
- **Bibata** workflow file names changed to `bibata-ci.yml` & `bibata-pr.yml`
|
||||||
- Optimize **BitmapsGenerator** browser.
|
- Optimize **BitmapsGenerator** browser.
|
||||||
|
|
||||||
## [Bibata v1.0.3] - 10 Nov 2020
|
## [Bibata v1.0.3] - 10 Nov 2020
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Case insensitive `colors key` replace in **bibata-core**
|
- Case insensitive `colors key` replace in **bibata-core**
|
||||||
- **Alternate.cur** added in Windows package
|
- **Alternate.cur** added in Windows package
|
||||||
- `minimumFrames` frames handler added for animated cursors in **bibata-core**
|
- `minimumFrames` frames handler added for animated cursors in **bibata-core**
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Files download reference change to [pling.com](https://www.pling.com/p/1197198/) in `PLING.bbcode`
|
- Files download reference change to [pling.com](https://www.pling.com/p/1197198/) in `PLING.bbcode`
|
||||||
- Scripts in `package.json`
|
- Scripts in `package.json`
|
||||||
- Change reference of **Alternate.cur** to `right_ptr`
|
- Change reference of **Alternate.cur** to `right_ptr`
|
||||||
- fixed #82 improvement to X-cursor (feature request)
|
- fixed #82 improvement to X-cursor (feature request)
|
||||||
- fixed #81 Corner resize cursors are not coloured (bug)
|
- fixed #81 Corner resize cursors are not coloured (bug)
|
||||||
|
|
||||||
## [Bibata v1.0.2] - 30 Oct 2020
|
## [Bibata v1.0.2] - 30 Oct 2020
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Separate **GitHib Action** workflow for **pull-request**
|
- Separate **GitHib Action** workflow for **pull-request**
|
||||||
- **pkg_info.py** inside `builder` module
|
- **pkg_info.py** inside `builder` module
|
||||||
- `builder` module docs
|
- `builder` module docs
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Windows Resize cursors wrong implementation fixed **#76** [Reopen]
|
- Windows Resize cursors wrong implementation fixed **#76** [Reopen]
|
||||||
- **Rich Black** color in `watch: background` (Bibata Amber) **#78**
|
- **Rich Black** color in `watch: background` (Bibata Amber) **#78**
|
||||||
- PyPi Requirements provided inside `setup.py`
|
- PyPi Requirements provided inside `setup.py`
|
||||||
- locked clickgen to **1.1.7**
|
- locked clickgen to **1.1.7**
|
||||||
- Package information provider module changed to `builder/pkg_info.py`
|
- Package information provider module changed to `builder/pkg_info.py`
|
||||||
|
|
||||||
## [Bibata v1.0.1] - 8 Oct 2020
|
## [Bibata v1.0.1] - 8 Oct 2020
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- **[builder](./builder/)** python package
|
- **[builder](./builder/)** python package
|
||||||
- Build only **x11** cursors by passing `--x11` flag in `build.py`
|
- Build only **x11** cursors by passing `--x11` flag in `build.py`
|
||||||
- Build only **win** cursors by passing `--win` flag in `build.py`
|
- Build only **win** cursors by passing `--win` flag in `build.py`
|
||||||
- Bump up **clickgen** version to **1.1.7** (KDE cursors fix patch)
|
- Bump up **clickgen** version to **1.1.7** (KDE cursors fix patch)
|
||||||
- `22px` size added (suggestion by **@gotroot** from pling.com)
|
- `22px` size added (suggestion by **@gotroot** from pling.com)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Browser args changed in `bibata-core` **BitmapGenerator**
|
- Browser args changed in `bibata-core` **BitmapGenerator**
|
||||||
- **yarn** scripts updated
|
- **yarn** scripts updated
|
||||||
- **yarn-packages** description updated
|
- **yarn-packages** description updated
|
||||||
- **Installation** docs updated in [README.md](./README.md) & [PLING.bbcode](./PLING.bbcode)
|
- **Installation** docs updated in [README.md](./README.md) & [PLING.bbcode](./PLING.bbcode)
|
||||||
- remove additional comments in **[PULL_REQUEST_TEMPLATE.md](https://github.com/ful1e5/Bibata_Cursor/commit/085221352038a199aae99f828d64b2ae91ace493)**
|
- remove additional comments in **[PULL_REQUEST_TEMPLATE.md](https://github.com/ful1e5/Bibata_Cursor/commit/085221352038a199aae99f828d64b2ae91ace493)**
|
||||||
- #76 Wrong implementation resize cursors **[closed]**
|
- #76 Wrong implementation resize cursors **[closed]**
|
||||||
- #74 `Pillow` pip requirements checking in installation of **clickgen**
|
- #74 `Pillow` pip requirements checking in installation of **clickgen**
|
||||||
|
|
||||||
## [Bibata v1.0.0] - 3 Oct 2020
|
## [Bibata v1.0.0] - 3 Oct 2020
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- `main` as **default** branch
|
- `main` as **default** branch
|
||||||
- Package **size** reduced
|
- Package **size** reduced
|
||||||
- Build process with `python` & [**clickgen**](https://github.com/ful1e5/clickgen)
|
- Build process with `python` & [**clickgen**](https://github.com/ful1e5/clickgen)
|
||||||
- Cursors Redesign => `all_scroll`, `pencil`, `wayland_cursor`, `xcursor` and all `pointer symbols`(with Bigger Symbols) cursors
|
- Cursors Redesign => `all_scroll`, `pencil`, `wayland_cursor`, `xcursor` and all `pointer symbols`(with Bigger Symbols) cursors
|
||||||
- `Bibata Oil` is **end of life**
|
- `Bibata Oil` is **end of life**
|
||||||
- Bitmaps Rendering with [**puppeteer**](https://github.com/puppeteer/puppeteer)
|
- Bitmaps Rendering with [**puppeteer**](https://github.com/puppeteer/puppeteer)
|
||||||
- Build Docs
|
- Build Docs
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Bibata Original (Old Bibata)
|
- Bibata Original (Old Bibata)
|
||||||
- Windows Package with **Double Click** installation 😍
|
- Windows Package with **Double Click** installation 😍
|
||||||
- Maintaining [CHANGELOG.md](./CHANGELOG.md)
|
- Maintaining [CHANGELOG.md](./CHANGELOG.md)
|
||||||
- [CURSORS.md](./CURSORS.md) for all cursors information
|
- [CURSORS.md](./CURSORS.md) for all cursors information
|
||||||
- [PLING.bbcode](./PLING.bbcode) for pling.com Product page docs
|
- [PLING.bbcode](./PLING.bbcode) for pling.com Product page docs
|
||||||
- [GitHub Actions](https://github.com/ful1e5/Bibata_Cursor/actions) added
|
- [GitHub Actions](https://github.com/ful1e5/Bibata_Cursor/actions) added
|
||||||
- New Build with **10x** faster rendering.
|
- New Build with **10x** faster rendering.
|
||||||
- Customizable Colors in **Bibata** Cursors.
|
- Customizable Colors in **Bibata** Cursors.
|
||||||
- Auto framing in animated cursors with [**pixelmatch**](https://github.com/mapbox/pixelmatch)
|
- Auto framing in animated cursors with [**pixelmatch**](https://github.com/mapbox/pixelmatch)
|
||||||
|
|
||||||
## [Bibata v0.4.2] - 12 January 2020
|
## [Bibata v0.4.2] - 12 January 2020
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- same names in Oil and Classic [Fixed again]
|
- same names in Oil and Classic [Fixed again]
|
||||||
|
|
||||||
## [Bibata v0.4.2.beta.1] - 22 December 2019
|
## [Bibata v0.4.2.beta.1] - 22 December 2019
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Bibata Logo resigned
|
- Bibata Logo resigned
|
||||||
|
|
||||||
## [Bibata v0.4.2.alpha.2] - 1 December 2019
|
## [Bibata v0.4.2.alpha.2] - 1 December 2019
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Fresh new Aminated cursors
|
- Fresh new Aminated cursors
|
||||||
- Missing KDE Cursors
|
- Missing KDE Cursors
|
||||||
- Added custom animation-delay tweak script
|
- Added custom animation-delay tweak script
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Glitch fixed in watch cursor(loading state)
|
- Glitch fixed in watch cursor(loading state)
|
||||||
- Bibata Amber Color changed to #FF8000
|
- Bibata Amber Color changed to #FF8000
|
||||||
- Bibata Oil is inspired on **adwaita gtk** theme color #272728
|
- Bibata Oil is inspired on **adwaita gtk** theme color #272728
|
||||||
|
|
||||||
## [Bibata v0.4.2.alpha.1] - 13 November 2019
|
## [Bibata v0.4.2.alpha.1] - 13 November 2019
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- New build process using python
|
- New build process using python
|
||||||
- Common .svg file for all cursor source(i.e. time saving for modification)
|
- Common .svg file for all cursor source(i.e. time saving for modification)
|
||||||
- Bibata Classic Flavor
|
- Bibata Classic Flavor
|
||||||
- Available for Windows user
|
- Available for Windows user
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Color & Shadow changed for easy visibility
|
- Color & Shadow changed for easy visibility
|
||||||
- Cursor's corner-shape changed
|
- Cursor's corner-shape changed
|
||||||
- Hot-spots changed
|
- Hot-spots changed
|
||||||
|
|
||||||
## [Bibata v.0.4.1] - 3 September 2018
|
## [Bibata v.0.4.1] - 3 September 2018
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Locations Fixed
|
- Locations Fixed
|
||||||
- AUR added in README.md
|
- AUR added in README.md
|
||||||
|
|
||||||
## [Bibata v0.3.1] - 16 March 2018
|
## [Bibata v0.3.1] - 16 March 2018
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Redesign Crosshair
|
- Redesign Crosshair
|
||||||
|
|
||||||
## [Bibata v0.3] - 3 February 2018
|
## [Bibata v0.3] - 3 February 2018
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Initial release 🎊
|
- Initial release 🎊
|
||||||
|
|
||||||
[unreleased]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.0.br...main
|
[unreleased]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.0.br...main
|
||||||
[bibata rainbow v1.0.0]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.3...v1.0.0.br
|
[bibata rainbow v1.0.0]: https://github.com/ful1e5/Bibata_Cursor/compare/v1.0.3...v1.0.0.br
|
||||||
|
|
65
CURSORS.md
|
@ -1,65 +0,0 @@
|
||||||
# Cursor Source Info
|
|
||||||
|
|
||||||
| Bibata Modern Cursors | Bibata Original Cursors | Source | Symbolic links | Windows Cursor name |
|
|
||||||
| :-------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------: | :---------------------: | :-----------------------------: | :-----------------: |
|
|
||||||
| <img src="./packages/modern/src/svg/static/move.svg" width="20%"/> | <img src="./packages/original/src/svg/static/move.svg" width="20%"/> | move.svg | `dnd_none.svg` `all_scroll.svg` | `SizeAll.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/bottom_left_corner.svg" width="20%"/> | <img src="./packages/original/src/svg/static/bottom_left_corner.svg" width="20%"/> | bottom_left_corner.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/fd_double_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/fd_double_arrow.svg" width="20%"/> | fd_double_arrow.svg | `None` | `SizeNWSE.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/top_right_corner.svg" width="20%"/> | <img src="./packages/original/src/svg/static/top_right_corner.svg" width="20%"/> | top_right_corner.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/bottom_right_corner.svg" width="20%"/> | <img src="./packages/original/src/svg/static/bottom_right_corner.svg" width="20%"/> | bottom_right_corner.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/bd_double_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/bd_double_arrow.svg" width="20%"/> | bd_double_arrow.svg | `None` | `SizeNESW.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/top_left_corner.svg" width="20%"/> | <img src="./packages/original/src/svg/static/top_left_corner.svg" width="20%"/> | top_left_corner.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/bottom_tee.svg" width="20%"/> | <img src="./packages/original/src/svg/static/bottom_tee.svg" width="20%"/> | bottom_tee.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/center_ptr.svg" width="20%"/> | <img src="./packages/original/src/svg/static/center_ptr.svg" width="20%"/> | center_ptr.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/circle.svg" width="20%"/> | <img src="./packages/original/src/svg/static/circle.svg" width="20%"/> | circle.svg | `None` | `NO.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/crossed_circle.svg" width="20%"/> | <img src="./packages/original/src/svg/static/crossed_circle.svg" width="20%"/> | crossed_circle.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/dnd_no_drop.svg" width="20%"/> | <img src="./packages/original/src/svg/static/dnd_no_drop.svg" width="20%"/> | dnd_no_drop.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/context_menu.svg" width="20%"/> | <img src="./packages/original/src/svg/static/context_menu.svg" width="20%"/> | context_menu.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/copy.svg" width="20%"/> | <img src="./packages/original/src/svg/static/copy.svg" width="20%"/> | copy.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/dnd_copy.svg" width="20%"/> | <img src="./packages/original/src/svg/static/dnd_copy.svg" width="20%"/> | dnd_copy.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/cross.svg" width="20%"/> | <img src="./packages/original/src/svg/static/cross.svg" width="20%"/> | cross.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/tcross.svg" width="20%"/> | <img src="./packages/original/src/svg/static/tcross.svg" width="20%"/> | tcross.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/crosshair.svg" width="20%"/> | <img src="./packages/original/src/svg/static/crosshair.svg" width="20%"/> | crosshair.svg | `None` | `Cross.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/dotbox.svg" width="20%"/> | <img src="./packages/original/src/svg/static/dotbox.svg" width="20%"/> | dotbox.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/hand1.svg" width="20%"/> | <img src="./packages/original/src/svg/static/hand1.svg" width="20%"/> | hand1.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/hand2.svg" width="20%"/> | <img src="./packages/original/src/svg/static/hand2.svg" width="20%"/> | hand2.svg | `None` | `Hand.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/left_ptr.svg" width="20%"/> | <img src="./packages/original/src/svg/static/left_ptr.svg" width="20%"/> | left_ptr.svg | `None` | `Arrow.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/left_side.svg" width="20%"/> | <img src="./packages/original/src/svg/static/left_side.svg" width="20%"/> | left_side.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/right_side.svg" width="20%"/> | <img src="./packages/original/src/svg/static/right_side.svg" width="20%"/> | right_side.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/left_tee.svg" width="20%"/> | <img src="./packages/original/src/svg/static/left_tee.svg" width="20%"/> | left_tee.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/link.svg" width="20%"/> | <img src="./packages/original/src/svg/static/link.svg" width="20%"/> | link.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/dnd_link.svg" width="20%"/> | <img src="./packages/original/src/svg/static/dnd_link.svg" width="20%"/> | dnd_link.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/ll_angle.svg" width="20%"/> | <img src="./packages/original/src/svg/static/ll_angle.svg" width="20%"/> | ll_angle.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/lr_angle.svg" width="20%"/> | <img src="./packages/original/src/svg/static/lr_angle.svg" width="20%"/> | lr_angle.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/dnd_move.svg" width="20%"/> | <img src="./packages/original/src/svg/static/dnd_move.svg" width="20%"/> | dnd_move.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/grabbing.svg" width="20%"/> | <img src="./packages/original/src/svg/static/grabbing.svg" width="20%"/> | grabbing.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/pointer_move.svg" width="20%"/> | <img src="./packages/original/src/svg/static/pointer_move.svg" width="20%"/> | pointer_move.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/pencil.svg" width="20%"/> | <img src="./packages/original/src/svg/static/pencil.svg" width="20%"/> | pencil.svg | `None` | `Handwriting.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/plus.svg" width="20%"/> | <img src="./packages/original/src/svg/static/plus.svg" width="20%"/> | plus.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/question_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/question_arrow.svg" width="20%"/> | question_arrow.svg | `None` | `Help.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/dnd_ask.svg" width="20%"/> | <img src="./packages/original/src/svg/static/dnd_ask.svg" width="20%"/> | dnd_ask.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/right_ptr.svg" width="20%"/> | <img src="./packages/original/src/svg/static/right_ptr.svg" width="20%"/> | right_ptr.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/right_tee.svg" width="20%"/> | <img src="./packages/original/src/svg/static/right_tee.svg" width="20%"/> | right_tee.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/sb_down_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/sb_down_arrow.svg" width="20%"/> | sb_down_arrow.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/sb_h_double_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/sb_h_double_arrow.svg" width="20%"/> | sb_h_double_arrow.svg | `None` | `SizeWE.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/sb_left_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/sb_left_arrow.svg" width="20%"/> | sb_left_arrow.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/sb_right_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/sb_right_arrow.svg" width="20%"/> | sb_right_arrow.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/sb_up_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/sb_up_arrow.svg" width="20%"/> | sb_up_arrow.svg | `None` | `Alternate.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/sb_v_double_arrow.svg" width="20%"/> | <img src="./packages/original/src/svg/static/sb_v_double_arrow.svg" width="20%"/> | sb_v_double_arrow.svg | `None` | `SizeNS.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/top_side.svg" width="20%"/> | <img src="./packages/original/src/svg/static/top_side.svg" width="20%"/> | top_side.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/bottom_side.svg" width="20%"/> | <img src="./packages/original/src/svg/static/bottom_side.svg" width="20%"/> | bottom_side.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/top_tee.svg" width="20%"/> | <img src="./packages/original/src/svg/static/top_tee.svg" width="20%"/> | top_tee.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/ul_angle.svg" width="20%"/> | <img src="./packages/original/src/svg/static/ul_angle.svg" width="20%"/> | ul_angle.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/ur_angle.svg" width="20%"/> | <img src="./packages/original/src/svg/static/ur_angle.svg" width="20%"/> | ur_angle.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/vertical_text.svg" width="20%"/> | <img src="./packages/original/src/svg/static/vertical_text.svg" width="20%"/> | vertical_text.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/animated/wait.svg" width="20%"/> | <img src="./packages/original/src/svg/animated/wait.svg" width="20%"/> | wait.svg | `None` | `Wait.ani` |
|
|
||||||
| <img src="./packages/modern/src/svg/animated/left_ptr_watch.svg" width="20%"/> | <img src="./packages/original/src/svg/animated/left_ptr_watch.svg" width="20%"/> | left_ptr_watch.svg | `None` | `AppStarting.ani` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/wayland_cursor.svg" width="20%"/> | <img src="./packages/original/src/svg/static/wayland_cursor.svg" width="20%"/> | wayland_cursor.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/x_cursor.svg" width="20%"/> | <img src="./packages/original/src/svg/static/x_cursor.svg" width="20%"/> | x_cursor.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/xterm.svg" width="20%"/> | <img src="./packages/original/src/svg/static/xterm.svg" width="20%"/> | xterm.svg | `None` | `IBeam.cur` |
|
|
||||||
| <img src="./packages/modern/src/svg/static/zoom_in.svg" width="20%"/> | <img src="./packages/original/src/svg/static/zoom_in.svg" width="20%"/> | zoom_in.svg | `None` | |
|
|
||||||
| <img src="./packages/modern/src/svg/static/zoom_out.svg" width="20%"/> | <img src="./packages/original/src/svg/static/zoom_out.svg" width="20%"/> | zoom_out.svg | `None` | |
|
|
||||||
|
|
||||||
## Figma File
|
|
||||||
|
|
||||||
[](https://www.figma.com/file/Y9RKZLXhSvaxpUzsKGJkp6/Bibata-Cursor?node-id=0%3A1)
|
|
|
@ -1,2 +0,0 @@
|
||||||
include builder/windows.inf
|
|
||||||
include builder/hotspots.json
|
|
85
Makefile
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
all: clean render build
|
||||||
|
|
||||||
|
unix: clean render bitmaps
|
||||||
|
@cd builder && make setup build_unix
|
||||||
|
|
||||||
|
windows: clean render bitmaps
|
||||||
|
@cd builder && make setup build_windows
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -rf bitmaps themes
|
||||||
|
|
||||||
|
modern: clean render_modern build_modern
|
||||||
|
original:clean render_original build_original
|
||||||
|
|
||||||
|
#
|
||||||
|
# Render Bibata Bitmaps
|
||||||
|
#
|
||||||
|
|
||||||
|
render: bitmapper svg
|
||||||
|
@cd bitmapper && make install render_modern render_original
|
||||||
|
|
||||||
|
render_original: bitmapper svg
|
||||||
|
@cd bitmapper && make install render_original
|
||||||
|
|
||||||
|
render_modern: bitmapper svg
|
||||||
|
@cd bitmapper && make install render_modern
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build Bibata Unix & Windows cursors
|
||||||
|
#
|
||||||
|
|
||||||
|
build: bitmaps
|
||||||
|
@cd builder && make setup build
|
||||||
|
|
||||||
|
build_unix: bitmaps
|
||||||
|
@rm -rf themes
|
||||||
|
@cd builder && make setup build_unix
|
||||||
|
|
||||||
|
build_windows: bitmaps
|
||||||
|
@rm -rf themes
|
||||||
|
@cd builder && make setup build_windows
|
||||||
|
|
||||||
|
build_modern: bitmaps
|
||||||
|
@cd builder && make setup build_modern
|
||||||
|
|
||||||
|
build_original: bitmaps
|
||||||
|
@cd builder && make setup build_original
|
||||||
|
|
||||||
|
#
|
||||||
|
# Installation
|
||||||
|
#
|
||||||
|
|
||||||
|
.ONESHELL:
|
||||||
|
SHELL:=/bin/bash
|
||||||
|
|
||||||
|
src = ./themes/Bibata-*
|
||||||
|
local := ~/.icons
|
||||||
|
local_dest := $(local)/Bibata-*
|
||||||
|
|
||||||
|
root := /usr/share/icons
|
||||||
|
root_dest := $(root)/Bibata-*
|
||||||
|
|
||||||
|
install: themes
|
||||||
|
@if [[ $EUID -ne 0 ]]; then
|
||||||
|
@echo "> Installing 'Bibata' cursors inside $(local)/..."
|
||||||
|
@mkdir -p $(local)
|
||||||
|
@cp -r $(src) $(local)/ && echo "> Installed!"
|
||||||
|
@else
|
||||||
|
@echo "> Installing 'Bibata' cursors inside $(root)/..."
|
||||||
|
@mkdir -p $(root)
|
||||||
|
@sudo cp -r $(src) $(root)/ && echo "> Installed!"
|
||||||
|
@fi
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
@if [[ $EUID -ne 0 ]]; then
|
||||||
|
@echo "> Removing 'Bibata' cursors from '$(local)'..."
|
||||||
|
@rm -rf $(local_dest)
|
||||||
|
@else
|
||||||
|
@echo "> Removing 'Bibata' cursors from '$(root)'..."
|
||||||
|
@sudo rm -rf $(root_dest)
|
||||||
|
@fi
|
||||||
|
|
||||||
|
reinstall: uninstall install
|
|
@ -7,8 +7,9 @@
|
||||||
[i]Available Sizes[/i] [b]22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96[/b]
|
[i]Available Sizes[/i] [b]22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96[/b]
|
||||||
[i]Get the latest build[/i] @[b][url=https://github.com/ful1e5/Bibata_Cursor/actions]GitHub Actions[/url][/b]
|
[i]Get the latest build[/i] @[b][url=https://github.com/ful1e5/Bibata_Cursor/actions]GitHub Actions[/url][/b]
|
||||||
[i]Release Notification[/i] at [b][url=https://twitter.com/ful1e5]Twitter[/url][/b](@ful1e5)
|
[i]Release Notification[/i] at [b][url=https://twitter.com/ful1e5]Twitter[/url][/b](@ful1e5)
|
||||||
|
For [i]Customizing Size[/i] check [b][url=https://github.com/ful1e5/Bibata_Cursor#manual-build]README.md[/url][/b]
|
||||||
|
|
||||||
[b][size=150]Linux/X11 installation[/size][/b]
|
[b]Linux/X11 installation[/b]
|
||||||
Get the latest stable Linux release from the [b][url=https://www.pling.com/p/1197198/#files-panel]Pling[/url][/b]. Unpack [b].tar.gz[/b] file and follow these [b]commands[/b].
|
Get the latest stable Linux release from the [b][url=https://www.pling.com/p/1197198/#files-panel]Pling[/url][/b]. Unpack [b].tar.gz[/b] file and follow these [b]commands[/b].
|
||||||
|
|
||||||
[b]Install[/b]
|
[b]Install[/b]
|
||||||
|
@ -27,8 +28,8 @@ Get the latest stable Linux release from the [b][url=https://www.pling.com/p/119
|
||||||
|
|
||||||
[size=150][b]Window installation[/b][/size]
|
[size=150][b]Window installation[/b][/size]
|
||||||
[list=1]
|
[list=1]
|
||||||
[*]unzip [b]Bibata_Windows.zip[/b] file[/*]
|
[*]unzip [b].zip[/b] file[/*]
|
||||||
[*]Open [b]Bibata_Windows/<Bibata_flavor>[/b] in Explorer, and [b]right-click[/b] on [b]install.inf[/b].[/*]
|
[*]Open [b]unziped[/b] directory in Explorer, and [b]right-click[/b] on [b]install.inf[/b].[/*]
|
||||||
[*]Click 'Install' from the context menu, and authorize the modifications to your system.[/*]
|
[*]Click 'Install' from the context menu, and authorize the modifications to your system.[/*]
|
||||||
[*]Open [i]Control Panel > Personalisation and Appearance > Change mouse pointers[/i], and select [b]Bibata Cursors[/b].[/*]
|
[*]Open [i]Control Panel > Personalisation and Appearance > Change mouse pointers[/i], and select [b]Bibata Cursors[/b].[/*]
|
||||||
[*]Click '[b]Apply[/b]'.[/*]
|
[*]Click '[b]Apply[/b]'.[/*]
|
||||||
|
@ -43,4 +44,4 @@ Get the latest stable Linux release from the [b][url=https://www.pling.com/p/119
|
||||||
[/list]
|
[/list]
|
||||||
|
|
||||||
[size=150][b]License & Terms[/b][/size]
|
[size=150][b]License & Terms[/b][/size]
|
||||||
'[b]Bibata[/b]' Cursor Theme is available under the terms of the [b]GPL-3.0[/b] license.
|
'[b]Bibata[/b]' Cursor Theme is available under the terms of the [b]GPL-3.0[/b] license.
|
||||||
|
|
207
README.md
|
@ -72,77 +72,27 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- Table Of Content -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><strong>Table of Contents</strong> (click to expand)</summary>
|
|
||||||
|
|
||||||
- [Bibata ?](#bibata-)
|
|
||||||
- [Bibata Styles](#bibata-styles)
|
|
||||||
- [Cursor Sizes](#cursor-sizes)
|
|
||||||
- [Colors](#colors)
|
|
||||||
- [Preview](#preview)
|
|
||||||
- [Quick install](#quick-install)
|
|
||||||
- [Packages 📦](#packages-)
|
|
||||||
- [Arch Linux/Manjaro](#arch-linuxmanjaro)
|
|
||||||
- [Fedora](#fedora)
|
|
||||||
- [copr-repo by @peterwu (recommended)](#copr-repo-by-peterwu-recommended)
|
|
||||||
- [copr-repo by @muhalantabli](#copr-repo-by-muhalantabli)
|
|
||||||
- [Manual Install](#manual-install)
|
|
||||||
- [Linux/X11](#linuxx11)
|
|
||||||
- [Windows](#windows)
|
|
||||||
- [Dependencies](#dependencies)
|
|
||||||
- [Runtime Dependencies](#runtime-dependencies)
|
|
||||||
- [Install Runtime Dependencies](#install-runtime-dependencies)
|
|
||||||
- [macOS](#macos)
|
|
||||||
- [Debain/ubuntu](#debainubuntu)
|
|
||||||
- [ArchLinux/Manjaro](#archlinuxmanjaro)
|
|
||||||
- [Fedora/Fedora Silverblue/CentOS/RHEL](#fedorafedora-silverbluecentosrhel)
|
|
||||||
- [Build Dependencies](#build-dependencies)
|
|
||||||
- [Node Packages](#node-packages)
|
|
||||||
- [PyPi Packages](#pypi-packages)
|
|
||||||
- [Build From Scratch](#build-from-scratch)
|
|
||||||
- [⚡ Auto Build (using GitHub Actions)](#-auto-build-using-github-actions)
|
|
||||||
- [Manual Build](#manual-build)
|
|
||||||
- [Setup python environment](#setup-python-environment)
|
|
||||||
- [Compile From Source](#compile-from-source)
|
|
||||||
- [Install Node/PyPi Packages](#install-nodepypi-packages)
|
|
||||||
- [Build `Bibata`](#build-bibata)
|
|
||||||
- [Build `Bibata Modern` Only](#build-bibata-modern-only)
|
|
||||||
- [Build `Bibata Original` Only](#build-bibata-original-only)
|
|
||||||
- [Install Build Theme](#install-build-theme)
|
|
||||||
- [Linux](#linux)
|
|
||||||
- [Windows](#windows-1)
|
|
||||||
- [You may also like...](#you-may-also-like)
|
|
||||||
- [Bugs](#bugs)
|
|
||||||
- [Getting Help](#getting-help)
|
|
||||||
- [Contributing](#contributing)
|
|
||||||
- [Credit](#credit)
|
|
||||||
- [Support](#support)
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<!-- Sub Projects -->
|
<!-- Sub Projects -->
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>Sub Projects</strong> (click to expand)</summary>
|
<summary><strong>Sub Projects</strong> (click to expand)</summary>
|
||||||
|
|
||||||
- [Bibata Rainbow](./packages/rainbow)
|
- [Bibata Rainbow](./bitmapper/packages/rainbow)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
<!-- Bibata intro -->
|
|
||||||
|
|
||||||
# Bibata ?
|
# Bibata ?
|
||||||
|
|
||||||
Bibata is **OpenSource**, Compact and Material Designed Cursor set. This project masterelop for improve `Cursor` Experience.
|
Bibata is **OpenSource**, Compact and Material Designed Cursor set. This project masterelop for improve `Cursor` Experience.
|
||||||
|
|
||||||
- **Bibata Amber :** Yellowish Theme.
|
- **Bibata Amber :** Yellowish Theme.
|
||||||
- **Bibata Classic :** Solid Black Theme.
|
- **Bibata Classic :** Solid Black Theme.
|
||||||
- **Bibata Ice :** Light Theme.
|
- **Bibata Ice :** Light Theme.
|
||||||
|
|
||||||
## Bibata Styles
|
## Bibata Styles
|
||||||
|
|
||||||
- **Bibata Original :** Sharp edge Bibata Cursors
|
- **Bibata Original :** Sharp edge Bibata Cursors
|
||||||
- **Bibata Modern :** Round edge Bibata Cursors
|
- **Bibata Modern :** Round edge Bibata Cursors
|
||||||
|
|
||||||
## Cursor Sizes
|
## Cursor Sizes
|
||||||
|
|
||||||
|
@ -169,20 +119,22 @@ Bibata is **OpenSource**, Compact and Material Designed Cursor set. This project
|
||||||
|
|
||||||
## Preview
|
## Preview
|
||||||
|
|
||||||
|
> Check Figma file [here](https://www.figma.com/file/Y9RKZLXhSvaxpUzsKGJkp6/Bibata-Cursor?node-id=0%3A1)
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img title="Bibata Amber" width="90%" src="https://imgur.com/p60SQOq.png">
|
<img title="Bibata Amber" width="90%" src="https://i.imgur.com/2DEYWDC.png">
|
||||||
</br>
|
</br>
|
||||||
<sub>Bibata Amber</sub>
|
<sub>Bibata Amber</sub>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img title="Bibata Classic" width="90%" src="https://imgur.com/WaqGcUF.png">
|
<img title="Bibata Classic" width="90%" src="https://i.imgur.com/C8mMQ3j.png">
|
||||||
</br>
|
</br>
|
||||||
<sub>Bibata Classic</sub>
|
<sub>Bibata Classic</sub>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img title="Bibata Ice" width="90%" src="https://imgur.com/ON1sd4H.png">
|
<img title="Bibata Ice" width="90%" src="https://i.imgur.com/ovzTw6u.png">
|
||||||
</br>
|
</br>
|
||||||
<sub>Bibata Ice</sub>
|
<sub>Bibata Ice</sub>
|
||||||
</p>
|
</p>
|
||||||
|
@ -222,6 +174,7 @@ yay -S bibata-cursor-theme-bin # pre-built binary
|
||||||
#### copr-repo by @peterwu (recommended)
|
#### copr-repo by @peterwu (recommended)
|
||||||
|
|
||||||
**Enable the repo:**
|
**Enable the repo:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf copr enable peterwu/rendezvous
|
sudo dnf copr enable peterwu/rendezvous
|
||||||
```
|
```
|
||||||
|
@ -265,8 +218,8 @@ sudo mv Bibata-* /usr/share/icons/
|
||||||
|
|
||||||
#### Windows
|
#### Windows
|
||||||
|
|
||||||
1. unzip `Bibata_Windows.zip` file
|
1. unzip `.zip` file
|
||||||
2. Open `Bibata_Windows/<Bibata_flavor>` in Explorer, and **right click** on `install.inf`.
|
2. Open unziped directory in Explorer, and **right click** on `install.inf`.
|
||||||
3. Click 'Install' from the context menu, and authorize the modifications to your system.
|
3. Click 'Install' from the context menu, and authorize the modifications to your system.
|
||||||
4. Open _Control Panel_ > _Personalization and Appearance_ > _Change mouse pointers_, and select **Bibata Cursors**.
|
4. Open _Control Panel_ > _Personalization and Appearance_ > _Change mouse pointers_, and select **Bibata Cursors**.
|
||||||
5. Click '**Apply**'.
|
5. Click '**Apply**'.
|
||||||
|
@ -275,18 +228,19 @@ sudo mv Bibata-* /usr/share/icons/
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|
||||||
## Runtime Dependencies
|
## External Libraries
|
||||||
|
|
||||||
- libxcursor-dev
|
- libxcursor-dev
|
||||||
- libx11-dev
|
- libx11-dev
|
||||||
- libpng-dev (<=1.6)
|
- libpng-dev (<=1.6)
|
||||||
|
|
||||||
#### Install Runtime Dependencies
|
#### Install External Libraries
|
||||||
|
|
||||||
##### macOS
|
##### macOS
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew cask install xquartz libpng
|
brew install --cask xquartz
|
||||||
|
brew install libpng
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Debain/ubuntu
|
##### Debain/ubuntu
|
||||||
|
@ -304,27 +258,27 @@ sudo pacman -S libx11 libxcursor libpng
|
||||||
##### Fedora/Fedora Silverblue/CentOS/RHEL
|
##### Fedora/Fedora Silverblue/CentOS/RHEL
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf install libx11-devel libxcursor-devel libpng-devel
|
sudo dnf install libX11-devel libXcursor-devel libpng-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
## Build Dependencies
|
## Build Dependencies
|
||||||
|
|
||||||
- [nodejs](https://nodejs.org/en/) (<=12.x.x)
|
- [gcc](https://gcc.gnu.org/install/)
|
||||||
- [yarn](https://classic.yarnpkg.com/en/docs/install/)
|
- [make](https://www.gnu.org/software/make/)
|
||||||
- [python3](https://www.python.org/downloads/)
|
- [nodejs](https://nodejs.org/en/) (<=12.x.x)
|
||||||
- [pip3](https://pip.pypa.io/en/stable/installing/)
|
- [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
|
### Node Packages
|
||||||
|
|
||||||
- [puppeteer](https://www.npmjs.com/package/puppeteer)
|
- [puppeteer](https://www.npmjs.com/package/puppeteer)
|
||||||
- [pngjs](https://www.npmjs.com/package/pngjs)
|
- [pngjs](https://www.npmjs.com/package/pngjs)
|
||||||
- [pixelmatch](https://www.npmjs.com/package/pixelmatch)
|
- [pixelmatch](https://www.npmjs.com/package/pixelmatch)
|
||||||
- [ora](https://www.npmjs.com/package/ora)
|
|
||||||
- [chalk](https://www.npmjs.com/package/chalk)
|
|
||||||
|
|
||||||
### PyPi Packages
|
### PyPi Packages
|
||||||
|
|
||||||
- [clickgen](https://pypi.org/project/clickgen/)
|
- [clickgen](https://pypi.org/project/clickgen/s)
|
||||||
|
|
||||||
## Build From Scratch
|
## Build From Scratch
|
||||||
|
|
||||||
|
@ -334,100 +288,54 @@ GitHub Actions is automatically runs on every `push`(on **main** & **dev** branc
|
||||||
|
|
||||||
### Manual Build
|
### Manual Build
|
||||||
|
|
||||||
#### Setup python environment
|
> Check **[Makefile](./Makefile)** for more targets.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 -m pip install --upgrade pip # Update pip to latest
|
make
|
||||||
python3 -m pip install virtualenv # Install python virtual environment
|
|
||||||
virtualenv venv # Create new virtualenv named `venv`
|
|
||||||
source venv/bin/activate # Activate virtualenv
|
|
||||||
|
|
||||||
# For Deactivate virtualenv
|
|
||||||
deactivate
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Compile From Source
|
#### Build Only `XCursor` theme
|
||||||
|
|
||||||
> Make sure your [python environment](#setup-python-environment) setup and `virtualenv` is **active**.
|
|
||||||
|
|
||||||
#### Install Node/PyPi Packages
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn install # Install all Node Packages
|
make unix
|
||||||
yarn py_install # Install all PyPi Packages with Bibata builder
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Build `Bibata`
|
#### Customize `XCursor` size
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn render:bibata-modern # Render Bibata Modern Bitmaps
|
make unix X_SIZES=22 # Only built '22px' pixel-size.
|
||||||
yarn render:bibata-original # Render Bibata Original Bitmaps
|
make unix X_SIZES=22 24 32 # Multiple sizes are provided with ' '(Space)
|
||||||
|
|
||||||
# Build cursors packages
|
|
||||||
yarn build # Build Windows & X11 packages
|
|
||||||
# OR
|
|
||||||
yarn build:x11 # Build only X11 packages
|
|
||||||
# OR
|
|
||||||
yarn build:win # Build only Windows cursors
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Build `Bibata Modern` Only
|
#### Install `XCursor` theme
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn render:bibata-modern # Render Bibata Modern Bitmaps
|
make install # install as user
|
||||||
|
# OR
|
||||||
# Build cursors packages
|
sudo make install # install as root
|
||||||
yarn build # Build Windows & X11 cursors
|
|
||||||
# OR
|
|
||||||
yarn build:x11 # Build only X11 cursors
|
|
||||||
# OR
|
|
||||||
yarn build:win # Build only Windows cursors
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Build `Bibata Original` Only
|
#### Build Only `Windows` theme
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn render:bibata-original # Render Bibata Original Bitmaps
|
make windows
|
||||||
|
|
||||||
# Build cursors packages
|
|
||||||
yarn build # Build Windows & Linux cursors
|
|
||||||
# OR
|
|
||||||
yarn build:x11 # Build only X11 cursors
|
|
||||||
# OR
|
|
||||||
yarn build:win # Build only Windows cursors
|
|
||||||
```
|
```
|
||||||
|
|
||||||
After build `bitmaps` and `themes` directory are generated at project **root**.
|
#### Customize `Windows Cursor` size
|
||||||
|
|
||||||
### Install Build Theme
|
|
||||||
|
|
||||||
All builded cursor themes are available inside `themes` directory.
|
|
||||||
|
|
||||||
#### Linux
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ./themes
|
make windows WIN_SIZE=96 # Supports only one pixel-size
|
||||||
|
|
||||||
# installing Theme to local user(recommend)
|
|
||||||
rm -rf ~/.icons/Bibata-* && cp -r Bibata-* ~/.icons/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Windows
|
> Windows installations steps are same as [these](#windows).
|
||||||
|
|
||||||
1. Open the `settings` app.
|
|
||||||
2. **Goto** `Devices` -> `Mouse` -> `Additional Mouse Options`.
|
|
||||||
3. **Goto** the `pointers` tab.
|
|
||||||
4. Replace each cursor in the currently applied cursor set with the corresponding cursor in the `./themes/<Bibata_flavor>` folder.
|
|
||||||
5. Click "**save as**" and type in the desired name.
|
|
||||||
6. Click "**apply**" and "**ok**".
|
|
||||||
|
|
||||||
<!-- Other Interesting projects -->
|
<!-- Other Interesting projects -->
|
||||||
|
|
||||||
# You may also like...
|
# You may also like...
|
||||||
|
|
||||||
- [**Bibata Extra**](https://github.com/ful1e5/Bibata_Extra_Cursor) - More Bibata!
|
- [**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 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 Translucent**](https://github.com/Silicasandwhich/Bibata_Cursor_Translucent) - Bibata translucent is a translucent flavor of the Bibata.
|
||||||
|
|
||||||
<!-- Bug Report -->
|
<!-- Bug Report -->
|
||||||
|
|
||||||
|
@ -451,19 +359,16 @@ Check [CONTRIBUTING.md](CONTRIBUTING.md), any suggestions for features and contr
|
||||||
|
|
||||||
# Credit
|
# Credit
|
||||||
|
|
||||||
- [Adwaita](https://github.com/GNOME/adwaita-icon-theme)
|
- [Adwaita](https://github.com/GNOME/adwaita-icon-theme)
|
||||||
- [Dmz](https://github.com/GalliumOS/dmz-cursor-theme)
|
- [Dmz](https://github.com/GalliumOS/dmz-cursor-theme)
|
||||||
- [Yaru](https://github.com/ubuntu/yaru)
|
- [Yaru](https://github.com/ubuntu/yaru)
|
||||||
- Emojis are taken from [here](https://emojipedia.org/)
|
- 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
|
||||||
|
|
||||||
<!-- Support -->
|
<!-- Support -->
|
||||||
|
|
||||||
# Support
|
# Support
|
||||||
|
|
||||||
Share your joy with **★**.
|
|
||||||
|
|
||||||
> For more support
|
|
||||||
|
|
||||||
<a href="https://www.buymeacoffee.com/Nt7Wg4V" >
|
<a href="https://www.buymeacoffee.com/Nt7Wg4V" >
|
||||||
<img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
|
<img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" >
|
||||||
</a>
|
</a>
|
||||||
|
|
21
bitmapper/Makefile
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
all: install render
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@find . -type f -name "yarn.lock" -exec rm -rf "{}" +;
|
||||||
|
@find . -type d -name "node_modules" -exec rm -rf "{}" +;
|
||||||
|
|
||||||
|
node_modules:
|
||||||
|
@mkdir -p $@
|
||||||
|
|
||||||
|
install: node_modules package.json
|
||||||
|
@yarn install
|
||||||
|
|
||||||
|
render_modern:
|
||||||
|
@yarn render:bibata-modern
|
||||||
|
|
||||||
|
render_original:
|
||||||
|
@yarn render:bibata-original
|
||||||
|
|
||||||
|
render: render_modern render_original
|
15
bitmapper/package.json
Normal file
|
@ -0,0 +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/*"]
|
||||||
|
}
|
22
bitmapper/packages/core/package.json
Normal file
|
@ -0,0 +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"
|
||||||
|
}
|
||||||
|
}
|
160
bitmapper/packages/core/src/BitmapsGenerator.ts
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
import fs from "fs";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
|
import puppeteer, { Browser, ElementHandle, Page } from "puppeteer";
|
||||||
|
|
||||||
|
import { frameNumber } from "./util/frameNumber";
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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<Browser> {
|
||||||
|
return await puppeteer.launch({
|
||||||
|
ignoreDefaultArgs: ["--no-sandbox"],
|
||||||
|
headless: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private async getSvgElement(
|
||||||
|
page: Page,
|
||||||
|
content: string
|
||||||
|
): Promise<ElementHandle<Element>> {
|
||||||
|
if (!content) {
|
||||||
|
throw new Error(`${content} File Read error`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const html = toHTML(content);
|
||||||
|
await page.setContent(html);
|
||||||
|
|
||||||
|
const svg = await page.$("#container 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);
|
||||||
|
|
||||||
|
const out = path.resolve(this.bitmapsDir, `${key}.png`);
|
||||||
|
|
||||||
|
await svg.screenshot({ omitBackground: true, path: out });
|
||||||
|
await page.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async screenshot(
|
||||||
|
element: ElementHandle<Element>
|
||||||
|
): Promise<Buffer | string> {
|
||||||
|
const buffer = await element.screenshot({
|
||||||
|
encoding: "binary",
|
||||||
|
omitBackground: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!buffer) {
|
||||||
|
throw new Error("SVG element screenshot not working");
|
||||||
|
}
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async stopAnimation(page: Page) {
|
||||||
|
//@ts-ignore
|
||||||
|
await page._client.send("Animation.setPlaybackRate", {
|
||||||
|
playbackRate: 0,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private async resumeAnimation(page: Page, playbackRate: number) {
|
||||||
|
//@ts-ignore
|
||||||
|
await page._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);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async generateAnimated(
|
||||||
|
browser: Browser,
|
||||||
|
content: string,
|
||||||
|
key: string,
|
||||||
|
options: {
|
||||||
|
playbackRate: number;
|
||||||
|
diff: number;
|
||||||
|
frameLimit: number;
|
||||||
|
framePadding: number;
|
||||||
|
} = {
|
||||||
|
playbackRate: 0.3,
|
||||||
|
diff: 0,
|
||||||
|
frameLimit: 300,
|
||||||
|
framePadding: 4,
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
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;
|
||||||
|
|
||||||
|
// Rendering frames till `imgN` matched to `imgN-1` (When Animation is done)
|
||||||
|
while (!breakRendering) {
|
||||||
|
if (index > options.frameLimit) {
|
||||||
|
throw new Error("Reached the frame limit.");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.resumeAnimation(page, options.playbackRate);
|
||||||
|
const img: string | Buffer = await this.screenshot(svg);
|
||||||
|
this.stopAnimation(page);
|
||||||
|
|
||||||
|
if (index > 1) {
|
||||||
|
// @ts-ignore
|
||||||
|
const diff = matchImages(prevImg, img);
|
||||||
|
if (diff <= options.diff) {
|
||||||
|
breakRendering = !breakRendering;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const number = frameNumber(index, options.framePadding);
|
||||||
|
const frame = `${key}-${number}.png`;
|
||||||
|
|
||||||
|
this.saveFrameImage(frame, img);
|
||||||
|
|
||||||
|
prevImg = img;
|
||||||
|
++index;
|
||||||
|
}
|
||||||
|
|
||||||
|
await page.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export { BitmapsGenerator };
|
77
bitmapper/packages/core/src/SVGHandler/SvgDirectoryParser.ts
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
import fs from "fs";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
|
interface Svg {
|
||||||
|
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}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
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 (!fs.existsSync(animatedDir)) {
|
||||||
|
throw new Error("Animated Cursors directory not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
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`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return svgs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export { SvgDirectoryParser };
|
52
bitmapper/packages/core/src/SVGHandler/colorSvg.ts
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
import { Colors } from "../types";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default Key Colors for generating colored svg.
|
||||||
|
* base="#00FF00" (Green)
|
||||||
|
* outline="#0000FF" (Blue)
|
||||||
|
* watch.background="#FF0000" (Red)
|
||||||
|
* */
|
||||||
|
const defaultKeyColors: Colors = {
|
||||||
|
base: "#00FF00",
|
||||||
|
outline: "#0000FF",
|
||||||
|
watch: {
|
||||||
|
background: "#FF0000",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Customize colors of svg code.
|
||||||
|
* @param {string} content SVG code.
|
||||||
|
* @param {Colors} colors Customize colors.
|
||||||
|
* @param {Colors} [keys] Colors Key, That was written SVG code.
|
||||||
|
* @returns {string} SVG code with colors.
|
||||||
|
*/
|
||||||
|
const colorSvg = (
|
||||||
|
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);
|
||||||
|
|
||||||
|
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` ===
|
||||||
|
|
||||||
|
content = content.replace(
|
||||||
|
new RegExp(keys.watch!.background, "ig"),
|
||||||
|
colors.base
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return content;
|
||||||
|
};
|
||||||
|
|
||||||
|
export { colorSvg };
|
4
bitmapper/packages/core/src/SVGHandler/index.ts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import { colorSvg } from "./colorSvg";
|
||||||
|
import { SvgDirectoryParser } from "./SvgDirectoryParser";
|
||||||
|
|
||||||
|
export { colorSvg, SvgDirectoryParser };
|
4
bitmapper/packages/core/src/index.ts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import { BitmapsGenerator } from "./BitmapsGenerator";
|
||||||
|
import * as SVGHandler from "./SVGHandler";
|
||||||
|
|
||||||
|
export { BitmapsGenerator, SVGHandler };
|
20
bitmapper/packages/core/src/types.ts
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/**
|
||||||
|
* Hex Colors in string Format.
|
||||||
|
*
|
||||||
|
* `Example: `"#FFFFFF"
|
||||||
|
*/
|
||||||
|
type HexColor = string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Colors expect `base`, `outline` & `watch-background` colors in **HexColor** Format.
|
||||||
|
* @default background is `base` color.
|
||||||
|
*/
|
||||||
|
type Colors = {
|
||||||
|
base: HexColor;
|
||||||
|
outline: HexColor;
|
||||||
|
watch?: {
|
||||||
|
background: HexColor;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export { Colors };
|
7
bitmapper/packages/core/src/util/frameNumber.ts
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
export const frameNumber = (index: number, padding: number) => {
|
||||||
|
let result = "" + index;
|
||||||
|
while (result.length < padding) {
|
||||||
|
result = "0" + result;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
11
bitmapper/packages/core/src/util/matchImages.ts
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
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);
|
||||||
|
|
||||||
|
return Pixelmatch(img1Data, imgNData, null, width, height, {
|
||||||
|
threshold: 0.1,
|
||||||
|
});
|
||||||
|
};
|
|
@ -4,7 +4,7 @@ export const template = `
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Bibata Cursors Render Template</title>
|
<title>Render Template</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -15,5 +15,5 @@ export const template = `
|
||||||
</html>
|
</html>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const generateRenderTemplate = (svg: string) =>
|
export const toHTML = (svgData: string): string =>
|
||||||
template.replace("<svginjection>", svg);
|
template.replace("<svginjection>", svgData);
|
12
bitmapper/packages/core/tsconfig.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"extends": "../../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"declaration": true,
|
||||||
|
"declarationMap": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"composite": true,
|
||||||
|
"outDir": "dist",
|
||||||
|
"rootDir": "src"
|
||||||
|
},
|
||||||
|
"include": ["src"]
|
||||||
|
}
|
17
bitmapper/packages/modern/package.json
Normal file
|
@ -0,0 +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"
|
||||||
|
}
|
||||||
|
}
|
40
bitmapper/packages/modern/src/config.ts
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import { Colors } from "bibata-core/src/types";
|
||||||
|
|
||||||
|
interface Config {
|
||||||
|
themeName: string;
|
||||||
|
color: Colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
const black = "#000000";
|
||||||
|
const white = "#FFFFFF";
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export { config };
|
37
bitmapper/packages/modern/src/index.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
|
import { BitmapsGenerator, SVGHandler } from "bibata-core";
|
||||||
|
import { config } from "./config";
|
||||||
|
|
||||||
|
const root = path.resolve(__dirname, "../../../../");
|
||||||
|
const svgDir = path.resolve(root, "svg", "modern");
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
for (const { themeName, color } of config) {
|
||||||
|
console.log("=>", themeName);
|
||||||
|
|
||||||
|
const bitmapsDir = path.resolve(root, "bitmaps", themeName);
|
||||||
|
const svg = new SVGHandler.SvgDirectoryParser(svgDir);
|
||||||
|
|
||||||
|
const png = new BitmapsGenerator(bitmapsDir);
|
||||||
|
const browser = await png.getBrowser();
|
||||||
|
|
||||||
|
for (let { key, content } of svg.getStatic()) {
|
||||||
|
console.log(" -> Saving", key, "...");
|
||||||
|
|
||||||
|
content = SVGHandler.colorSvg(content, color);
|
||||||
|
await png.generateStatic(browser, content, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let { key, content } of svg.getAnimated()) {
|
||||||
|
console.log(" -> Saving", key, "...");
|
||||||
|
|
||||||
|
content = SVGHandler.colorSvg(content, color);
|
||||||
|
await png.generateAnimated(browser, content, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
await browser.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
main();
|
9
bitmapper/packages/modern/tsconfig.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"references": [{ "path": "../core" }],
|
||||||
|
"extends": "../../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"rootDir": "src",
|
||||||
|
"outDir": "dist"
|
||||||
|
},
|
||||||
|
"include": ["src"]
|
||||||
|
}
|
17
bitmapper/packages/original/package.json
Normal file
|
@ -0,0 +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"
|
||||||
|
}
|
||||||
|
}
|
40
bitmapper/packages/original/src/config.ts
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import { Colors } from "bibata-core/src/types";
|
||||||
|
|
||||||
|
interface Config {
|
||||||
|
themeName: string;
|
||||||
|
color: Colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
const black = "#000000";
|
||||||
|
const white = "#FFFFFF";
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export { config };
|
37
bitmapper/packages/original/src/index.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
|
import { BitmapsGenerator, SVGHandler } from "bibata-core";
|
||||||
|
import { config } from "./config";
|
||||||
|
|
||||||
|
const root = path.resolve(__dirname, "../../../../");
|
||||||
|
const svgDir = path.resolve(root, "svg", "original");
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
for (const { themeName, color } of config) {
|
||||||
|
console.log("=>", themeName);
|
||||||
|
|
||||||
|
const bitmapsDir = path.resolve(root, "bitmaps", themeName);
|
||||||
|
const svg = new SVGHandler.SvgDirectoryParser(svgDir);
|
||||||
|
|
||||||
|
const png = new BitmapsGenerator(bitmapsDir);
|
||||||
|
const browser = await png.getBrowser();
|
||||||
|
|
||||||
|
for (let { key, content } of svg.getStatic()) {
|
||||||
|
console.log(" -> Saving", key, "...");
|
||||||
|
|
||||||
|
content = SVGHandler.colorSvg(content, color);
|
||||||
|
await png.generateStatic(browser, content, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let { key, content } of svg.getAnimated()) {
|
||||||
|
console.log(" -> Saving", key, "...");
|
||||||
|
|
||||||
|
content = SVGHandler.colorSvg(content, color);
|
||||||
|
await png.generateAnimated(browser, content, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
await browser.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
main();
|
17
bitmapper/packages/rainbow/package.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "bibata-rainbow",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "'semi-animated' bibata cursors with rainbow colors",
|
||||||
|
"main": "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": "^8.10.2",
|
||||||
|
"typescript": "^4.0.5"
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 6 KiB |