Skip to main content

Wayland keyboard shortcuts overlay — parses your compositor config and displays a styled cheatsheet

Project description

cheatbind

A Wayland overlay that parses your compositor config and displays a styled keyboard shortcuts cheatsheet.

Instead of maintaining a separate shortcuts list, cheatbind reads your actual config file and renders an overlay with categorized keybindings, 3D keyboard-style key pills, and a multi-column layout.

Supported compositors

  • niri — parses ~/.config/niri/config.kdl
  • More compositors planned (Hyprland, Sway)

Install

Arch Linux (AUR)

yay -S cheatbind

This installs cheatbind and all dependencies (GTK4, gtk4-layer-shell, PyGObject).

PyPI

pipx install cheatbind

System dependencies must be installed separately:

# Arch Linux
sudo pacman -S python-gobject gtk4 gtk4-layer-shell

# Fedora
sudo dnf install python3-gobject gtk4 gtk4-layer-shell

# Ubuntu/Debian (24.04+)
sudo apt install python3-gi gir1.2-gtk-4.0 libgtk4-layer-shell-dev

From source

git clone https://github.com/Xhelliom/cheatbind.git
cd cheatbind
python3 -m venv .venv && .venv/bin/pip install -e .
.venv/bin/cheatbind

Usage

# Auto-detect compositor and show overlay
cheatbind

# Force a specific compositor
cheatbind --compositor niri

# Use a custom config path
cheatbind --config ~/my-niri-config.kdl

Running cheatbind while it's already showing will close the overlay (toggle behavior via PID file).

Press Escape or click anywhere to dismiss.

niri keybinding example

Mod+Slash hotkey-overlay-title="Aide raccourcis" { spawn "cheatbind"; }

Config annotations (optional)

You can add markers in your niri config for custom sections and column breaks:

binds {
    //##! Applications
    Mod+T hotkey-overlay-title="Terminal" { spawn "alacritty"; }
    Mod+D hotkey-overlay-title="App launcher" { spawn "fuzzel"; }

    //#!
    //##! Navigation
    Mod+Left hotkey-overlay-title="Focus left" { focus-column-left; }

    // [hidden]
    Mod+Secret hotkey-overlay-title="Hidden bind" { do-something; }
}
  • //##! Title — section header
  • //#! — column break
  • // [hidden] — exclude a bind from the overlay
  • hotkey-overlay-title=null — also excludes a bind
  • Without markers, cheatbind auto-categorizes binds by action type

License

MIT

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

cheatbind-0.1.1.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

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

cheatbind-0.1.1-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file cheatbind-0.1.1.tar.gz.

File metadata

  • Download URL: cheatbind-0.1.1.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cheatbind-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a8360d5247e7d79c83d8a9d055b74f354fb7f6062b7edff8c71c5e8e6b31a84f
MD5 51889ffe0468f253d78a64e137bcaa77
BLAKE2b-256 076854b9f72bb838e9e79ec82be4e6e535373be90057ff428f9dbf5bdb50d88c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cheatbind-0.1.1.tar.gz:

Publisher: release.yml on Xhelliom/cheatbind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cheatbind-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cheatbind-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cheatbind-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 adf423802e73c59f4fc94f8925fefb095d680bffc391211f4aef621ed32ad3e5
MD5 90c0cd826e822b84222f979286c7500b
BLAKE2b-256 843c500e4f5cab6af29bd6bde923278a6afe42e17e20d1db138da0b4e69bfb31

See more details on using hashes here.

Provenance

The following attestation bundles were made for cheatbind-0.1.1-py3-none-any.whl:

Publisher: release.yml on Xhelliom/cheatbind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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