Keybindings
The compositor handles every key event before clients see it. If a binding matches, the event is consumed. There is no hotkey daemon.
Mod is Super on a real session and Alt when running nested under winit. Press F1 at any time for the on-screen overlay of the current bindings.
Defaults
The shipped config binds these. Everything is in the binds block of the default config and can be changed.
Session
| Keys | Action |
|---|---|
Mod+Shift+E, Ctrl+Alt+Delete | Quit the compositor |
Mod+Shift+R | Reload the config file |
Mod+Escape | Toggle keyboard-shortcut inhibiting (for apps that grab keys) |
F1 | Show the hotkey overlay |
Applications
| Keys | Action |
|---|---|
Mod+Return | Terminal (alacritty in the default; set yours) |
Mod+R | Launcher (fuzzel in the default; set yours) |
No app-specific launch bindings ship. Add your own spawn binds.
Windows
| Keys | Action |
|---|---|
Mod+Q | Close window |
Mod+Shift+Q | Kill window (SIGKILL) |
Alt+Tab / Shift+Alt+Tab | Focus next / previous window |
Mod+Tab | Focus master |
Mod+U | Focus the urgent window |
Mod+/ | Swap with master |
Mod+Shift+J / Mod+Shift+K | Swap with next / previous |
Mod+F | Toggle floating |
Mod+Shift+F | Fullscreen |
Mod+M | Toggle maximize |
Mod+I / Mod+Shift+I | Iconify / restore |
Layout
| Keys | Action |
|---|---|
Mod+] | Cycle layout algorithm |
Mod+[ | Reset layout |
Mod+\ | Flip layout |
Mod+L / Mod+H | Grow / shrink master area |
Mod+, / Mod+. | Add / remove a master window |
Mod+Shift+, / Mod+Shift+. | Add / remove a stack column |
Workspaces and monitors
| Keys | Action |
|---|---|
Mod+1 … Mod+0 | Bring workspace 1 to 10 to this monitor |
Mod+Shift+1 … Mod+Shift+0 | Send window to workspace, stay |
Mod+Ctrl+1 … Mod+Ctrl+0 | Send window to workspace, follow |
Mod+Left / Mod+Right | Previous / next occupied workspace |
Mod+Up / Mod+Down | Previous / next workspace, including empty |
Mod+Shift+Left / Mod+Shift+Right | Send window to previous / next workspace |
Mod+Wheel | Cycle workspaces |
Mod+N / Mod+Shift+N | Focus next monitor / move window to next monitor |
Media and screenshots
| Keys | Action |
|---|---|
XF86AudioRaiseVolume / LowerVolume / Mute / MicMute | PipeWire volume and mute via wpctl |
XF86MonBrightnessUp / Down | brightnessctl |
Print | Screenshot: the screen freezes and dims, drag to select, release to capture (dropdowns and tooltips survive) |
Shift+Print | Screenshot the active output |
Alt+Print | Screenshot all outputs as one image |
Ctrl+Print | Screenshot the active window |
Mod+Shift+X / Mod+Ctrl+X | Power monitors off / on |
Screenshots save to screenshot-path or pipe into screenshot-annotator (satty, for example) when that is set.
Writing a binding
binds {
Mod+Return { spawn "ghostty"; }
Mod+Shift+S { spawn-sh "grim - | wl-copy"; }
Mod+Q repeat=false { close-window; }
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
Mod+WheelScrollDown cooldown-ms=150 { ws-next-all; }
}
Modifiers joined by +, then an XKB key name. spawn takes an argument list; spawn-sh runs a shell line. Any action from atrium msg action --help can be bound. Options: repeat=false, allow-when-locked=true, allow-inhibiting=false, cooldown-ms.