Skip to main content

Atomsky's cursor packager

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

accurse-0.1.0.tar.gz (174.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

accurse-0.1.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file accurse-0.1.0.tar.gz.

File metadata

  • Download URL: accurse-0.1.0.tar.gz
  • Upload date:
  • Size: 174.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.31

File hashes

Hashes for accurse-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a3390d6d3adf7427d2938118d5be2025228796171296fd8a6f5cd3903aba334b
MD5 f1c3870609d3a30dccb02f96b5ac0fa0
BLAKE2b-256 a210391f025ffcfaed774381fb3505f686dab1b55a5d09a73ce3e455c9d9ff66

See more details on using hashes here.

File details

Details for the file accurse-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: accurse-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.31

File hashes

Hashes for accurse-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98692a3bedbf3823f71c6024c3c0b4daace36ab4b2188394209e896d5000c363
MD5 ad42122411d947a916584a3e996b0fd1
BLAKE2b-256 a9d379749d2f0a6d8fff82f22ed755d451b3825d99df32a558af5237d0a3c11f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page