reference

Keyboard and the command palette

Three entry points cover everything: Ctrl+Shift+Enter for a terminal at the Project root, Ctrl+Shift+P for the command palette, and Ctrl+Shift+Space as a leader key that puts all 214 commands behind one chord and tells you what to press next.

#

The flat defaults

Everything below is on Ctrl+Shift, which is what every terminal emulator claims for itself, because bare Ctrl+letter belongs to the shell running inside the pane. On macOS the same set is mirrored onto Cmd+Shift; both work.

ChordCommand
Ctrl+Shift+EnterNew terminal in the current Project
Ctrl+Shift+P, or F1Open the command palette
Ctrl+Shift+SpaceThe leader key (see below)
Ctrl+Shift+\Split the focused pane right
Ctrl+Shift+-Split the focused pane below
Ctrl+Shift+ArrowsFocus the pane in that direction
Ctrl+Shift+ZToggle focused pane zoom
Ctrl+Shift+XClose the focused pane
Ctrl+Shift+[ and ]Previous and next tab in the focused pane
Ctrl+Shift+FFind in the focused terminal
Ctrl+Shift+LToggle the side panel
Ctrl+Shift+E / G / U / KSide panel: files, Git, queue, transcript
Ctrl+Shift+SToggle the Projects sidebar
Ctrl+Shift+HBrowse session history
Ctrl+Shift+,Open Settings
Ctrl+Shift+1 .. 9Activate the first nine Projects, in sidebar order
Ctrl+Tab, Ctrl+Shift+TabNext and previous tab (desktop app only)
#

The leader key reaches everything else

Press Ctrl+Shift+Space and an overlay names what the next keystroke can be, grouped one letter per area: p panes, s sessions, w Projects, v views, n notes, t terminal, g Git, d the side panel, f focus, and a few more. So a new terminal is leader, s, n; the pane to the left is leader, p, h. Escape cancels.

A leader is not decoration. Every keystroke after it is a plain keypress that no browser and no window manager competes for, so one reservation buys the whole tree where a flat map would need one per command.

#

Presets, if you already know another tool

Settings, Input, Keyboard preset. Five ship: swe-mux, tmux, VS Code, Vim-flavoured, and Emacs. Each adds its own prefix and its own letters, and each also keeps the swe-mux leader tree, so choosing one never removes the route to a command that tool has no opinion about. You can pick one during first-time setup too.

swe-mux is an outer shell, so any chord it claims is claimed from whatever runs inside a pane. The tmux preset takes Ctrl+B from a tmux running in a pane; Vim's takes Ctrl+W. Each preset says so before you choose it, and each can be rebound afterwards.

#

Rebinding

Settings, Input, Keyboard shortcuts. A binding is one to three chords; only the first needs Ctrl, Alt or Meta (or a function key), because everything after it is read while the shortcut is already armed. Shift alone is refused, because it shadows typing.

Chords name the physical key rather than the character your layout produces, so a shortcut means the same key on QWERTY, AZERTY and Dvorak. Overrides are stored in keybindings.json in the data directory, and a binding for a command that was later renamed is migrated forward rather than dropped.

#

Why not Ctrl+Alt

Because on most non-US keyboards AltGr produces exactly Ctrl+Alt. swe-mux used to default to that namespace, which meant a German, French, Polish, Spanish or Nordic user fired application shortcuts while typing ordinary characters. No shipped preset uses it, and choosing one yourself is allowed but says so.

#

What the terminal, the browser and your desktop keep

swe-mux deliberately does not intercept the chords a shell or a TUI needs. Ctrl+C, Ctrl+D, Ctrl+R, Ctrl+L and their neighbours reach the process, which is why the application's own chords are on Ctrl+Shift rather than bare Ctrl.

Two other layers get there first, and Settings names both. A browser tab keeps Ctrl+T, Ctrl+W and a handful more for itself, while the desktop app hands them to swe-mux - so a shortcut can be live in one and absent in the other, and the editor says which. Your window manager takes more still: on GNOME and KDE, Ctrl+Alt+arrows switch workspace and Ctrl+Alt+T opens a terminal.

The list of chords a browser keeps is a guess about your browser, and browsers disagree. Settings, Input has a short test that measures it on the browser you are actually using, and the measurement overrides the guess. A chord you never test stays untested rather than being recorded as blocked.

#

Mobile gestures

The same command registry is bindable to touch gestures in Settings, Input, Touch gestures. Three defaults are worth knowing:

GestureCommand
Two-finger swipe upOpen the current Project's notes
Two-finger swipe downRead and select mode, which also lowers a keyboard being held up outside a terminal
Swipe up on the command railToggle the swe-mux menu
Horizontal swipe on the top barStep through Projects, in sidebar order
#

Voice reaches the same registry

Spoken commands resolve through voice aliases on the ordinary command registry rather than through a parallel list, which is what keeps a command reachable by chord, palette, gesture, and voice without four definitions of it. Voice covers what is deliberately excluded from the spoken set.