---
title: "Keybindings"
description: "Rebinding anything, chord sequences, and the tmux preset."
---
**Settings → Keybindings** (⌘ ,) lists every shortcut in the app,
grouped the same way the command palette is. The search box at the top of
Settings reaches this page too: type what a feature is called — `split`,
`commit`, `sftp` — and the page narrows to the shortcuts for it. Action names
work as well as labels, so a binding you read about in `keybindings.json` is
one search away from the row that sets it.
## Rebinding
Click a shortcut and press the new keys. It saves after a brief pause.
| | |
|---|---|
| Press keys | Set the binding |
| Press more keys | Chain a sequence — ⌃ B then X |
| Esc | Cancel |
| ⌫ | Remove the last key — or, pressed first, reset the shortcut to its default |
**Restore all defaults** at the bottom undoes every rebinding at once. There is
no undo for that one.
## Actions with no default key
Some actions ship deliberately unbound, because there is no obvious key left to
take: pane resize and swap, workspace selection, most git commands, SFTP, and
the panel tabs. They are all in the command palette, and all bindable here.
## Editing `config.json` instead
```json
{
"keybindings": {
"NextTab": "cmd-shift-]",
"SplitRight": ["cmd-d"],
"ResizePaneLeft": "ctrl-alt-left",
"ToggleFullscreen": ""
}
}
```
An action's value takes one of two shapes:
| Value | Means |
|---|---|
| `"cmd-shift-]"` | **Add** this shortcut. The default keeps working — ⌃ ⇥ still switches tabs |
| `["cmd-d"]` | **Replace**: exactly these shortcuts, nothing else. List several to have several |
| `""` or `[]` | **Unbind** the action |
Recording a shortcut on the Settings page replaces, so it writes the list
shape. A shortcut you add that another action already uses wins: it is the one
that runs.
The syntax is modifiers joined by `-`, then the key. Chords are separated by a
space.
| Token | Means |
|---|---|
| `secondary` | ⌘ on macOS, Ctrl elsewhere |
| `cmd` · `ctrl` · `alt` · `shift` | Literal modifiers |
| `ctrl-b n` | A two-key sequence |
An unknown action name or an invalid keystroke is skipped with a warning in the
log rather than breaking the rest of your bindings.
The full action list is on the [keyboard shortcuts](/reference/keyboard-shortcuts)
page.
## The tmux preset
**Settings → Keybindings → Preset → tmux** remaps pane and tab actions onto a
prefix — ⌃ B by default, changeable in the **Prefix** field beside
it.
| | |
|---|---|
| ⌃ B C · X | New tab · close tab |
| ⌃ B % · " | Split right · split down |
| ⌃ B ←→↑↓ | Move focus |
| ⌃ B ⌃ ←→↑↓ | Resize the pane |
| ⌃ B O · ; | Next pane · previous pane |
| ⌃ B { · } | Swap with the previous · next pane |
| ⌃ B Z | Zoom the pane |
| ⌃ B N · P | Next tab · previous tab |
| ⌃ B 1…9 | Jump to a tab |
Two details that make it livable:
- A **bare prefix** reaches the shell after about a second, so ⌃ B
still works as "back one character" when you meant it.
- **Prefix plus an unbound key** is passed straight through to the terminal, so
a tmux binding you did not remap still lands in whatever is running.
## Some non-obvious defaults
| | |
|---|---|
| ⇧ ⏎ · ⌥ ⏎ | Insert a newline at the prompt instead of submitting (`InsertNewline`) |
| ⌘ ⇧ ⏎ | Zoom the focused pane |
| ⌘ ⇧ E | Toggle the code panel |
| ⌘ ⇧ R | Restart the SSH session in this pane |
| ⌘ ⇧ O | Workspace switcher |
| ⌘ ⇧ N | New workspace |