Documentation / Keybindings
Keybindings
Nearly every keybind lives in one place — Configs/hypr/keybinds.lua — grouped as below. Some shell IPC calls have no keybind on purpose and are for scripts only (for example bar setSkin, inference enter/exit). One exception: SUPER+SHIFT+W (see Quickshell Surfaces below) is bound at runtime by the shell itself, not keybinds.lua, because it only exists while a plugin needs it.
The keybinds cheatsheet (SUPER+K) and the launcher’s ! mode both read Hyprland’s own live bind table, not this page or keybinds.lua directly — so after editing keybinds.lua or pulling an update that changes it, run aphotic reload --full (or fully restart Hyprland) to see the change reflected there. A plain aphotic reload only reloads Quickshell’s own modules and never touches Hyprland’s bind table.
Launcher
See Supported Features for what each prefix mode does inside the launcher.
| Keys | Action |
|---|---|
| Super + A or Super + Space | Open the launcher (apps, clipboard, emoji, windows, themes and wallpapers, projects, settings, keybinds, calculator) |
Apps & Tools
| Keys | Action |
|---|---|
| Super + T | Launch Kitty |
| Super + E | Launch Thunar |
| Super + C | Launch VS Code |
| Super + F | Launch Firefox |
| Super + S | Screenshot — simple region select via grim/slurp/swappy, no extra frills |
| Super + W | Open the wallpaper picker over the desktop (wallpapers in the active theme) |
| Super + Ctrl + W | Browse every theme’s wallpapers in the launcher |
| Super + , / Super + . | Cycle to the previous/next theme (aphotic theme prev/next) |
| Super + B | Restart the Quickshell daemon (aphotic-shell.service) |
| Super + Shift + B | Aphotic recovery surface — the one bind that still works when the shell itself won’t start |
Quickshell Surfaces
| Keys | Action |
|---|---|
| Super + D | Command Center (tabbed dashboard overlay) |
| Super + I | Settings Control Center |
| Super + Shift + A | Intelligence quick-chat popout |
| Super + N | Toggle notification center |
| Super + Shift + N | Clear all notifications |
| Super + Shift + D | Toggle Do Not Disturb |
| Super + Y | AUR/official package search + install (Arch-only; no-ops if neither yay nor paru is on PATH) |
| Super + L | Lock screen |
| Super + Backspace | Session / power menu — lock, suspend, log out, hibernate, reboot, shut down |
| Super + M | Session menu (same as Super + Backspace) |
| Super + Ctrl + Shift + B | Cycle bar style (Full → Dock → Taskbar → Minimal → Capsule) |
| Super + Shift + W | Open the plugin workspace host — only bound while an installed plugin registers one (e.g. Agent Audit, Dev Ports); see Supported Features. Unlike every other bind on this page, this one is set at runtime, not in keybinds.lua |
| Super + K | Toggle the keybinds cheatsheet |
SUPER+SHIFT+Wneeds two things at once: a plugin installed that registers a workspace surface, and that plugin’s required capability layer active in your installed profile. If a workspace plugin is installed but the combo still does nothing, runaphotic doctor— ano layers recorded in aphotic.tomlline there means the layer check has nothing to match against, which is also what leaves the Settings → System profile reading blank.
Screen Capture
The real Quickshell picker (drag-select with live client-window snapping and a freeze-mode preview), distinct from the plain Super+S script above.
| Keys | Action |
|---|---|
| Super + Shift + S | Open the picker |
| Super + Ctrl + S | Open the picker in freeze-mode (screen freezes first, then select) |
| Super + Alt + S | Open the picker, copy to clipboard only (no file saved) |
| Super + Ctrl + Alt + S | Freeze-mode + clipboard-only combined |
| Super + Shift + C | Eyedropper — click a pixel to copy its hex color to the clipboard |
Media, Audio & Brightness
| Keys | Action |
|---|---|
| XF86AudioPlay / XF86AudioPause | Play/pause the active MPRIS player |
| XF86AudioNext / XF86AudioPrev | Next/previous track |
| Super + Ctrl + O | Cycle audio output device |
| XF86AudioRaiseVolume / XF86AudioLowerVolume | Volume up/down |
| XF86AudioMute | Toggle mute |
| XF86AudioMicMute | Toggle mic mute |
| XF86MonBrightnessUp / XF86MonBrightnessDown | Brightness up/down |
Windows & Layout
| Keys | Action |
|---|---|
| Super + Q | Close the focused window |
| Super + Alt + Q | Force-kill the focused window |
| Super + V | Toggle floating |
| Super + P | Toggle pseudo-tiling |
| Super + Ctrl + F | Toggle pin (keep window on every workspace) |
| Super + J | Toggle split direction |
| Super + Shift + F | Toggle fullscreen |
| Super + ←/→/↑/↓ | Move focus between windows |
| Super + Shift + ←/→/↑/↓ | Move (swap) the focused window in a direction |
| Alt + Tab | Open the window switcher on the next window (see Window switcher) |
| Alt + Shift + Tab | Open the window switcher on the previous window |
| Super + G | Toggle group |
| Super + Ctrl + H / Super + Ctrl + L | Cycle group tabs backward/forward |
| Super + LMB drag | Move window |
| Super + RMB drag | Resize window |
Window switcher
Alt+Tab opens an overlay that snapshots every window once. While it’s open (holding Alt is optional for every key below):
| Keys | Action |
|---|---|
| Tab / Shift + Tab | Next / previous window |
| ← / → | Previous / next workspace |
| ↑ / ↓ | Previous / next window in that workspace |
| A S D F G H J K L ; | Jump to workspace 1–10 (A is 1, ; is 10) |
| 1–9 | Pick the window with that badge |
| Release Alt, or Enter / Space | Switch to the selection |
| Esc | Cancel |
Workspaces
| Keys | Action |
|---|---|
| Super + 0–9 | Switch to workspace |
| Super + Shift + 0–9 | Move window to workspace |
| Super + Scroll | Cycle workspaces |
| Super + Ctrl + ↓ | Jump to the nearest empty workspace |
| Super + Ctrl + Tab / Super + Ctrl + Shift + Tab | Cycle forward/backward through open special (scratchpad) workspaces |
Special workspaces aren’t created by a default keybind yet — cycling only does something once one exists (e.g. via
hyprctl dispatch movetoworkspace special:name).
Launcher Modes
The launcher (Super+A or Super+Space) supports multiple modes through prefix characters, all inside the same search box:
| Type | Mode | Backed by |
|---|---|---|
| (nothing) | Search & launch installed apps, sorted by how often you actually use them | Desktop entries + a per-app launch count |
> |
Clipboard history (pin frequent snippets/commands so they survive cliphist’s rolling history) |
cliphist |
: |
Emoji picker | Configs/quickshell/aphotic/data/emoji.txt |
/ |
Switch to an open window | Hyprland’s own window list |
~ |
Browse themes; ~<theme>/ lists that theme’s wallpapers |
Theme folders in ~/.config/awww |
@ |
Jump to a project — opens a terminal running claude, plus VS Code if it’s installed |
Git repos under ~/Projects/~/repos (or your configured project roots) |
? |
Jump to a Settings category or plugin pane | Settings’ own search index |
! |
Search keybinds | Hyprland’s live bind table |
= |
Calculator | A built-in expression parser (never eval) |
Customization
~/.config/hypr/custom.lua is never overwritten by the installer or aphotic update — put your own binds and other Hyprland tweaks there and they survive every re-run.
Related
- Supported Features — what each bound action actually does
- Getting Started — a first walkthrough
- Advanced Usage — deeper workflows built on these binds