accurse
Atomsky's cursor packager
Why?
Theming cursors for different standards is a curse. accurse alleviates the
curse by allowing you to package hyprcursor and xcursor in a manageable way.
Installation
accurse is a python package. You can install it using pip install accurse.
I'd recommend cloning this repository and installing the package locally, if
you want to make use of the assets. uv is
a great tool for such a use case.
The package needs the commands rsvg-convert and xcursorgen to be in the
PATH. If you are on Arch, make sure the following packages are installed:
- librsvg
- xorg-xcursorgen
Usage
accurse expects the path to a metadata.toml as an argument. This metadata
file describes the cursor shapes, their aliases and hotspots. The metadata
specification is provided in the next section. If you have an assets directory,
the metadata.toml file should be in that directory. For example, if there are
SVG cursor files in the assets/Bibata directory (or its subdirectories) along
with metadata.toml, the following command creates packaged Bibata cursors
(both xcursor and hycursor) in assets/AC-Bibata.
accurse assets/Bibata/metadata.toml
You can then move the AC-Bibata directory to an appropriate location, such as
~/.local/share/icons, to be able to use the packaged cursors. Afterward,
change the cursor theme and size in different config files. Here's my personal
script
to set the cursor theme and size for GTK and Hyprland. A reboot of the WM is
sometimes necessary because some apps use environment variables to set cursors.
Metadata
The templates directory contains an example metadata.toml. Skim through
that file first as it's pretty self-explanatory. The following table specifies
what accurse looks for in the metadata file.
[theme]
| Field | Type | Description |
|---|---|---|
| name | string | name of the theme |
| description | string | description of the theme |
| version | string | version of the theme |
| author | string | author of the theme |
[config]
| Field | Type | Description |
|---|---|---|
| shape_size | number | size of the (square) SVGs |
| x_hotspot | number | default hotspot x-coordinate |
| y_hotspot | number | default hotspot y-coordinate |
| old_substr | list of strings | target substrings |
| new_substr | list of strings | replacement substrings |
| mirror | boolean | mirror shapes with flip=1 flag |
| xcur_sizes | list of numbers | compile xcursors of these sizes |
| cleanup | list of strings | delete "hycur" or "xcur" build files |
[cursors.shape]
| Field | Type | Description |
|---|---|---|
| x_hotspot | number | hotspot x-coordinate |
| y_hotspot | number | hotspot y-coordinate |
| symlinks | list of strings | shape aliases |
| animated | boolean | whether it's animated |
| anim_delay | number | delay between frames (ms) |
| flips | boolean | whether to flip shape if mirror=1 |
License
Copyright (C) 2025 ATM Jahid Hasan
accurse is released under the
GNU AGPL.
Metadata
Release files for accurse 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| accurse-0.1.0.tar.gz | 174.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| accurse-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 194.8 kB
Release files / accurse-0.1.0.tar.gz
| Download URL | accurse-0.1.0.tar.gz |
|---|---|
| Size | 174.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3390d6d3adf7427d2938118d5be2025228796171296fd8a6f5cd3903aba334b
|
|
BLAKE2b-256 checksum How to use checksums |
a210391f025ffcfaed774381fb3505f686dab1b55a5d09a73ce3e455c9d9ff66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.31
|
Release files / accurse-0.1.0-py3-none-any.whl
| Download URL | accurse-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
98692a3bedbf3823f71c6024c3c0b4daace36ab4b2188394209e896d5000c363
|
|
BLAKE2b-256 checksum How to use checksums |
a9d379749d2f0a6d8fff82f22ed755d451b3825d99df32a558af5237d0a3c11f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.31
|
Security for accurse 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.