Skip to content

ful1e5/BreezeX_Cursor

Repository files navigation

BreezeX Cursor

Extended KDE cursor, Highly inspired on KDE Breeze for Windows and Linux with HiDPi Support .

Extended!?

BreezeX Cursor is an independent project that supports more XCursor sizes and also offers compatibility with Windows. BreezeX provides more cursor options than the standard Breeze Cursor and allows for customization of colors and cursor sizes using powerful open-source tools.

build

Notes

  • All cursor's SVG files are found in svg directory or you can also find them on Figma.

shoutout-sponsors

  • 2024-07-01: b9d526d Partitioned cursor build configuration into multiple files according to platform: build.toml -> configs/win_lg.build.toml, configs/win_rg.build.toml, configs/win_xl.build.toml, configs/x.build.toml.

Breeze Black Breeze Dark Breeze Light

Cursor Sizes

Xcursor Sizes:

16 20 22 24 28 32 40 48 56 64 72 80 88 96

Windows Cursor Size:

size Regular (× ²⁄₃) Large (× ⁴⁄₅) Extra-Large (× 1)
32 21.333 → 22 25.6 → 26 32
48 32 38.4 → 39 48
64 42.666 → 43 51.2 → 52 64
96 64 76.8 → 77 96
128 85.333 → 86 102.4 → 103 128

Colors

BreezeX Dark

  • Outline Color - #FFFFFF (White)
  • Base Color - #4D4D4D (Breeze)

BreezeX Light

  • Outline Color - #4D4D4D (Breeze)
  • Base Color - #FFFFFF (White)

BreezeX Black

  • Outline Color - #FFFFFF (White)
  • Base Color - #000000 (Black)

How to get it

Easiest Way

You can download latest stable & development releases from Release Page.

Installing BreezeX Cursor

Linux/X11

Installation:

tar -xvf BreezeX-Dark.tar.gz                # extract `BreezeX-Dark.tar.gz`
mv BreezeX-* ~/.icons/                      # Install to local users
sudo mv BreezeX-* /usr/share/icons/         # Install to all users

Uninstallation:

rm ~/.icons/BreezeX-*                       # Remove from local users
sudo rm /usr/share/icons/BreezeX-*          # Remove from all users

Windows

Installation:

  1. Unzip .zip file
  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.
  4. Open Control Panel > Personalization and Appearance > Change mouse pointers, and select BreezeX Cursors.
  5. Click 'Apply'.

Uninstallation:

Run the uninstall.bat script packed with the .zip archive

OR follow these steps:

  1. Go to Registry Editor by typing the same in the start search box.
  2. Expand HKEY_CURRENT_USER folder and expand Control Panel folder.
  3. Go to Cursors folder and click on Schemes folder - all the available custom cursors that are installed will be listed here.
  4. Right Click on the name of cursor file you want to uninstall; for eg.: BreezeX Cursors and click Delete.
  5. Click 'yes' when prompted.

Build From Source

Prerequisites

  • Python version 3.7 or higher
  • clickgen>=2.2.5 (pip install clickgen)
  • yarn

Quick start

  1. Install build prerequisites on your system
  2. git clone https://github.com/ful1e5/BreezeX_Cursor
  3. cd BreezeX_Cursor
  4. yarn install
  5. yarn generate
  6. See Installing BreezeX Cursor.

Getting Started

Once you have the build prerequisites installed, You can personalize colors, customize sizes, change target platforms, and more. This process involves using external tools, as this repository only contains SVG files and configuration for these tools:

  • cbmp: Used for customizing colors and generating PNG files.
  • ctgen: Used for customizing sizes and building XCursor and Windows Cursors.

You can refer to the README of each tool for more information on their command-line options.

Crafting Your BreezeX Cursor

The process of creating custom cursor themes involves two main steps:

  1. Rendering SVG files to PNG files.
  2. Building cursor themes from PNG files.

Customize Colors

cbmp provides three options for changing colors:

  1. -bc: Base color, which replaces the #00FF00 color in the SVG.
  2. -oc: Outlined color, which replaces the #0000FF color in the SVG.
  3. -wc (optional): Watch Background color, which replaces the #FF0000 color in the SVG.
npx cbmp [...] -bc "<hex>" -oc "<hex>" -wc "<hex>"

Alternatively, you can provide a JSON configuration file to render SVG files, which contains a sequence of cbmp commands:

npx cbmp render.json

Customize Sizes

Customize Windows Cursor size

To build Windows cursor with size 16:

ctgen configs/win_lg.build.toml -s 16 -p windows -d "bitmaps/BreezeX-Dark" -n "BreezeX-Dark" -c "Extended Breeze XCursors with size 16"

You can also customize output directory with -o option:

ctgen configs/win_lg.build.toml -s 16 -p windows -d "bitmaps/BreezeX-Dark" -o "out" -n "BreezeX-Dark" -c "Extended Breeze Windows Cursors with size 16"
Customize XCursor size

To build XCursor with size 16:

ctgen configs/x.build.toml -s 16 -p x11 -d "bitmaps/BreezeX-Dark" -n "BreezeX-Dark" -c "Extended Breeze XCursors with size 16"

You can also assign multiple sizes to ctgen for XCursors build:

