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)

Dependencies

  • Python 3.11+
  • GTK4 + PyGObject
  • gtk4-layer-shell

Arch Linux

sudo pacman -S python-gobject gtk4 gtk4-layer-shell

Install

pip install .
# or for development:
pip install -e .

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.0.tar.gz (10.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.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cheatbind-0.1.0.tar.gz
  • Upload date:
  • Size: 10.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.0.tar.gz
Algorithm Hash digest
SHA256 85e8b7636f697ccb8e3651a770b20ccbec338cfa8087ee0ad07bce32411f376b
MD5 36c35b02c35670081eb701d37a3a75ed
BLAKE2b-256 53371e221e830f349ed2386ffa7ab00d7c7e84151ca32ba43b90a6178c2032f8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: cheatbind-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58661b166850ad12a675d9a34a20319f5f77965ea7b84758357dbfb8bfbf2081
MD5 8ff8509ca814bc8f093acb173494394a
BLAKE2b-256 41f6cd40699cb26578116efb557953836799a1fbff2483cdac3810d31ffe7b0d

See more details on using hashes here.

Provenance

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