mirror of
https://github.com/ful1e5/Bibata_Cursor.git
synced 2025-06-06 17:41:46 -04:00
Some Major Changes
- Cursors hotspots redefined - Sub-commands removed from bibata-bitmapper - Build docs updated in README.md - GitHub Action renamed
This commit is contained in:
parent
52d559b6fb
commit
9b6ec3c820
12 changed files with 317 additions and 332 deletions
|
@ -1,4 +1,4 @@
|
||||||
name: ci
|
name: build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,7 +1,6 @@
|
||||||
# --------------------------------------------- Custom
|
# Custom
|
||||||
themes
|
themes
|
||||||
|
|
||||||
|
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
|
|
|
@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- Add cursor top_left_arrow cursor ful1e5/BreezeX_Cursor#10 ful1e5/BreezeX_Cursor#11
|
- Add cursor top_left_arrow cursor ful1e5/BreezeX_Cursor#10 ful1e5/BreezeX_Cursor#11
|
||||||
- Uninstall docs ful1e5/apple_cursor#79 ful1e5/apple_cursor#80
|
- Uninstall docs ful1e5/apple_cursor#79 ful1e5/apple_cursor#80
|
||||||
- feat: CLI for bitmapper #104
|
- feat: CLI for bitmapper #104
|
||||||
|
- doc: build docs updated
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
250
README.md
250
README.md
|
@ -1,43 +1,26 @@
|
||||||
# Bibata Cursor
|
# Bibata Cursor
|
||||||
|
|
||||||
[](https://github.com/ful1e5/Bibata_Cursor/actions/workflows/ci.yml)
|
[](https://github.com/ful1e5/Bibata_Cursor/actions/workflows/build.yml)
|
||||||
[](https://twitter.com/ful1e5)
|
|
||||||
|
|
||||||
**TLDR; This cursor set is the masterpiece of all cursors available on the internet.**
|
TLDR; This cursor set is the masterpiece of cursors available on the internet,
|
||||||
|
Hand designed by [Kaiz Khatri](https://twitter.com/ful1e5).
|
||||||
|
|
||||||
Bibata is **OpenSource**, compact, and material designed cursor set. This project masterelop for
|
Bibata is open source, compact, and material designed cursor set. This project masterelop for
|
||||||
improve cursor experience.
|
improve cursor experience.
|
||||||
|
|
||||||
Bibata is one of the most popular cursors set in the Linux community so far and is now available
|
Bibata is one of the most popular cursors set in the Linux community so far and is now available
|
||||||
for freely with multiple colors and size options for Windows as well. The aim of this project is to
|
for freely with multiple colors and size options for Windows as well. The aim of this project is to
|
||||||
provide the best personalized cursors to users.
|
provide the personalized cursors to users.
|
||||||
|
|
||||||
#### Future!?
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
Until now Bibata was funded by [pling.com](https://www.pling.com) but since the
|
> **Note**
|
||||||
[pling-factor](https://www.pling.com/terms/payout) on the website has decreased and monthly payments
|
> All cursor's `.svg` files are found in [svg](./svg) directory or you can also find them on
|
||||||
are <100$ it is now dependent on community funding and sponsorships. If you want to help us build
|
> [Figma](https://www.figma.com/file/Y9RKZLXhSvaxpUzsKGJkp6/Bibata-Cursor?node-id=0%3A1).
|
||||||
future cursors or if you use Bibata as the default cursor theme, consider becoming a partner.
|
|
||||||
|
|
||||||
Your support will also be beneficial for my upcoming projects like:
|
## Variants:
|
||||||
|
|
||||||
- [cursrs](https://github.com/ful1e5/cursrs) - Superior cursors platform. A open source web app
|
|
||||||
where you can customize customize and download cursors.
|
|
||||||
|
|
||||||
Visit the [GitHub Sponsor](https://github.com/sponsors/ful1e5) page to become a partner.
|
|
||||||
DM me on [Twitter](https://twitter.com/ful1e5) if your company would like to support this project,
|
|
||||||
I will gladly look into it and post your logo in the README.
|
|
||||||
|
|
||||||
#### Sponsors
|
|
||||||
|
|
||||||
I appreciate all these wonderful people who patronize and sponsoring my work.
|
|
||||||
Your support will help me actively maintain Bibata and other open source projects.
|
|
||||||
|
|
||||||
<!-- Add your name or avatar here with the Pull Request in case I missed it. -->
|
|
||||||
|
|
||||||
_Be you first._
|
|
||||||
|
|
||||||
#### Variants:
|
|
||||||
|
|
||||||
- **Bibata Original Amber:** Yellowish and rounded edge bibata cursors.
|
- **Bibata Original Amber:** Yellowish and rounded edge bibata cursors.
|
||||||
- **Bibata Modern Amber:** Yellowish and sharp edge bibata cursors.
|
- **Bibata Modern Amber:** Yellowish and sharp edge bibata cursors.
|
||||||
|
@ -46,7 +29,9 @@ _Be you first._
|
||||||
- **Bibata Original Ice:** White and sharp edge bibata cursors.
|
- **Bibata Original Ice:** White and sharp edge bibata cursors.
|
||||||
- **Bibata Modern Ice:** White and rounded edge bibata cursors
|
- **Bibata Modern Ice:** White and rounded edge bibata cursors
|
||||||
|
|
||||||
#### Xcursor Sizes:
|
## Cursor Sizes
|
||||||
|
|
||||||
|
### Xcursor Sizes:
|
||||||
|
|
||||||
<kbd>22</kbd>
|
<kbd>22</kbd>
|
||||||
<kbd>24</kbd>
|
<kbd>24</kbd>
|
||||||
|
@ -61,35 +46,47 @@ _Be you first._
|
||||||
<kbd>88</kbd>
|
<kbd>88</kbd>
|
||||||
<kbd>96</kbd>
|
<kbd>96</kbd>
|
||||||
|
|
||||||
#### Windows Cursor Size:
|
### Windows Cursor Size:
|
||||||
|
|
||||||
- <kbd>16x16</kbd> - Small
|
- <kbd>16x16</kbd> - Small
|
||||||
- <kbd>24x24</kbd> - Regular
|
- <kbd>24x24</kbd> - Regular
|
||||||
- <kbd>32x32</kbd> - Large
|
- <kbd>32x32</kbd> - Large
|
||||||
- <kbd>48x48</kbd> - Extra Large
|
- <kbd>48x48</kbd> - Extra Large
|
||||||
|
|
||||||
#### Gallery
|
## Colors:
|
||||||
|
|
||||||
> **Note**
|
### Bibata Amber
|
||||||
> All svg files are found in [svg](./svg) directory or you can also use
|
|
||||||
> [Figma](https://www.figma.com/file/Y9RKZLXhSvaxpUzsKGJkp6/Bibata-Cursor?node-id=0%3A1).
|
|
||||||
|
|
||||||

|
- Base Color - `#FF8300` (Amber)
|
||||||

|
- Outline Color - `#FFFFFF` (White)
|
||||||

|
- Watch Background Color - `#001524` (Rich Black)
|
||||||
|
|
||||||
## Binaries
|
### Bibata Classic
|
||||||
|
|
||||||
|
- Base Color - `#000000` (Black)
|
||||||
|
- Outline Color - `#FFFFFF` (White)
|
||||||
|
- Watch Background Color - `#000000` (Black)
|
||||||
|
|
||||||
|
### Bibata Ice
|
||||||
|
|
||||||
|
- Base Color - `#FFFFFF` (White)
|
||||||
|
- Outline Color - `#000000` (Black)
|
||||||
|
- Watch Background Color - `#FFFFFF` (White)
|
||||||
|
|
||||||
|
## How to get it
|
||||||
|
|
||||||
|
### Easiest Way
|
||||||
|
|
||||||
You can download latest `stable` & `development` releases from
|
You can download latest `stable` & `development` releases from
|
||||||
[Release Page](https://github.com/ful1e5/Bibata_Cursor/releases).
|
[Release Page](https://github.com/ful1e5/Bibata_Cursor/releases).
|
||||||
|
|
||||||
## Packages
|
### Packages
|
||||||
|
|
||||||
> **Note**
|
> **Note**
|
||||||
> If you're having trouble with the packages please submit a request to the package maintainer
|
> If you're having trouble with the packages please submit a request to the package maintainer
|
||||||
> before creating an issue.
|
> before creating an issue.
|
||||||
|
|
||||||
### Arch Linux/Manjaro
|
#### Arch Linux/Manjaro
|
||||||
|
|
||||||
Arch Linux/Manjaro users can install from the [AUR](https://aur.archlinux.org/packages/bibata-cursor-theme)
|
Arch Linux/Manjaro users can install from the [AUR](https://aur.archlinux.org/packages/bibata-cursor-theme)
|
||||||
currently maintained by [_@Shatur_](https://aur.archlinux.org/packages/?K=Shatur&SeB=m) &
|
currently maintained by [_@Shatur_](https://aur.archlinux.org/packages/?K=Shatur&SeB=m) &
|
||||||
|
@ -104,16 +101,16 @@ paru -S bibata-cursor-theme
|
||||||
Alternatively, Bibata binaries can be also installed using the PKGBUILD `bibata-theme-bin`,
|
Alternatively, Bibata binaries can be also installed using the PKGBUILD `bibata-theme-bin`,
|
||||||
available on the AUR.
|
available on the AUR.
|
||||||
|
|
||||||
### Fedora
|
#### Fedora
|
||||||
|
|
||||||
#### copr-repo by @peterwu (recommended)
|
##### copr-repo by @peterwu (recommended)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf copr enable peterwu/rendezvous
|
sudo dnf copr enable peterwu/rendezvous
|
||||||
sudo dnf install bibata-cursor-themes
|
sudo dnf install bibata-cursor-themes
|
||||||
```
|
```
|
||||||
|
|
||||||
#### copr-repo by @muhalantabli
|
##### copr-repo by @muhalantabli
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf copr enable muhalantabli/copr-repo
|
sudo dnf copr enable muhalantabli/copr-repo
|
||||||
|
@ -166,10 +163,26 @@ Run the `uninstall.bat` script packed with the `.zip` archive
|
||||||
|
|
||||||
## Build From Source
|
## Build From Source
|
||||||
|
|
||||||
|
#### Notes
|
||||||
|
|
||||||
|
- Bibata build configuration and cursor hotspot settings are bundled in the `build.toml` file.
|
||||||
|
- Check out the scripts section in [package.json](./package.json) to see how we build the cursor theme,
|
||||||
|
excluding the render scripts. They are useful for converting `.svg` files to `.png` files.
|
||||||
|
- yarn is optional, For building XCursors and Windows cursors from `.png` files or resizing them
|
||||||
|
you don't need that. If you want to develop/modify Bibata's colors, and bitmaps, or generate a png
|
||||||
|
file from a svg, Then you can use yarn because bitmapper is written in TypeScript.
|
||||||
|
- Since Bibata Modern and Bibata Original are designed similarly, they share the same hotspot settings so a
|
||||||
|
single configuration file `build.toml` is responsible for building all variants. Due to this, you will have
|
||||||
|
to change the following options in `ctgen` to build the appropriate variant:
|
||||||
|
- **-d**: bitmaps directory
|
||||||
|
- **-n**: The name you want to give to the generated theme.
|
||||||
|
- **-c**: Theme comment.
|
||||||
|
- See `ctgen --help` for all available options.
|
||||||
|
|
||||||
### Build prerequisites
|
### Build prerequisites
|
||||||
|
|
||||||
- Python version 3.7 or higher
|
- Python version 3.7 or higher
|
||||||
- [clickgen](https://github.com/ful1e5/clickgen) >= 2.0.0 Python package (`pip install clickgen`)
|
- [clickgen](https://github.com/ful1e5/clickgen)>=2.1.1 (`pip install clickgen`)
|
||||||
- [yarn](https://github.com/yarnpkg/yarn)
|
- [yarn](https://github.com/yarnpkg/yarn)
|
||||||
|
|
||||||
### Quick start
|
### Quick start
|
||||||
|
@ -181,59 +194,52 @@ Run the `uninstall.bat` script packed with the `.zip` archive
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
|
> **Note**
|
||||||
|
> Bitmaps are already generated in the `bitmaps` directory and **managed by the maintainer**
|
||||||
|
> (do not edit them directly).
|
||||||
|
|
||||||
First make sure you installed the [build prerequisites](#build-prerequisites).
|
First make sure you installed the [build prerequisites](#build-prerequisites).
|
||||||
Now that you have the dependencies, you can try build individual themes from bitmaps and
|
Now that you have the dependencies, you can try build individual themes from bitmaps and
|
||||||
customize sizes, target platform, and etc. with the `ctgen` CLI (packed with `clickgen`).
|
customize sizes, target platform, and etc. with the `ctgen` CLI (packed with `clickgen`).
|
||||||
|
|
||||||
**Notes :**
|
#### `yarn build` aberration
|
||||||
|
|
||||||
- Bibata build configuration and cursor hotspot settings are bundled in the `build.toml` file.
|
|
||||||
- Check out the scripts section in [package.json](./package.json) to see how we created the cursor theme,
|
|
||||||
excluding the render scripts. They are useful for converting `.svg` files to `.png`
|
|
||||||
that are already generated in the **bitmaps directory** and **managed by the maintainer**.
|
|
||||||
- **Yarn is optional**. For building XCursor and Windows Cursor or resizing it you don't need that.
|
|
||||||
If you want to develop/modify Bibata's colors, and bitmaps, or generate a png file from a svg, you can use
|
|
||||||
yarn because bitmapper is written in TypeScript.
|
|
||||||
- Since Bibata variants are designed similarly, they share the same hotspot settings so a single configuration
|
|
||||||
file `build.toml` is responsible for building all variants. Due to this, you will have to change the following
|
|
||||||
options in `ctgen` to build the appropriate variant:
|
|
||||||
- **-d**: bitmaps directory
|
|
||||||
- **-n**: The name you want to give to the generated theme.
|
|
||||||
- **-c**: Theme comment.
|
|
||||||
- See `ctgen --help` for all available options.
|
|
||||||
|
|
||||||
##### Default Build Commands or `yarn build`
|
|
||||||
|
|
||||||
Here are the default commands we used to build the Bibata's variants and packed them into `yarn build`:
|
Here are the default commands we used to build the Bibata's variants and packed them into `yarn build`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ctgen build.toml -n 'Bibata-Modern-Amber' -c 'Yellowish and rounded edge bibata cursors.' -d 'bitmaps/Bibata-Modern-Amber'
|
ctgen build.toml -d 'bitmaps/Bibata-Modern-Amber' -n 'Bibata-Modern-Amber' -c 'Yellowish and rounded edge bibata cursors.'
|
||||||
ctgen build.toml -n 'Bibata-Modern-Classic' -c 'Black and rounded edge Bibata cursors.' -d 'bitmaps/Bibata-Modern-Classic'
|
ctgen build.toml -d 'bitmaps/Bibata-Modern-Classic' -n 'Bibata-Modern-Classic' -c 'Black and rounded edge Bibata cursors.'
|
||||||
ctgen build.toml -n 'Bibata-Modern-Ice' -c 'White and rounded edge Bibata cursors.' -d 'bitmaps/Bibata-Modern-Ice'
|
ctgen build.toml -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata-Modern-Ice' -c 'White and rounded edge Bibata cursors.'
|
||||||
|
|
||||||
ctgen build.toml -n 'Bibata-Original-Amber' -c 'Yellowish and sharp edge Bibata cursors.' -d 'bitmaps/Bibata-Original-Amber'
|
ctgen build.toml -d 'bitmaps/Bibata-Original-Amber' -n 'Bibata-Original-Amber' -c 'Yellowish and sharp edge Bibata cursors.'
|
||||||
ctgen build.toml -n 'Bibata-Original-Classic' -c 'Black and sharp edge Bibata cursors.' -d 'bitmaps/Bibata-Original-Classic'
|
ctgen build.toml -d 'bitmaps/Bibata-Original-Classic' -n 'Bibata-Original-Classic' -c 'Black and sharp edge Bibata cursors.'
|
||||||
ctgen build.toml -n 'Bibata-Original-Ice' -c 'White and sharp edge Bibata cursors.' -d 'bitmaps/Bibata-Original-Ice'
|
ctgen build.toml -d 'bitmaps/Bibata-Original-Ice' -n 'Bibata-Original-Ice' -c 'White and sharp edge Bibata cursors.'
|
||||||
```
|
```
|
||||||
|
|
||||||
Afterwards, the themes can be found in the `themes/` directory.
|
Afterwards, the themes can be found in the `themes` directory.
|
||||||
|
|
||||||
|
#### Customize Sizes
|
||||||
|
|
||||||
|
> **Note**
|
||||||
|
> You can change the cursor size up to 200 because pngs are rendered with 200x200.
|
||||||
|
> If the cursor is resized by more than rendered png size, the final cursor will be blurred.
|
||||||
|
|
||||||
##### Customize Windows Cursor size
|
##### Customize Windows Cursor size
|
||||||
|
|
||||||
To build Windows cursor with size `16`:
|
To build Windows cursor with size `16`:
|
||||||
|
|
||||||
> **Warning**
|
> **Warning**
|
||||||
> Windows cursor supports only one size, if multiple sizes are given in `-s` the first size will
|
> Windows cursor supports only one size, if multiple sizes are given with `-s` the first size will
|
||||||
> be considered in build.
|
> be considered in build.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ctgen build.toml -s 16 -p windows -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata Modern Ice' -c 'White and rounded egde bibata cusors with size 16'
|
ctgen build.toml -s 16 -p windows -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata-Modern-Ice' -c 'White and rounded egde bibata cusors with size 16'
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also customize output directory with `-o` option:
|
You can also customize output directory with `-o` option:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ctgen build.toml -s 16 -p windows -d 'bitmaps/Bibata-Modern-Ice' -o 'out/' -n 'Bibata Modern Ice' -c 'White and rounded egde Bibata cursors with size 16'
|
ctgen build.toml -s 16 -p windows -d 'bitmaps/Bibata-Modern-Ice' -o 'out' -n 'Bibata-Modern-Ice' -c 'White and rounded egde Bibata cursors with size 16'
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Customize XCursor size
|
##### Customize XCursor size
|
||||||
|
@ -241,15 +247,109 @@ ctgen build.toml -s 16 -p windows -d 'bitmaps/Bibata-Modern-Ice' -o 'out/' -n 'B
|
||||||
To build XCursor with size `16`:
|
To build XCursor with size `16`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ctgen build.toml -s 16 -p x11 -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata Modern Ice' -c 'White and rounded egde Bibata cursors with size 16'
|
ctgen build.toml -s 16 -p x11 -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata-Modern-Ice' -c 'White and rounded egde Bibata cursors with size 16'
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also assign multiple sizes to `ctgen` for XCursors build:
|
You can also assign multiple sizes to `ctgen` for XCursors build:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ctgen build.toml -s 16 24 32 -p x11 -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata Modern Ice' -c 'White and rounded egde Bibata cursors with size 16'
|
ctgen build.toml -s 16 24 32 -p x11 -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata-Modern-Ice' -c 'Custom white and rounded egde Bibata cursors'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Customize Colors
|
||||||
|
|
||||||
|
To customize bibata's color you have to compile the bibata-bitmapper with `yarn compile` command.
|
||||||
|
After compiling bibata-bitmapper form source code you can customize the colors via `cli.js` node script,
|
||||||
|
Which you will find in the `dist` directory.
|
||||||
|
|
||||||
|
##### `cli.js` Help
|
||||||
|
|
||||||
|
```
|
||||||
|
Usage: bibata-bitmapper [OPTIONS]...
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-V, --version output the version number
|
||||||
|
-d, --dir <path> Specifies the directory for placement of SVG files.
|
||||||
|
-o, --out <path> Specifies the output directory. (default './bitmaps')
|
||||||
|
-n, --themeName <string> Specifies the name of output directory.
|
||||||
|
-bc, --baseColor <hex> Specifies the Hexadecimal color for inner part of cursor.
|
||||||
|
-oc, --outlineColor <hex> Specifies the Hexadecimal color for cursor's ouline.
|
||||||
|
-wc, --watchBackgroundColor <hex> Specifies the Hexadecimal color for animation background.
|
||||||
|
-h, --help display help for command
|
||||||
|
```
|
||||||
|
|
||||||
|
##### `yarn render` aberration
|
||||||
|
|
||||||
|
Here are the default commands we used for generating the Bibata's bitmaps and packed them into `yarn render`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node dist/cli.js -d 'svg/modern' -n 'Bibata-Modern-Amber' -bc '#FF8300' -oc '#FFFFFF' -wc '#001524'
|
||||||
|
node dist/cli.js -d 'svg/modern' -n 'Bibata-Modern-Classic' -bc '#000000' -oc '#FFFFFF'
|
||||||
|
node dist/cli.js -d 'svg/modern' -n 'Bibata-Modern-Ice' -bc '#FFFFFF' -oc '#000000'
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Original-Amber' -bc '#FF8300' -oc '#FFFFFF' -wc '#001524'
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Original-Classic' -bc '#000000' -oc '#FFFFFF'
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Original-Ice' -bc '#FFFFFF' -oc '#000000'
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Examples
|
||||||
|
|
||||||
|
Lets generate modern Bibata with green base color and black outline:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node dist/cli.js -d 'svg/modern' -n 'Bibata-Hacker' -bc '#00FE00' -oc '#000000' -wc '#001524'
|
||||||
|
```
|
||||||
|
|
||||||
|
After rendering custom color you have to build cursor through `ctgen`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ctgen build.toml -d 'bitmaps/Bibata-Hacker' -n 'Bibata-Hacker' -c 'Green and black Bibata cursors.'
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards, Generated theme can be found in the `themes` directory.
|
||||||
|
|
||||||
|
###### Bibata Gruvbox
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Gruvbox' -bc '#282828' -oc '#EBDBB2' -wc '#000000'
|
||||||
|
ctgen build.toml -d 'bitmaps/Bibata-Gruvbox' -n 'Bibata-Gruvbox' -c 'Groovy Bibata cursors.'
|
||||||
|
```
|
||||||
|
|
||||||
|
###### Bibata Solarized Dark
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Solarized-Dark' -bc '#002b36' -oc '#839496' -wc '#000000'
|
||||||
|
ctgen build.toml -d 'bitmaps/Bibata-Solarized-Dark' -n 'Bibata-Solarized-Dark' -c 'Solarized Dark Bibata cursors.'
|
||||||
|
```
|
||||||
|
|
||||||
|
###### Bibata Solarized Light
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Solarized-Light' -bc '#839496' -oc '#002b36'
|
||||||
|
ctgen build.toml -d 'bitmaps/Bibata-Solarized-Light' -n 'Bibata-Solarized-Light' -c 'Solarized Light Bibata cursors.'
|
||||||
|
```
|
||||||
|
|
||||||
|
###### Bibata Dracula
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node dist/cli.js -d 'svg/original' -n 'Bibata-Dracula' -bc '#282a36' -oc '#f8f8f2'
|
||||||
|
ctgen build.toml -d 'bitmaps/Bibata-Dracula' -n 'Bibata-Dracula' -c 'Dracula Bibata cursors.'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Consider Sponsoring my work
|
||||||
|
|
||||||
|
Until now my cursors projects were funded by [pling.com](https://www.pling.com) but since the
|
||||||
|
[pling-factor](https://www.pling.com/terms/payout) on the website has decreased and monthly payments
|
||||||
|
are <500$, It is now dependent on community funding and sponsorships. If you want to help me to maintain
|
||||||
|
Bibata and my other open source projects actively, consider sponsoring my work on [GitHub Sponsor](https://github.com/sponsors/ful1e5)
|
||||||
|
or DM me on [Twitter](https://twitter.com/ful1e5) if your company would like to support this project,
|
||||||
|
I will gladly look into it and post your avatar in the README.
|
||||||
|
|
||||||
|
I appreciate all the wonderful people who patronize and sponsoring my work.
|
||||||
|
|
||||||
|
<!-- Add your name or avatar here with the Pull Request in case I missed it. -->
|
||||||
|
|
||||||
|
_Be you first._
|
||||||
|
|
||||||
## You may also like...
|
## You may also like...
|
||||||
|
|
||||||
- [**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.
|
||||||
|
|
142
build.toml
142
build.toml
|
@ -4,7 +4,7 @@ comment = 'Bibata is open source, compact, and material designed cursor set.'
|
||||||
website = 'https://www.github.com/ful1e5/Bibata_Cursor'
|
website = 'https://www.github.com/ful1e5/Bibata_Cursor'
|
||||||
|
|
||||||
[config]
|
[config]
|
||||||
bitmaps_dir = '' # This config will assigned with CLI
|
bitmaps_dir = '' # This config will assigned with `ctgen -d <path>`
|
||||||
out_dir = 'themes'
|
out_dir = 'themes'
|
||||||
platforms = ['x11', 'windows']
|
platforms = ['x11', 'windows']
|
||||||
x11_sizes = [22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96]
|
x11_sizes = [22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96]
|
||||||
|
@ -20,7 +20,7 @@ win_delay = 1
|
||||||
|
|
||||||
[cursors.bd_double_arrow]
|
[cursors.bd_double_arrow]
|
||||||
png = 'bd_double_arrow.png'
|
png = 'bd_double_arrow.png'
|
||||||
x_hotspot = 98
|
x_hotspot = 99
|
||||||
y_hotspot = 100
|
y_hotspot = 100
|
||||||
win_name = 'Diagonal_1'
|
win_name = 'Diagonal_1'
|
||||||
x11_name = 'bd_double_arrow'
|
x11_name = 'bd_double_arrow'
|
||||||
|
@ -28,15 +28,15 @@ x11_symlinks = ["c7088f0f3e6c8088236ef8e1e3e70000", "nwse-resize", "size_fdiag"]
|
||||||
|
|
||||||
[cursors.bottom_left_corner]
|
[cursors.bottom_left_corner]
|
||||||
png = 'bottom_left_corner.png'
|
png = 'bottom_left_corner.png'
|
||||||
x_hotspot = 31
|
x_hotspot = 30
|
||||||
y_hotspot = 172
|
y_hotspot = 172
|
||||||
x11_name = 'bottom_left_corner'
|
x11_name = 'bottom_left_corner'
|
||||||
x11_symlinks = ["sw-resize"]
|
x11_symlinks = ["sw-resize"]
|
||||||
|
|
||||||
[cursors.bottom_right_corner]
|
[cursors.bottom_right_corner]
|
||||||
png = 'bottom_right_corner.png'
|
png = 'bottom_right_corner.png'
|
||||||
x_hotspot = 170
|
x_hotspot = 171
|
||||||
y_hotspot = 172
|
y_hotspot = 173
|
||||||
x11_name = 'bottom_right_corner'
|
x11_name = 'bottom_right_corner'
|
||||||
x11_symlinks = ['se-resize']
|
x11_symlinks = ['se-resize']
|
||||||
|
|
||||||
|
@ -49,34 +49,34 @@ x11_symlinks = ['s-resize']
|
||||||
|
|
||||||
[cursors.bottom_tee]
|
[cursors.bottom_tee]
|
||||||
png = 'bottom_tee.png'
|
png = 'bottom_tee.png'
|
||||||
x_hotspot = 100
|
x_hotspot = 98
|
||||||
y_hotspot = 164
|
y_hotspot = 164
|
||||||
x11_name = 'bottom_tee'
|
x11_name = 'bottom_tee'
|
||||||
|
|
||||||
[cursors.center_ptr]
|
[cursors.center_ptr]
|
||||||
png = 'center_ptr.png'
|
png = 'center_ptr.png'
|
||||||
x_hotspot = 98
|
x_hotspot = 98
|
||||||
y_hotspot = 131
|
y_hotspot = 13
|
||||||
x11_name = 'center_ptr'
|
x11_name = 'center_ptr'
|
||||||
|
|
||||||
[cursors.circle]
|
[cursors.circle]
|
||||||
png = 'circle.png'
|
png = 'circle.png'
|
||||||
x_hotspot = 48
|
x_hotspot = 43
|
||||||
y_hotspot = 25
|
y_hotspot = 14
|
||||||
win_name = 'Unavailiable'
|
win_name = 'Unavailiable'
|
||||||
x11_name = 'circle'
|
x11_name = 'circle'
|
||||||
x11_symlinks = ['forbidden']
|
x11_symlinks = ['forbidden']
|
||||||
|
|
||||||
[cursors.context-menu]
|
[cursors.context-menu]
|
||||||
png = 'context-menu.png'
|
png = 'context-menu.png'
|
||||||
x_hotspot = 48
|
x_hotspot = 43
|
||||||
y_hotspot = 25
|
y_hotspot = 14
|
||||||
x11_name = 'context-menu'
|
x11_name = 'context-menu'
|
||||||
|
|
||||||
[cursors.copy]
|
[cursors.copy]
|
||||||
png = 'copy.png'
|
png = 'copy.png'
|
||||||
x_hotspot = 48
|
x_hotspot = 43
|
||||||
y_hotspot = 25
|
y_hotspot = 14
|
||||||
x11_name = 'copy'
|
x11_name = 'copy'
|
||||||
x11_symlinks = [
|
x11_symlinks = [
|
||||||
"1081e37283d90000800003c07f3ef6bf",
|
"1081e37283d90000800003c07f3ef6bf",
|
||||||
|
@ -101,53 +101,53 @@ x11_symlinks = ["03b6e0fcb3499374a867c041f52298f0", "not-allowed"]
|
||||||
|
|
||||||
[cursors.crosshair]
|
[cursors.crosshair]
|
||||||
png = 'crosshair.png'
|
png = 'crosshair.png'
|
||||||
x_hotspot = 99
|
x_hotspot = 100
|
||||||
y_hotspot = 99
|
y_hotspot = 101
|
||||||
x11_name = 'crosshair'
|
x11_name = 'crosshair'
|
||||||
|
|
||||||
[cursors.dnd_no_drop]
|
[cursors.dnd_no_drop]
|
||||||
png = 'dnd_no_drop.png'
|
png = 'dnd_no_drop.png'
|
||||||
x_hotspot = 86
|
x_hotspot = 89
|
||||||
y_hotspot = 79
|
y_hotspot = 61
|
||||||
x11_name = 'dnd_no_drop'
|
x11_name = 'dnd_no_drop'
|
||||||
x11_symlinks = ["no-drop"]
|
x11_symlinks = ["no-drop"]
|
||||||
|
|
||||||
[cursors.dnd-ask]
|
[cursors.dnd-ask]
|
||||||
png = 'dnd-ask.png'
|
png = 'dnd-ask.png'
|
||||||
x_hotspot = 86
|
x_hotspot = 89
|
||||||
y_hotspot = 79
|
y_hotspot = 61
|
||||||
x11_name = 'dnd-ask'
|
x11_name = 'dnd-ask'
|
||||||
|
|
||||||
[cursors.dnd-copy]
|
[cursors.dnd-copy]
|
||||||
png = 'dnd-copy.png'
|
png = 'dnd-copy.png'
|
||||||
x_hotspot = 86
|
x_hotspot = 89
|
||||||
y_hotspot = 79
|
y_hotspot = 61
|
||||||
x11_name = 'dnd-copy'
|
x11_name = 'dnd-copy'
|
||||||
|
|
||||||
[cursors.dnd-link]
|
[cursors.dnd-link]
|
||||||
png = 'dnd-link.png'
|
png = 'dnd-link.png'
|
||||||
x_hotspot = 86
|
x_hotspot = 89
|
||||||
y_hotspot = 79
|
y_hotspot = 61
|
||||||
x11_name = 'dnd-link'
|
x11_name = 'dnd-link'
|
||||||
x11_symlinks = ['alias']
|
x11_symlinks = ['alias']
|
||||||
|
|
||||||
[cursors.dnd-move]
|
[cursors.dnd-move]
|
||||||
png = 'dnd-move.png'
|
png = 'dnd-move.png'
|
||||||
x_hotspot = 86
|
x_hotspot = 89
|
||||||
y_hotspot = 79
|
y_hotspot = 61
|
||||||
x11_name = 'dnd-move'
|
x11_name = 'dnd-move'
|
||||||
|
|
||||||
[cursors.dotbox]
|
[cursors.dotbox]
|
||||||
png = 'dotbox.png'
|
png = 'dotbox.png'
|
||||||
x_hotspot = 100
|
x_hotspot = 97
|
||||||
y_hotspot = 100
|
y_hotspot = 99
|
||||||
x11_name = 'dotbox'
|
x11_name = 'dotbox'
|
||||||
x11_symlinks = ["dot_box_mask", "draped_box", "icon", "target"]
|
x11_symlinks = ["dot_box_mask", "draped_box", "icon", "target"]
|
||||||
|
|
||||||
[cursors.fd_double_arrow]
|
[cursors.fd_double_arrow]
|
||||||
png = 'fd_double_arrow.png'
|
png = 'fd_double_arrow.png'
|
||||||
x_hotspot = 98
|
x_hotspot = 99
|
||||||
y_hotspot = 100
|
y_hotspot = 99
|
||||||
win_name = 'Diagonal_2'
|
win_name = 'Diagonal_2'
|
||||||
x11_name = 'fd_double_arrow'
|
x11_name = 'fd_double_arrow'
|
||||||
x11_symlinks = ["fcf1c3c7cd4491d801f1e1c78f100000", "nesw-resize", "size_bdiag"]
|
x11_symlinks = ["fcf1c3c7cd4491d801f1e1c78f100000", "nesw-resize", "size_bdiag"]
|
||||||
|
@ -155,14 +155,14 @@ x11_symlinks = ["fcf1c3c7cd4491d801f1e1c78f100000", "nesw-resize", "size_bdiag"]
|
||||||
[cursors.grabbing]
|
[cursors.grabbing]
|
||||||
png = 'grabbing.png'
|
png = 'grabbing.png'
|
||||||
x_hotspot = 106
|
x_hotspot = 106
|
||||||
y_hotspot = 79
|
y_hotspot = 59
|
||||||
x11_name = 'grabbing'
|
x11_name = 'grabbing'
|
||||||
x11_symlinks = ["closedhand", "dnd-none", "fcf21c00b30f7e3f83fe0dfd12e71cff"]
|
x11_symlinks = ["closedhand", "dnd-none", "fcf21c00b30f7e3f83fe0dfd12e71cff"]
|
||||||
|
|
||||||
[cursors.hand1]
|
[cursors.hand1]
|
||||||
png = 'hand1.png'
|
png = 'hand1.png'
|
||||||
x_hotspot = 113
|
x_hotspot = 117
|
||||||
y_hotspot = 95
|
y_hotspot = 39
|
||||||
win_name = 'Move'
|
win_name = 'Move'
|
||||||
x11_name = 'hand1'
|
x11_name = 'hand1'
|
||||||
x11_symlinks = ["grab", "openhand"]
|
x11_symlinks = ["grab", "openhand"]
|
||||||
|
@ -170,7 +170,7 @@ x11_symlinks = ["grab", "openhand"]
|
||||||
[cursors.hand2]
|
[cursors.hand2]
|
||||||
png = 'hand2.png'
|
png = 'hand2.png'
|
||||||
x_hotspot = 88
|
x_hotspot = 88
|
||||||
y_hotspot = 32
|
y_hotspot = 14
|
||||||
win_name = 'Link'
|
win_name = 'Link'
|
||||||
x11_name = 'hand2'
|
x11_name = 'hand2'
|
||||||
x11_symlinks = [
|
x11_symlinks = [
|
||||||
|
@ -182,16 +182,16 @@ x11_symlinks = [
|
||||||
|
|
||||||
[cursors.left_ptr]
|
[cursors.left_ptr]
|
||||||
png = 'left_ptr.png'
|
png = 'left_ptr.png'
|
||||||
x_hotspot = 53
|
x_hotspot = 42
|
||||||
y_hotspot = 36
|
y_hotspot = 15
|
||||||
win_name = 'Default'
|
win_name = 'Default'
|
||||||
x11_name = 'left_ptr'
|
x11_name = 'left_ptr'
|
||||||
x11_symlinks = ["arrow", "default", "top_left_arrow"]
|
x11_symlinks = ["arrow", "default", "top_left_arrow"]
|
||||||
|
|
||||||
[cursors.left_ptr_watch]
|
[cursors.left_ptr_watch]
|
||||||
png = 'left_ptr_watch-*.png'
|
png = 'left_ptr_watch-*.png'
|
||||||
x_hotspot = 50
|
x_hotspot = 44
|
||||||
y_hotspot = 28
|
y_hotspot = 14
|
||||||
win_name = 'Work'
|
win_name = 'Work'
|
||||||
x11_name = 'left_ptr_watch'
|
x11_name = 'left_ptr_watch'
|
||||||
x11_symlinks = [
|
x11_symlinks = [
|
||||||
|
@ -204,20 +204,20 @@ x11_symlinks = [
|
||||||
[cursors.left_side]
|
[cursors.left_side]
|
||||||
png = 'left_side.png'
|
png = 'left_side.png'
|
||||||
x_hotspot = 35
|
x_hotspot = 35
|
||||||
y_hotspot = 100
|
y_hotspot = 101
|
||||||
x11_name = 'left_side'
|
x11_name = 'left_side'
|
||||||
x11_symlinks = ['w-resize']
|
x11_symlinks = ['w-resize']
|
||||||
|
|
||||||
[cursors.left_tee]
|
[cursors.left_tee]
|
||||||
png = 'left_tee.png'
|
png = 'left_tee.png'
|
||||||
x_hotspot = 165
|
x_hotspot = 165
|
||||||
y_hotspot = 95
|
y_hotspot = 96
|
||||||
x11_name = 'left_tee'
|
x11_name = 'left_tee'
|
||||||
|
|
||||||
[cursors.link]
|
[cursors.link]
|
||||||
png = 'link.png'
|
png = 'link.png'
|
||||||
x_hotspot = 48
|
x_hotspot = 43
|
||||||
y_hotspot = 25
|
y_hotspot = 14
|
||||||
x11_name = 'link'
|
x11_name = 'link'
|
||||||
x11_symlinks = [
|
x11_symlinks = [
|
||||||
"3085a0e285430894940527032f8b26df",
|
"3085a0e285430894940527032f8b26df",
|
||||||
|
@ -228,19 +228,19 @@ x11_symlinks = [
|
||||||
[cursors.ll_angle]
|
[cursors.ll_angle]
|
||||||
png = 'll_angle.png'
|
png = 'll_angle.png'
|
||||||
x_hotspot = 34
|
x_hotspot = 34
|
||||||
y_hotspot = 165
|
y_hotspot = 164
|
||||||
x11_name = 'll_angle'
|
x11_name = 'll_angle'
|
||||||
|
|
||||||
[cursors.lr_angle]
|
[cursors.lr_angle]
|
||||||
png = 'lr_angle.png'
|
png = 'lr_angle.png'
|
||||||
x_hotspot = 167
|
x_hotspot = 165
|
||||||
y_hotspot = 164
|
y_hotspot = 165
|
||||||
x11_name = 'lr_angle'
|
x11_name = 'lr_angle'
|
||||||
|
|
||||||
[cursors.move]
|
[cursors.move]
|
||||||
png = 'move.png'
|
png = 'move.png'
|
||||||
x_hotspot = 100
|
x_hotspot = 99
|
||||||
y_hotspot = 100
|
y_hotspot = 99
|
||||||
x11_name = 'move'
|
x11_name = 'move'
|
||||||
x11_symlinks = [
|
x11_symlinks = [
|
||||||
"4498f0e0c1937ffe01fd06f973665830",
|
"4498f0e0c1937ffe01fd06f973665830",
|
||||||
|
@ -252,8 +252,8 @@ x11_symlinks = [
|
||||||
|
|
||||||
[cursors.pencil]
|
[cursors.pencil]
|
||||||
png = 'pencil.png'
|
png = 'pencil.png'
|
||||||
x_hotspot = 37
|
x_hotspot = 28
|
||||||
y_hotspot = 161
|
y_hotspot = 172
|
||||||
win_name = 'Handwriting'
|
win_name = 'Handwriting'
|
||||||
x11_name = 'pencil'
|
x11_name = 'pencil'
|
||||||
x11_symlinks = ['draft']
|
x11_symlinks = ['draft']
|
||||||
|
@ -267,14 +267,14 @@ x11_symlinks = ['cell']
|
||||||
|
|
||||||
[cursors.pointer-move]
|
[cursors.pointer-move]
|
||||||
png = 'pointer-move.png'
|
png = 'pointer-move.png'
|
||||||
x_hotspot = 48
|
x_hotspot = 43
|
||||||
y_hotspot = 25
|
y_hotspot = 14
|
||||||
x11_name = 'pointer-move'
|
x11_name = 'pointer-move'
|
||||||
|
|
||||||
[cursors.question_arrow]
|
[cursors.question_arrow]
|
||||||
png = 'question_arrow.png'
|
png = 'question_arrow.png'
|
||||||
x_hotspot = 102
|
x_hotspot = 43
|
||||||
y_hotspot = 102
|
y_hotspot = 105
|
||||||
win_name = 'Help'
|
win_name = 'Help'
|
||||||
x11_name = 'question_arrow'
|
x11_name = 'question_arrow'
|
||||||
x11_symlinks = [
|
x11_symlinks = [
|
||||||
|
@ -287,8 +287,8 @@ x11_symlinks = [
|
||||||
|
|
||||||
[cursors.right_ptr]
|
[cursors.right_ptr]
|
||||||
png = 'right_ptr.png'
|
png = 'right_ptr.png'
|
||||||
x_hotspot = 150
|
x_hotspot = 156
|
||||||
y_hotspot = 29
|
y_hotspot = 14
|
||||||
win_name = 'Alternate'
|
win_name = 'Alternate'
|
||||||
x11_name = 'right_ptr'
|
x11_name = 'right_ptr'
|
||||||
x11_symlinks = ["draft_large", "draft_small"]
|
x11_symlinks = ["draft_large", "draft_small"]
|
||||||
|
@ -302,20 +302,20 @@ x11_symlinks = ['e-resize']
|
||||||
|
|
||||||
[cursors.right_tee]
|
[cursors.right_tee]
|
||||||
png = 'right_tee.png'
|
png = 'right_tee.png'
|
||||||
x_hotspot = 30
|
x_hotspot = 31
|
||||||
y_hotspot = 96
|
y_hotspot = 96
|
||||||
x11_name = 'right_tee'
|
x11_name = 'right_tee'
|
||||||
|
|
||||||
[cursors.sb_down_arrow]
|
[cursors.sb_down_arrow]
|
||||||
png = 'sb_down_arrow.png'
|
png = 'sb_down_arrow.png'
|
||||||
x_hotspot = 100
|
x_hotspot = 100
|
||||||
y_hotspot = 126
|
y_hotspot = 178
|
||||||
x11_name = 'sb_down_arrow'
|
x11_name = 'sb_down_arrow'
|
||||||
x11_symlinks = ['down-arrow']
|
x11_symlinks = ['down-arrow']
|
||||||
|
|
||||||
[cursors.sb_h_double_arrow]
|
[cursors.sb_h_double_arrow]
|
||||||
png = 'sb_h_double_arrow.png'
|
png = 'sb_h_double_arrow.png'
|
||||||
x_hotspot = 100
|
x_hotspot = 99
|
||||||
y_hotspot = 100
|
y_hotspot = 100
|
||||||
win_name = 'Horizontal'
|
win_name = 'Horizontal'
|
||||||
x11_name = 'sb_h_double_arrow'
|
x11_name = 'sb_h_double_arrow'
|
||||||
|
@ -332,14 +332,14 @@ x11_symlinks = [
|
||||||
|
|
||||||
[cursors.sb_left_arrow]
|
[cursors.sb_left_arrow]
|
||||||
png = 'sb_left_arrow.png'
|
png = 'sb_left_arrow.png'
|
||||||
x_hotspot = 86
|
x_hotspot = 20
|
||||||
y_hotspot = 100
|
y_hotspot = 100
|
||||||
x11_name = 'sb_left_arrow'
|
x11_name = 'sb_left_arrow'
|
||||||
x11_symlinks = ['left-arrow']
|
x11_symlinks = ['left-arrow']
|
||||||
|
|
||||||
[cursors.sb_right_arrow]
|
[cursors.sb_right_arrow]
|
||||||
png = 'sb_right_arrow.png'
|
png = 'sb_right_arrow.png'
|
||||||
x_hotspot = 113
|
x_hotspot = 178
|
||||||
y_hotspot = 100
|
y_hotspot = 100
|
||||||
x11_name = 'sb_right_arrow'
|
x11_name = 'sb_right_arrow'
|
||||||
x11_symlinks = ['right-arrow']
|
x11_symlinks = ['right-arrow']
|
||||||
|
@ -347,13 +347,13 @@ x11_symlinks = ['right-arrow']
|
||||||
[cursors.sb_up_arrow]
|
[cursors.sb_up_arrow]
|
||||||
png = 'sb_up_arrow.png'
|
png = 'sb_up_arrow.png'
|
||||||
x_hotspot = 99
|
x_hotspot = 99
|
||||||
y_hotspot = 86
|
y_hotspot = 21
|
||||||
x11_name = 'sb_up_arrow'
|
x11_name = 'sb_up_arrow'
|
||||||
x11_symlinks = ['up-arrow']
|
x11_symlinks = ['up-arrow']
|
||||||
|
|
||||||
[cursors.sb_v_double_arrow]
|
[cursors.sb_v_double_arrow]
|
||||||
png = 'sb_v_double_arrow.png'
|
png = 'sb_v_double_arrow.png'
|
||||||
x_hotspot = 100
|
x_hotspot = 99
|
||||||
y_hotspot = 100
|
y_hotspot = 100
|
||||||
win_name = 'Vertical'
|
win_name = 'Vertical'
|
||||||
x11_name = 'sb_v_double_arrow'
|
x11_name = 'sb_v_double_arrow'
|
||||||
|
@ -371,8 +371,8 @@ x11_symlinks = [
|
||||||
|
|
||||||
[cursors.tcross]
|
[cursors.tcross]
|
||||||
png = 'tcross.png'
|
png = 'tcross.png'
|
||||||
x_hotspot = 98
|
x_hotspot = 100
|
||||||
y_hotspot = 100
|
y_hotspot = 99
|
||||||
x11_name = 'tcross'
|
x11_name = 'tcross'
|
||||||
x11_symlinks = ['color-picker']
|
x11_symlinks = ['color-picker']
|
||||||
|
|
||||||
|
@ -386,21 +386,21 @@ x11_symlinks = ['nw-resize']
|
||||||
[cursors.top_right_corner]
|
[cursors.top_right_corner]
|
||||||
png = 'top_right_corner.png'
|
png = 'top_right_corner.png'
|
||||||
x_hotspot = 170
|
x_hotspot = 170
|
||||||
y_hotspot = 28
|
y_hotspot = 26
|
||||||
x11_name = 'top_right_corner'
|
x11_name = 'top_right_corner'
|
||||||
x11_symlinks = ['ne-resize']
|
x11_symlinks = ['ne-resize']
|
||||||
|
|
||||||
[cursors.top_side]
|
[cursors.top_side]
|
||||||
png = 'top_side.png'
|
png = 'top_side.png'
|
||||||
x_hotspot = 98
|
x_hotspot = 98
|
||||||
y_hotspot = 34
|
y_hotspot = 36
|
||||||
x11_name = 'top_side'
|
x11_name = 'top_side'
|
||||||
x11_symlinks = ['n-resize']
|
x11_symlinks = ['n-resize']
|
||||||
|
|
||||||
[cursors.top_tee]
|
[cursors.top_tee]
|
||||||
png = 'top_tee.png'
|
png = 'top_tee.png'
|
||||||
x_hotspot = 98
|
x_hotspot = 99
|
||||||
y_hotspot = 29
|
y_hotspot = 30
|
||||||
x11_name = 'top_tee'
|
x11_name = 'top_tee'
|
||||||
|
|
||||||
[cursors.ul_angle]
|
[cursors.ul_angle]
|
||||||
|
@ -412,7 +412,7 @@ x11_name = 'ul_angle'
|
||||||
[cursors.ur_angle]
|
[cursors.ur_angle]
|
||||||
png = 'ur_angle.png'
|
png = 'ur_angle.png'
|
||||||
x_hotspot = 164
|
x_hotspot = 164
|
||||||
y_hotspot = 34
|
y_hotspot = 35
|
||||||
x11_name = 'ur_angle'
|
x11_name = 'ur_angle'
|
||||||
|
|
||||||
[cursors.vertical-text]
|
[cursors.vertical-text]
|
||||||
|
@ -450,12 +450,12 @@ x11_symlinks = ["ibeam", "text"]
|
||||||
|
|
||||||
[cursors.zoom_in]
|
[cursors.zoom_in]
|
||||||
png = 'zoom-in.png'
|
png = 'zoom-in.png'
|
||||||
x_hotspot = 90
|
x_hotspot = 91
|
||||||
y_hotspot = 89
|
y_hotspot = 90
|
||||||
x11_name = 'zoom-in'
|
x11_name = 'zoom-in'
|
||||||
|
|
||||||
[cursors.zoom_out]
|
[cursors.zoom_out]
|
||||||
png = 'zoom-out.png'
|
png = 'zoom-out.png'
|
||||||
x_hotspot = 93
|
x_hotspot = 89
|
||||||
y_hotspot = 90
|
y_hotspot = 90
|
||||||
x11_name = 'zoom-out'
|
x11_name = 'zoom-out'
|
||||||
|
|
26
package.json
26
package.json
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "bibata-bitmapper",
|
"name": "bibata-bitmapper",
|
||||||
"description": "A bitmapper CLI for Bibata cursor.",
|
"description": "This package generate '.png' file from '.svg'",
|
||||||
"author": "Kaiz Khatri",
|
"author": "Kaiz Khatri",
|
||||||
"version": "1.1.2",
|
"version": "2.0.0",
|
||||||
"private": false,
|
"private": false,
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"main": "dist/cli.js",
|
"main": "dist/cli.js",
|
||||||
|
@ -15,16 +15,22 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"compile": "tsc -p .",
|
"compile": "tsc -p .",
|
||||||
"render:bibata-modern": "yarn compile && node dist/cli.js modern",
|
"render:bibata-modern-amber": "yarn compile && node dist/cli.js -d 'svg/modern' -n 'Bibata-Modern-Amber' -bc '#FF8300' -oc '#FFFFFF' -wc '#001524'",
|
||||||
"render:bibata-original": "yarn compile && node dist/cli.js original",
|
"render:bibata-modern-classic": "yarn compile && node dist/cli.js -d 'svg/modern' -n 'Bibata-Modern-Classic' -bc '#000000' -oc '#FFFFFF'",
|
||||||
|
"render:bibata-modern-ice": "yarn compile && node dist/cli.js -d 'svg/modern' -n 'Bibata-Modern-Ice' -bc '#FFFFFF' -oc '#000000'",
|
||||||
|
"render:bibata-modern": "yarn render:bibata-modern-amber && yarn render:bibata-modern-classic && yarn render:bibata-modern-ice",
|
||||||
|
"render:bibata-original-amber": "yarn compile && node dist/cli.js -d 'svg/original' -n 'Bibata-Original-Amber' -bc '#FF8300' -oc '#FFFFFF' -wc '#001524'",
|
||||||
|
"render:bibata-original-classic": "yarn compile && node dist/cli.js -d 'svg/original' -n 'Bibata-Original-Classic' -bc '#000000' -oc '#FFFFFF'",
|
||||||
|
"render:bibata-original-ice": "yarn compile && node dist/cli.js -d 'svg/original' -n 'Bibata-Original-Ice' -bc '#FFFFFF' -oc '#000000'",
|
||||||
|
"render:bibata-original": "yarn render:bibata-original-amber && yarn render:bibata-original-classic && yarn render:bibata-original-ice",
|
||||||
"render": "yarn render:bibata-modern && yarn render:bibata-original",
|
"render": "yarn render:bibata-modern && yarn render:bibata-original",
|
||||||
"build:bibata-modern-amber": "ctgen build.toml -n 'Bibata-Modern-Amber' -c 'Yellowish and rounded edge Bibata cursors.' -d 'bitmaps/Bibata-Modern-Amber'",
|
"build:bibata-modern-amber": "ctgen build.toml -d 'bitmaps/Bibata-Modern-Amber' -n 'Bibata-Modern-Amber' -c 'Yellowish and rounded edge Bibata cursors.'",
|
||||||
"build:bibata-modern-classic": "ctgen build.toml -n 'Bibata-Modern-Classic' -c 'Black and rounded edge Bibata cursors.' -d 'bitmaps/Bibata-Modern-Classic'",
|
"build:bibata-modern-classic": "ctgen build.toml -d 'bitmaps/Bibata-Modern-Classic' -n 'Bibata-Modern-Classic' -c 'Black and rounded edge Bibata cursors.'",
|
||||||
"build:bibata-modern-ice": "ctgen build.toml -n 'Bibata-Modern-Ice' -c 'White and rounded edge Bibata cursors.' -d 'bitmaps/Bibata-Modern-Ice'",
|
"build:bibata-modern-ice": "ctgen build.toml -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata-Modern-Ice' -c 'White and rounded edge Bibata cursors.'",
|
||||||
"build:bibata-original-amber": "ctgen build.toml -n 'Bibata-Original-Amber' -c 'Yellowish and sharp edge Bibata cursors.' -d 'bitmaps/Bibata-Original-Amber'",
|
|
||||||
"build:bibata-original-classic": "ctgen build.toml -n 'Bibata-Original-Classic' -c 'Black and sharp edge Bibata cursors.' -d 'bitmaps/Bibata-Original-Classic'",
|
|
||||||
"build:bibata-original-ice": "ctgen build.toml -n 'Bibata-Original-Ice' -c 'White and sharp edge bibata cursors.' -d 'bitmaps/Bibata-Original-Ice'",
|
|
||||||
"build:bibata-modern": "yarn build:bibata-modern-amber && yarn build:bibata-modern-classic && yarn build:bibata-modern-ice",
|
"build:bibata-modern": "yarn build:bibata-modern-amber && yarn build:bibata-modern-classic && yarn build:bibata-modern-ice",
|
||||||
|
"build:bibata-original-amber": "ctgen build.toml -d 'bitmaps/Bibata-Original-Amber' -n 'Bibata-Original-Amber' -c 'Yellowish and sharp edge Bibata cursors.'",
|
||||||
|
"build:bibata-original-classic": "ctgen build.toml -d 'bitmaps/Bibata-Original-Classic' -n 'Bibata-Original-Classic' -c 'Black and sharp edge Bibata cursors.' ",
|
||||||
|
"build:bibata-original-ice": "ctgen build.toml -d 'bitmaps/Bibata-Original-Ice' -n 'Bibata-Original-Ice' -c 'White and sharp edge bibata cursors.'",
|
||||||
"build:bibata-original": "yarn build:bibata-original-amber && yarn build:bibata-original-classic && yarn build:bibata-original-ice",
|
"build:bibata-original": "yarn build:bibata-original-amber && yarn build:bibata-original-classic && yarn build:bibata-original-ice",
|
||||||
"build": "yarn build:bibata-modern && yarn build:bibata-original"
|
"build": "yarn build:bibata-modern && yarn build:bibata-original"
|
||||||
},
|
},
|
||||||
|
|
115
src/cli.ts
115
src/cli.ts
|
@ -2,10 +2,9 @@
|
||||||
require("module-alias/register");
|
require("module-alias/register");
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
||||||
import { Argument, Command, Option } from "commander";
|
import { Command, Option } from "commander";
|
||||||
|
|
||||||
import { builder } from "#root/modules";
|
import { builder } from "#root/modules";
|
||||||
import * as commands from "#root/commands";
|
|
||||||
|
|
||||||
import { exitWithError } from "#root/utils/exitWithError";
|
import { exitWithError } from "#root/utils/exitWithError";
|
||||||
|
|
||||||
|
@ -20,23 +19,12 @@ interface ProgramOptions {
|
||||||
|
|
||||||
const cliApp = async () => {
|
const cliApp = async () => {
|
||||||
const program = new Command();
|
const program = new Command();
|
||||||
let style: string = "";
|
|
||||||
|
|
||||||
program
|
program
|
||||||
.name("bibata-bitmapper")
|
.name("bibata-bitmapper")
|
||||||
.version("1.1.2")
|
.version("2.0.0")
|
||||||
.usage("[OPTIONS]...")
|
.usage("[OPTIONS]...")
|
||||||
|
|
||||||
.addArgument(
|
|
||||||
new Argument(
|
|
||||||
"<style>",
|
|
||||||
"Generate bitmaps for builtin Bibata style."
|
|
||||||
).choices(["modern", "original"])
|
|
||||||
)
|
|
||||||
.action((s) => {
|
|
||||||
style = s;
|
|
||||||
})
|
|
||||||
|
|
||||||
.addOption(
|
.addOption(
|
||||||
new Option(
|
new Option(
|
||||||
"-d, --dir <path>",
|
"-d, --dir <path>",
|
||||||
|
@ -44,7 +32,10 @@ const cliApp = async () => {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.addOption(
|
.addOption(
|
||||||
new Option("-o, --out <path>", "Specifies the output directory.")
|
new Option(
|
||||||
|
"-o, --out <path>",
|
||||||
|
"Specifies the output directory. (default './bitmaps')"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
.addOption(
|
.addOption(
|
||||||
new Option(
|
new Option(
|
||||||
|
@ -81,61 +72,47 @@ const cliApp = async () => {
|
||||||
program.parse(process.argv);
|
program.parse(process.argv);
|
||||||
const options: ProgramOptions = program.opts();
|
const options: ProgramOptions = program.opts();
|
||||||
|
|
||||||
switch (style) {
|
if (!options.dir) {
|
||||||
case "modern": {
|
exitWithError(" error: option '-d, --dir <path>' missing");
|
||||||
await commands.modern.execute();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "original": {
|
|
||||||
await commands.original.execute();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default: {
|
|
||||||
if (!options.dir) {
|
|
||||||
exitWithError(" error: option '-d, --dir <path>' missing");
|
|
||||||
}
|
|
||||||
if (!options.out) {
|
|
||||||
exitWithError(" error: option '-o, --out <path>' missing");
|
|
||||||
}
|
|
||||||
if (!options.themeName) {
|
|
||||||
exitWithError(" error: option '-n, --themeName <string>' missing");
|
|
||||||
}
|
|
||||||
if (!options.baseColor) {
|
|
||||||
exitWithError(" error: option '-bc, --baseColor <hex>' missing");
|
|
||||||
}
|
|
||||||
if (!options.outlineColor) {
|
|
||||||
exitWithError(" error: option '-oc, --outlineColor <hex>' missing");
|
|
||||||
}
|
|
||||||
|
|
||||||
const colors = {
|
|
||||||
base: options.baseColor,
|
|
||||||
outline: options.outlineColor,
|
|
||||||
watch: {
|
|
||||||
background: options.watchBackgroundColor ?? options.baseColor,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const bitmapsDir = path.resolve(options.out, options.themeName);
|
|
||||||
|
|
||||||
// Logging arguments
|
|
||||||
console.log("---");
|
|
||||||
console.log(`SVG directory: '${options.dir}'`);
|
|
||||||
console.log(`Output directory: '${bitmapsDir}'`);
|
|
||||||
console.log(`Base color: '${colors.base}'`);
|
|
||||||
console.log(`Outline color: '${colors.outline}'`);
|
|
||||||
console.log(`Watch Background color: '${colors.watch.background}'`);
|
|
||||||
console.log("---\n");
|
|
||||||
|
|
||||||
builder.buildBitmaps({
|
|
||||||
dir: options.dir,
|
|
||||||
out: options.out,
|
|
||||||
themeName: options.themeName,
|
|
||||||
colors: colors,
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!options.out) {
|
||||||
|
console.log(" info: setting output directory to './bitmaps'");
|
||||||
|
options.out = path.resolve("./bitmaps");
|
||||||
|
}
|
||||||
|
if (!options.themeName) {
|
||||||
|
exitWithError(" error: option '-n, --themeName <string>' missing");
|
||||||
|
}
|
||||||
|
if (!options.baseColor) {
|
||||||
|
exitWithError(" error: option '-bc, --baseColor <hex>' missing");
|
||||||
|
}
|
||||||
|
if (!options.outlineColor) {
|
||||||
|
exitWithError(" error: option '-oc, --outlineColor <hex>' missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
const colors = {
|
||||||
|
base: options.baseColor,
|
||||||
|
outline: options.outlineColor,
|
||||||
|
watch: {
|
||||||
|
background: options.watchBackgroundColor ?? options.baseColor,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const bitmapsDir = path.resolve(options.out, options.themeName);
|
||||||
|
|
||||||
|
// Logging arguments
|
||||||
|
console.log("---");
|
||||||
|
console.log(`SVG directory: '${options.dir}'`);
|
||||||
|
console.log(`Output directory: '${bitmapsDir}'`);
|
||||||
|
console.log(`Base color: '${colors.base}'`);
|
||||||
|
console.log(`Outline color: '${colors.outline}'`);
|
||||||
|
console.log(`Watch Background color: '${colors.watch.background}'`);
|
||||||
|
console.log("---\n");
|
||||||
|
|
||||||
|
builder.buildBitmaps({
|
||||||
|
dir: options.dir,
|
||||||
|
out: options.out,
|
||||||
|
themeName: options.themeName,
|
||||||
|
colors: colors,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
cliApp();
|
cliApp();
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
import * as modern from "./modern";
|
|
||||||
import * as original from "./original";
|
|
||||||
|
|
||||||
export { modern, original };
|
|
|
@ -1,29 +0,0 @@
|
||||||
import { builder } from "#root/modules";
|
|
||||||
import { colors, paths } from "#root/config";
|
|
||||||
|
|
||||||
const themes = [
|
|
||||||
{
|
|
||||||
themeName: "Bibata-Modern-Amber",
|
|
||||||
colors: colors.amber,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
themeName: "Bibata-Modern-Classic",
|
|
||||||
colors: colors.classic,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
themeName: "Bibata-Modern-Ice",
|
|
||||||
colors: colors.ice,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const execute = async () => {
|
|
||||||
for (const args of themes) {
|
|
||||||
await builder.buildBitmaps({
|
|
||||||
dir: paths.modern,
|
|
||||||
out: paths.bitmaps,
|
|
||||||
...args,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export { execute };
|
|
|
@ -1,29 +0,0 @@
|
||||||
import { builder } from "#root/modules";
|
|
||||||
import { colors, paths } from "#root/config";
|
|
||||||
|
|
||||||
const themes = [
|
|
||||||
{
|
|
||||||
themeName: "Bibata-Original-Amber",
|
|
||||||
colors: colors.amber,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
themeName: "Bibata-Original-Classic",
|
|
||||||
colors: colors.classic,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
themeName: "Bibata-Original-Ice",
|
|
||||||
colors: colors.ice,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const execute = async () => {
|
|
||||||
for (const args of themes) {
|
|
||||||
await builder.buildBitmaps({
|
|
||||||
dir: paths.original,
|
|
||||||
out: paths.bitmaps,
|
|
||||||
...args,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export { execute };
|
|
|
@ -1,36 +0,0 @@
|
||||||
import path from "path";
|
|
||||||
|
|
||||||
const projectRoot = path.resolve("./");
|
|
||||||
const paths = {
|
|
||||||
modern: path.resolve(projectRoot, "svg", "modern"),
|
|
||||||
original: path.resolve(projectRoot, "svg", "original"),
|
|
||||||
bitmaps: path.resolve(projectRoot, "bitmaps"),
|
|
||||||
};
|
|
||||||
|
|
||||||
// Colors
|
|
||||||
const palette = {
|
|
||||||
black: "#000000",
|
|
||||||
white: "#FFFFFF",
|
|
||||||
amber: "#FF8300",
|
|
||||||
richBlack: "#001524",
|
|
||||||
};
|
|
||||||
|
|
||||||
const colors = {
|
|
||||||
amber: {
|
|
||||||
base: palette.amber,
|
|
||||||
outline: palette.white,
|
|
||||||
watch: {
|
|
||||||
background: palette.richBlack,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
classic: {
|
|
||||||
base: palette.black,
|
|
||||||
outline: palette.white,
|
|
||||||
},
|
|
||||||
ice: {
|
|
||||||
base: palette.white,
|
|
||||||
outline: palette.black,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
export { paths, colors };
|
|
12
yarn.lock
12
yarn.lock
|
@ -53,9 +53,9 @@
|
||||||
integrity sha512-DN/CCT1HQG6HquBNJdLkvV+4v5l/oEuwOHUPLxI+Eub0NED+lk0YUfba04WGH90EINiUrNgClkNnwGmbICeWMQ==
|
integrity sha512-DN/CCT1HQG6HquBNJdLkvV+4v5l/oEuwOHUPLxI+Eub0NED+lk0YUfba04WGH90EINiUrNgClkNnwGmbICeWMQ==
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "18.7.3"
|
version "18.7.23"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.3.tgz#432c89796eab539b7a30b7b8801a727b585238a4"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.23.tgz#75c580983846181ebe5f4abc40fe9dfb2d65665f"
|
||||||
integrity sha512-LJgzOEwWuMTBxHzgBR/fhhBOWrvBjvO+zPteUgbbuQi80rYIZHrk1mNbRUqPZqSLP2H7Rwt1EFLL/tNLD1Xx/w==
|
integrity sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==
|
||||||
|
|
||||||
"@types/pixelmatch@^5.2.4":
|
"@types/pixelmatch@^5.2.4":
|
||||||
version "5.2.4"
|
version "5.2.4"
|
||||||
|
@ -495,9 +495,9 @@ ts-node@^10.6.0:
|
||||||
yn "3.1.1"
|
yn "3.1.1"
|
||||||
|
|
||||||
typescript@^4.6.2:
|
typescript@^4.6.2:
|
||||||
version "4.7.4"
|
version "4.8.4"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6"
|
||||||
integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
|
integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
|
||||||
|
|
||||||
unbzip2-stream@1.4.3:
|
unbzip2-stream@1.4.3:
|
||||||
version "1.4.3"
|
version "1.4.3"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue