Skip to main content

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)

Source distribution for accurse 0.1.0
File Size Uploaded Provenance
accurse-0.1.0.tar.gz 174.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for accurse 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page