Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

KeysAction
Mod+Shift+E, Ctrl+Alt+DeleteQuit the compositor
Mod+Shift+RReload the config file
Mod+EscapeToggle keyboard-shortcut inhibiting (for apps that grab keys)
F1Show the hotkey overlay

Applications

KeysAction
Mod+ReturnTerminal (alacritty in the default; set yours)
Mod+RLauncher (fuzzel in the default; set yours)

No app-specific launch bindings ship. Add your own spawn binds.

Windows

KeysAction
Mod+QClose window
Mod+Shift+QKill window (SIGKILL)
Alt+Tab / Shift+Alt+TabFocus next / previous window
Mod+TabFocus master
Mod+UFocus the urgent window
Mod+/Swap with master
Mod+Shift+J / Mod+Shift+KSwap with next / previous
Mod+FToggle floating
Mod+Shift+FFullscreen
Mod+MToggle maximize
Mod+I / Mod+Shift+IIconify / restore

Layout

KeysAction
Mod+]Cycle layout algorithm
Mod+[Reset layout
Mod+\Flip layout
Mod+L / Mod+HGrow / shrink master area
Mod+, / Mod+.Add / remove a master window
Mod+Shift+, / Mod+Shift+.Add / remove a stack column

Workspaces and monitors

KeysAction
Mod+1Mod+0Bring workspace 1 to 10 to this monitor
Mod+Shift+1Mod+Shift+0Send window to workspace, stay
Mod+Ctrl+1Mod+Ctrl+0Send window to workspace, follow
Mod+Left / Mod+RightPrevious / next occupied workspace
Mod+Up / Mod+DownPrevious / next workspace, including empty
Mod+Shift+Left / Mod+Shift+RightSend window to previous / next workspace
Mod+WheelCycle workspaces
Mod+N / Mod+Shift+NFocus next monitor / move window to next monitor

Media and screenshots

KeysAction
XF86AudioRaiseVolume / LowerVolume / Mute / MicMutePipeWire volume and mute via wpctl
XF86MonBrightnessUp / Downbrightnessctl
PrintScreenshot: the screen freezes and dims, drag to select, release to capture (dropdowns and tooltips survive)
Shift+PrintScreenshot the active output
Alt+PrintScreenshot all outputs as one image
Ctrl+PrintScreenshot the active window
Mod+Shift+X / Mod+Ctrl+XPower 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.