Skip to content

Keybinds

A working reference for the chords that actually fire on this setup. Caelestia defaults plus the personal additions in ~/.config/caelestia/hypr-vars.conf and ~/.config/caelestia/hypr-user.conf.

Modifier convention

The single Super+<letter> namespace is owned by window / workspace / caelestia panel actions — every letter is one keystroke away from a window operation. That's the whole point of a tiling WM. A handful of letters are already wired to apps via caelestia's $browser / $editor / $fileExplorer variables (see below) — those land the most-used apps on the shortest chord.

Everything else lives on Super+Shift+<mnemonic letter>.

Apps on single Super (most-used)

Caelestia ships $kbBrowser, $kbEditor, $kbFileExplorer, $kbTerminal which bind to Super+W / C / E / T and exec app2unit -- $variable. The defaults point at apps that aren't installed on this system (zen-browser, codium, thunar), so the variables are overridden in ~/.config/caelestia/hypr-vars.conf:

ini $browser = firefox $editor = code $fileExplorer = dolphin

hypr-vars.conf is sourced after caelestia's variables.conf but before its keybinds.conf, so the existing bind lines pick up the new values automatically — no separate rebind needed.

Super+G (originally github-desktop, also not installed) is rebound in hypr-user.conf using unbind + bind to retarget it onto Google Chrome:

ini unbind = Super, G bind = Super, G, exec, app2unit -- google-chrome-stable

Result:

Super+T → Terminal (foot) Super+W → Firefox Super+C → VS Code Super+E → Dolphin Super+G → Google Chrome

Apps on Super+Shift

Defined in ~/.config/caelestia/hypr-user.conf, all launched via app2unit -- <cmd> so they run as systemd user units with clean process accounting.

Super+Shift+B → Brave Super+Shift+E → Microsoft Edge Super+Shift+A → Antigravity Super+Shift+D → Claude Desktop Super+Shift+K → KWrite Super+Shift+I → KDE System Settings (I = settIngs / Info) Super+Shift+N → NVIDIA X Server Settings Super+Shift+P → Mission Center (P = Performance) Super+Shift+U → Discover (U = Updates)

Firefox and Chrome are intentionally not duplicated here — they already sit on the shorter Super+W / Super+G chords.

Caelestia panels (the auto-hidden bars)

The bar, top notifications, and bottom-right utilities all default to showOnHover: true — they appear when you nudge the screen edge with the mouse. The IPC bindings below toggle them explicitly without needing the hover gesture.

Super+Shift+Y → toggle bar (left taskbar) Super+Shift+O → toggle dashboard (top notifications) Super+Shift+J → toggle utilities (bottom-right status / quick toggles)

Plus caelestia's own:

Super+N → toggle sidebar (right control panel) Super+K → show ALL panels (taskbar + notifications + status at once)

These all run qs -c caelestia ipc call drawers toggle <name> under the hood. <name> is one of: bar, dashboard, utilities, sidebar, osd, session, launcher. Full list: qs -c caelestia ipc call drawers list.

Window & workspace (caelestia defaults — cheat sheet)

The window/workspace layer that consumes most of single-Super:

Combo Action
Super+1..9, 0 Switch to workspace 1..10
Super+Shift+1..0 Move focused window to workspace
Super+Page_Up/Down, Super+mouse_scroll Prev/next workspace
Super+arrow Move focus left/right/up/down
Super+Shift+arrow Move window l/r/u/d
Super+Alt+arrow, Super+Minus/Equal Resize active window
Super+F Fullscreen
Super+Q Close window
Super+H Send to "minimized" special workspace (your override)
Super+Shift+H Bring "minimized" back (your override)
Super+P Pin / float-above
Super+L Lock screen
Super+S Toggle special workspace
Super+Space Launcher (caelestia fuzzy)
Super+V Clipboard history
Super+Period Emoji picker
Super+M, Super+D, Super+R Music, Communication, Todo overlays
Super+Ctrl+Alt+H Toggle HDR on DP-2 (hdr-toggle)
Print Screenshot to clipboard
Super+Shift+S Region screenshot (frozen)
Super+Shift+Alt+S Region screenshot (live)
Ctrl+Alt+Delete Session menu (logout / reboot / shutdown)

Open the full keybinds source any time: ~/.config/hypr/hyprland/keybinds.conf. Definitions of the $kb* aliases live in ~/.config/hypr/variables.conf.

Adding more app binds

Any new app launcher follows the same pattern. Pick a free Super+Shift+<letter>, edit ~/.config/caelestia/hypr-user.conf, save, and the caelestia config-watcher reloads Hyprland automatically (or run hyprctl reload).

ini bind = Super+Shift, X, exec, app2unit -- some-app

To check whether a combo is already used:

bash hyprctl binds -j | jq -r '.[] | "\(.modmask) \(.key) → \(.dispatcher) \(.arg)"' | grep ' X$'

Modmask reference: 64 = Super, 65 = Super+Shift, 72 = Super+Ctrl, 80 = Super+Alt, 81 = Super+Shift+Alt, 73 = Super+Shift+Ctrl.

Verifying no duplicates / dead targets

```bash

Every Super+letter bind on this system, what it actually launches:

hyprctl binds -j | jq -r '.[] | select(.dispatcher=="exec") | select(.arg | test("app2unit|qs -c caelestia")) | "(.modmask) (.key) → (.arg)"' | sort

Does the target executable exist?

for cmd in firefox code dolphin foot google-chrome-stable brave \ microsoft-edge-stable antigravity claude-desktop kwrite \ systemsettings nvidia-settings missioncenter plasma-discover; do which "$cmd" >/dev/null 2>&1 && echo "OK $cmd" || echo "MISS $cmd" done ```

Known dead caelestia default (not fixed — harmless)

Caelestia also ships bind = Super+Alt, E, exec, app2unit -- nemo. Nemo isn't installed and there's no reason to install a second file manager — Super+E (Dolphin) is what you'll actually use. The bind sits idle. If it ever annoys you, drop unbind = Super+Alt, E into hypr-user.conf.

Package-name vs. binary-name gotcha

Some apps install their executable under a name that doesn't match the package. Always launch by the binary name (what which <cmd> returns), not the package name. Confirmed mismatches on this system:

Package (pacman -Qs) Binary (used in bind)
mission-center missioncenter (no hyphen)
visual-studio-code-bin (if used) code
microsoft-edge-stable-bin (if used) microsoft-edge-stable

When adding a new bind, sanity-check with which <cmd> first.