Cheeter is a context-aware cheatsheet overlay daemon for Linux. It runs in the background and, when triggered (default: ctrl + alt + c), detects the currently active application and displays a relevant PDF cheatsheet in an overlay.
- Context-Aware: Automatically detects the active window (via X11 or AT-SPI) to show the correct sheets.
- Overlay UI: Minimalist, borderless window that appears in the center of the screen.
- Fast: Written in C using GLib and GTK+.
- Configurable: Simple text-based configuration and mapping files.
- PDF and PNG Support: Renders cheatsheets directly using Poppler.
To build Cheeter, you need a C compiler and the following development libraries:
glib-2.0gtk+-3.0poppler-glibat-spi2-core(orat-spi-2.0)libx11(for X11 backend)
Arch Linux:
sudo pacman -S glib2 gtk3 poppler-glib at-spi2-core libx11Debian/Ubuntu:
sudo apt install libglib2.0-dev libgtk-3-dev libpoppler-glib-dev libatspi-dev libx11-devmakeThis produces cheeter (CLI) and cheeterd (Daemon).
A PKGBUILD is included for generating an Arch package:
makepkg -siYou can install the binaries, systemd unit, and desktop entry using:
sudo make install(Defaults to /usr/local. Use PREFIX=/usr to override).
To start the daemon automatically with your user session:
systemctl --user enable --now cheeter.serviceAlternatively, the cheeter.desktop file is installed to share/applications and should be visible in your desktop environment's startup settings if configured.
- Trigger: Press the hotkey (default
Super+/on X11) to toggle the overlay.- You can also toggle via CLI:
cheeter toggle.
- You can also toggle via CLI:
| Key | Action |
|---|---|
n / Right Arrow |
Next Page |
p / Left Arrow |
Previous Page |
Escape |
Close Overlay |
- Start the Daemon: Ensure
cheeterdis running (manually or via systemd). - Add Cheatsheets: Place your cheatsheets in
~/.local/share/cheeter/sheets/.- Supported formats:
.pdf,.png,.jpg,.jpeg. - Example:
cp ~/Downloads/vim-cheat.png ~/.local/share/cheeter/sheets/vim.png
- Supported formats:
- Mappings: Cheeter tries to resolve sheets automatically.
- Terminal Detection: Cheeter automatically detects applications running inside your terminal (e.g.,
vim,nano,python) so you can simply name your sheetvim.pdforpython.png. - Explicit Mapping: You can manually map applications in
~/.config/cheeter/mappings.tsv.- Format:
KEY(tab or space)PATH - Example:
exe:code /home/user/.local/share/cheeter/sheets/vscode.pdf
- Format:
- Terminal Detection: Cheeter automatically detects applications running inside your terminal (e.g.,
Configuration is stored in ~/.config/cheeter/config.ini.
[core]
# Supported modifiers: Super, Control, Alt, Shift
hotkey=Super+Slash
debug=false- X11: Fully supported. Uses
XGrabKeyfor global hotkeys and_NET_ACTIVE_WINDOWfor context detection. - Wayland: Experimental/Mock support. Requires AT-SPI for context detection. Global hotkeys must be handled via Compositor shortcuts invoking
cheeter toggle.
MIT