ctgen configs/x.build.toml -s 16 18 24 32 -p x11 -d "bitmaps/BreezeX-Dark" -n "BreezeX-Dark" -c "Extended Breeze XCursors with multi-sizes"

Examples

Lets generate BreezeX Cursor with green and black colors:

npx cbmp -d "svg" -o "bitmaps/BreezeX-Hacker" -bc "#00FE00" -oc "#000000"

After rendering custom color you have to build cursor through ctgen:

ctgen configs/x.build.toml -d "bitmaps/BreezeX-Hacker" -n "BreezeX-Hacker" -c "Green and Black BreezeX cursors."

ctgen configs/win_rg.build.toml -d "bitmaps/BreezeX-Hacker" -n "BreezeX-Hacker" -c "Green and Black BreezeX cursors."
ctgen configs/win_lg.build.toml -d "bitmaps/BreezeX-Hacker" -n "BreezeX-Hacker" -c "Green and Black BreezeX cursors."
ctgen configs/win_xl.build.toml -d "bitmaps/BreezeX-Hacker" -n "BreezeX-Hacker" -c "Green and Black BreezeX cursors."

Afterwards, Generated theme can be found in the themes directory.

BreezeX Gruvbox
npx cbmp -d "svg/original" -o "bitmaps/BreezeX-Gruvbox" -bc "#282828" -oc "#EBDBB2"

ctgen configs/x.build.toml -d "bitmaps/BreezeX-Gruvbox" -n "BreezeX-Gruvbox" -c "Groovy BreezeX cursors."

ctgen configs/win_rg.build.toml -d "bitmaps/BreezeX-Gruvbox" -n "BreezeX-Gruvbox" -c "Groovy BreezeX cursors."
ctgen configs/win_lg.build.toml -d "bitmaps/BreezeX-Gruvbox" -n "BreezeX-Gruvbox" -c "Groovy BreezeX cursors."
ctgen configs/win_xl.build.toml -d "bitmaps/BreezeX-Gruvbox" -n "BreezeX-Gruvbox" -c "Groovy BreezeX cursors."
BreezeX Solarized Dark
npx cbmp -d "svg/original" -o "bitmaps/BreezeX-Solarized-Dark" -bc "#002b36" -oc "#839496"

ctgen configs/x.build.toml -d "bitmaps/BreezeX-Solarized-Dark" -n "BreezeX-Solarized-Dark" -c "Solarized Dark BreezeX cursors."

ctgen configs/win_rg.build.toml -d "bitmaps/BreezeX-Solarized-Dark" -n "BreezeX-Solarized-Dark" -c "Solarized Dark BreezeX cursors."
ctgen configs/win_lg.build.toml -d "bitmaps/BreezeX-Solarized-Dark" -n "BreezeX-Solarized-Dark" -c "Solarized Dark BreezeX cursors."
ctgen configs/win_xl.build.toml -d "bitmaps/BreezeX-Solarized-Dark" -n "BreezeX-Solarized-Dark" -c "Solarized Dark BreezeX cursors."
BreezeX Solarized Light
npx cbmp -d "svg/original" -o "bitmaps/BreezeX-Solarized-Light" -bc "#839496" -oc "#002b36"

ctgen configs/x.build.toml -d "bitmaps/BreezeX-Solarized-Light" -n "BreezeX-Solarized-Light" -c "Solarized Light BreezeX cursors."

ctgen configs/win_rg.build.toml -d "bitmaps/BreezeX-Solarized-Light" -n "BreezeX-Solarized-Light" -c "Solarized Light BreezeX cursors."
ctgen configs/win_lg.build.toml -d "bitmaps/BreezeX-Solarized-Light" -n "BreezeX-Solarized-Light" -c "Solarized Light BreezeX cursors."
ctgen configs/win_xl.build.toml -d "bitmaps/BreezeX-Solarized-Light" -n "BreezeX-Solarized-Light" -c "Solarized Light BreezeX cursors."
BreezeX Dracula
npx cbmp -d "svg/original" -o "bitmaas/BreezeX-Dracula" -bc "#282a36" -oc "#f8f8f2"

ctgen configs/x.build.toml -d "bitmaps/BreezeX-Dracula" -n "BreezeX-Dracula" -c "Dracula BreezeX cursors."

ctgen configs/win_rg.build.toml -d "bitmaps/BreezeX-Dracula" -n "BreezeX-Dracula" -c "Dracula BreezeX cursors."
ctgen configs/win_lg.build.toml -d "bitmaps/BreezeX-Dracula" -n "BreezeX-Dracula" -c "Dracula BreezeX cursors."
ctgen configs/win_xl.build.toml -d "bitmaps/BreezeX-Dracula" -n "BreezeX-Dracula" -c "Dracula BreezeX cursors."

Testing Cursor

There are several websites that allow you to test your cursor states by hovering over buttons. This can be very useful when developing or verifying the behavior of a cursor. The following websites cover many of the most commonly used cursors, although they may not include all available options.

For a blueprint for creating XCursors, you may also want to refer to Cursor-demo.

Bugs

Bugs should be reported here on the Github issues page.

Getting Help

You can create a issue, I will help you.

Contributing

Check CONTRIBUTING.md, any suggestions for features and contributions to the continuing code masterelopment can be made via the issue tracker or code contributions via a Fork & Pull requests.