Skip to content

Keyboard shortcuts

Keyboard shortcuts are declared as a Binding<KeyCtx>[] array in src/views/terminal/keyboard-shortcuts.ts. Each entry has an id, description, category, and a keyMatch(...) matcher.

ShortcutAction
⌘NNew workspace
⌘DSplit right
⌘⇧DSplit down
⌘WClose focused pane
⌘⇧WClose workspace
⌘BToggle sidebar
⌘⌥←↑→↓Focus neighboring pane
⌃⌘] / ⌃⌘[Next / previous workspace
⌘1…⌘9Jump to workspace N
ShortcutAction
⌘,Settings
⌘⇧PCommand palette
⌘⌥PProcess Manager
⌘IPane Info — full detail view for the focused pane
EscClose active overlay (settings, process manager, command palette)
ShortcutAction
⌘FFind in terminal
⌘C / ⌘VCopy / paste
⌘= / ⌘- / ⌘0Font size bigger / smaller / reset

These fire only when a browser pane is focused.

ShortcutAction
⌘⇧LOpen browser in split
⌘LFocus browser address bar
⌘[ / ⌘]Browser back / forward
⌘RReload browser page
⌥⌘IToggle browser DevTools
⌘FFind in page

There’s no GUI shortcut editor yet. To add or change a binding:

  1. Edit src/views/terminal/keyboard-shortcuts.ts.
  2. Append a Binding<KeyCtx> entry to KEYBOARD_BINDINGS (or HIGH_PRIORITY_BINDINGS for shortcuts that must fire even when the palette is visible).
  3. Use keyMatch({ key, meta?, shift?, ctrl?, alt? }) for the matcher.
  4. Rebuild.

The id / description / category fields are used by the command palette so users can fuzzy-find every action.