Keybindings
Rebinding shortcuts and authoring custom actions.
Every keyboard shortcut in atrium is customizable. The full default map is in Keyboard shortcuts.
Keybindings live under config.keybindings in ~/.atrium/config.json. The in-app editor is at Settings → Keyboard.
Chord format
A chord is a string like "cmd+shift+d" or "ctrl+alt+k". Rules:
- Modifiers:
cmd,shift,ctrl,alt. Order is normalized internally, socmd+shift+dandshift+cmd+dare equivalent. - On macOS,
cmdis the Command key. - The final segment is the key (lowercase). Named keys include
enter,tab,escape,space,backspace,delete,up,down,left,right,backtick,minus,plus,equal,slash,bracket-left,bracket-right. - Chords are single-key only today. Two-step sequences (VS Code-style
Cmd+K Cmd+S) are not yet supported.
Action types
Every binding maps to an action. There are three action types:
app-command
Triggers a built-in atrium operation:
{
"cmd+d": { "type": "app-command", "command": "pane.split.horizontal" },
"cmd+shift+w": { "type": "app-command", "command": "room.close" }
}
The full command list is visible in Settings → Keyboard — each default binding shows its command.
send-text
Sends raw text to the focused pane's PTY stdin. Useful for binding escape sequences or canned inputs:
{
"shift+enter": { "type": "send-text", "text": "\n" },
"alt+enter": { "type": "send-text", "text": "\r\n" }
}
Recognized escapes: \n (newline), \r (carriage return), \t (tab), \\ (literal backslash). Use \u001b for ESC when writing raw escape sequences.
uri-command
Dispatches an atrium:// protocol URI. This is the most flexible form — the URI resolver routes to pane, workspace, command, and hook operations. See atrium:// protocol.
{
"cmd+shift+m": {
"type": "uri-command",
"uri": "atrium://commands/launcher.open?pane=$FOCUS"
}
}
Unbinding a default
Set a binding to null to remove a default:
{
"cmd+b": null
}
This removes atrium's Toggle sidebar default without replacing it.
Hand-editing vs the UI
The Settings UI covers the common case. You can hand-edit config.json for bulk changes or templated setups; atrium watches the file and reloads on change. Menu accelerators (the macOS native menu shortcuts) stay in sync with your keybindings automatically — you do not need to edit them separately.
Applying changes without a restart
Keybinding changes apply immediately in the current app session. To propagate into running shell sessions (for example, if a change affects ATRIUM_* variables that shells read), atrium sends a USR1 signal to every running atrium shell, which re-sources ~/.atrium/shell/env.sh. You do not need to press Enter in each shell.
Defaults you cannot overwrite
A small set of OS-level shortcuts (macOS's Command-Q, Command-Tab, Mission Control, and so on) are intercepted by the OS before atrium sees them. atrium does not override them.
