Standalone Yazelix cursor presets and terminal shader outputs
The user-facing command is yzc
nix run github:Yazelix/cursors#yzc -- --help
nix profile install github:Yazelix/cursors#yazelix_cursors- A reusable Yazelix cursor registry crate
- Data-driven cursor palette generation
- Ghostty-compatible cursor effect shader generation
- Packaged shader assets and generated shader examples
- Terminal target contracts for Ghostty, mars, Rio, Ratty, and protocol cursor positions
- A standalone
yzcbinary
Initialize the shared cursor config:
yzc initGenerate a Ghostty include:
yzc generate ghosttyThen include it from Ghostty:
config-file = ~/.config/yazelix_cursors/ghostty.confDay-to-day commands:
yzc list
yzc list-targets
yzc inspect
$EDITOR ~/.config/yazelix_cursors/cursors.toml
yzc generate ghosttyGenerate a launch-local Rio-compatible config from a base config.toml:
yzc materialize rio-compatible-config --source-config ~/.config/rio/config.tomlThe command prints the generated config directory. Launch Rio-derived terminals with their config-home environment variable pointing at that directory.
The standalone config lives at:
~/.config/yazelix_cursors/cursors.toml
yzc init creates this TOML file when it is absent and preserves an existing file
The initialized file is complete and readable on its own. Its six finite
settings may also be omitted: an absent enabled_cursors enables the definitions
in that file, and the five [settings] values inherit from the packaged
template. Cursor definition tables are not merged or synthesized.
The generated Ghostty include lives at:
~/.config/yazelix_cursors/ghostty.conf
Ghostty-compatible shader files are generated into:
~/.config/yazelix_cursors/shaders
Cursor trail selection supports:
- a named enabled cursor, such as
blaze,magma,snow,ice, ormidnight randomnone
When a Yazelix consumer passes light or auto appearance context, random skips snow when another enabled cursor is available. Explicit snow selections are still honored.
Trail and mode effects support:
- a named effect
randomnone
Effects are global per generated Ghostty include. Ghostty does not support per-cursor effect switching inside one config include
yzc list-targets prints the child-owned target contract used by package consumers:
ghosttyemits a Ghostty include plus palette and effect shader filesrio-compatible-configmaterializes launch-local[colors].cursorfor Rio and Rio-derived terminalsmarsconsumes the Ghostty-compatible shader files with the Rio trail uniform ABIriodocuments the Rio-compatible shader ABI surfacerattyhas an explicit experimental no-op target slotprotocol_cursor_positionsdocuments protocol-backed multi-cursor output as separate from GLSL shaders
The product is named Yazelix Cursors. Its canonical repository is
Yazelix/cursors. The old yazelix-ghostty-cursors package/config names are
not exposed as compatibility aliases.
yazelix_cursors owns reusable cursor registry validation, Ghostty-compatible
shader generation, packaged assets, and the standalone yzc command.
cursor_config_field_specs() exposes the same child-owned setting and dynamic
definition inventory to configuration UIs.
Yazelix consumes this crate for integrated cursor config, the config UI cursor
tab, terminal materialization, and yzx cursors.
The crate must not depend on:
yazelix_core- Zellij session state
- Home Manager install state
- Yazelix command palette or workspace orchestration
- Product: Yazelix Cursors
- Repository:
Yazelix/cursors - Command:
yzc - Rust crate:
yazelix_cursors - Nix output:
yazelix_cursors - Config directory:
~/.config/yazelix_cursors - Config file:
~/.config/yazelix_cursors/cursors.toml - Integrated Yazelix command:
yzx cursors
From this repository:
cargo fmt --check
cargo check --all-targets
cargo test
cargo run --bin yzc -- --help
cargo run --bin yzc -- list-targets
nix build .#yazelix_cursors
nix run .#yzc -- --help