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.2.tar.gz (12.0 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.2-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cheatbind-0.1.2.tar.gz
  • Upload date:
  • Size: 12.0 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.2.tar.gz
Algorithm Hash digest
SHA256 13e5a9fea114002f1ae57372c5c78b7690e0bc92be7d5c8c5ae74e9b1f86d4e8
MD5 f0b15e80e4846893c99ae157fb01bac5
BLAKE2b-256 779d533a9e4fa383f037ea21589449c47a33163ddcca1b03fa95d2bce580a566

See more details on using hashes here.

Provenance

The following attestation bundles were made for cheatbind-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: cheatbind-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7409cc708b6fca5cb9723d58eabd47c74142ca572704d771a9d6ba41fe098c1d
MD5 f324c198a5b2dcca0481643d556bc4c7
BLAKE2b-256 33fe4a659e34c7da517890638e9048f05a115e741391181e344fa4c571e3b7a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cheatbind-0.1.2-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