mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-21 08:02:21 +00:00
Refs #710; does not close it (the request was a jump list opening a chosen existing workspace). Registers NewWindow globally as well as on the render root, since with the tray icon on (the default) closing the last window retires to the tray and leaves no window to dispatch it.
133 lines
5.8 KiB
Plaintext
133 lines
5.8 KiB
Plaintext
---
|
||
title: "Keyboard shortcuts"
|
||
description: "Every default binding, plus the action names for rebinding."
|
||
---
|
||
|
||
**Settings → Keybindings** (<kbd>⌘ ,</kbd>) is the live version of this page —
|
||
it shows what *your* copy is bound to. This is the shipped default.
|
||
|
||
## Tabs and workspaces
|
||
|
||
| Action | macOS | Windows / Linux |
|
||
|---|---|---|
|
||
| New Tab | <kbd>⌘ T</kbd> | <kbd>Ctrl ⇧ T</kbd> |
|
||
| Close Pane / Tab | <kbd>⌘ W</kbd> | <kbd>Ctrl ⇧ W</kbd> |
|
||
| Reopen Closed Tab | <kbd>⌘ ⇧ T</kbd> | <kbd>Alt ⇧ T</kbd> |
|
||
| Next Tab · Previous Tab | <kbd>⌃ ⇥</kbd> · <kbd>⌃ ⇧ ⇥</kbd> | same |
|
||
| Go to Tab 1–9 | <kbd>⌘ 1</kbd>…<kbd>⌘ 9</kbd> | <kbd>Alt 1</kbd>…<kbd>Alt 9</kbd> |
|
||
| New Workspace | <kbd>⌘ ⇧ N</kbd> | <kbd>Ctrl ⇧ N</kbd> |
|
||
| Switch Workspace | <kbd>⌘ ⇧ O</kbd> | <kbd>Ctrl ⇧ O</kbd> |
|
||
| New Window | <kbd>⌘ N</kbd> | — |
|
||
|
||
## Panes
|
||
|
||
| Action | macOS | Windows / Linux |
|
||
|---|---|---|
|
||
| Split Right | <kbd>⌘ D</kbd> | <kbd>Ctrl ⇧ D</kbd> |
|
||
| Split Down | <kbd>⌘ ⇧ D</kbd> | <kbd>Ctrl Alt ⇧ D</kbd> |
|
||
| Next Pane · Previous Pane | <kbd>⌘ ]</kbd> · <kbd>⌘ [</kbd> | <kbd>Ctrl ⇧ ]</kbd> · <kbd>Ctrl ⇧ [</kbd> |
|
||
| Focus Pane Left / Right / Up / Down | <kbd>⌘ ⌥ ←→↑↓</kbd> | <kbd>Alt ←→↑↓</kbd> |
|
||
| Zoom Pane | <kbd>⌘ ⇧ ⏎</kbd> | <kbd>Ctrl ⇧ ⏎</kbd> |
|
||
| Enter Full Screen | <kbd>⌘ ⏎</kbd> | <kbd>F11</kbd> |
|
||
|
||
## View
|
||
|
||
| Action | macOS | Windows / Linux |
|
||
|---|---|---|
|
||
| Command Palette | <kbd>⌘ P</kbd> | <kbd>Ctrl ⇧ P</kbd> |
|
||
| Toggle Left Sidebar | <kbd>⌘ B</kbd> | <kbd>Ctrl ⇧ B</kbd> |
|
||
| Toggle Right Panel | <kbd>⌘ J</kbd> | <kbd>Ctrl ⇧ J</kbd> |
|
||
| Toggle Code Panel | <kbd>⌘ ⇧ E</kbd> | <kbd>Ctrl ⇧ E</kbd> |
|
||
| Font Size Up · Down · Reset | <kbd>⌘ +</kbd> · <kbd>⌘ −</kbd> · <kbd>⌘ 0</kbd> | <kbd>Ctrl +</kbd> · <kbd>Ctrl −</kbd> · <kbd>Ctrl 0</kbd> |
|
||
| Zoom the font | <kbd>⌘</kbd> + wheel | <kbd>Ctrl</kbd> + wheel |
|
||
|
||
## Terminal
|
||
|
||
| Action | macOS | Windows / Linux |
|
||
|---|---|---|
|
||
| Find in Terminal | <kbd>⌘ F</kbd> | <kbd>Ctrl ⇧ F</kbd> |
|
||
| Find Next · Previous | <kbd>⌘ G</kbd> · <kbd>⌘ ⇧ G</kbd> | <kbd>F3</kbd> · <kbd>⇧ F3</kbd> |
|
||
| Clear Scrollback | <kbd>⌘ K</kbd> | <kbd>Ctrl ⇧ K</kbd> |
|
||
| Copy · Paste | <kbd>⌘ C</kbd> · <kbd>⌘ V</kbd> | <kbd>Ctrl ⇧ C</kbd> · <kbd>Ctrl ⇧ V</kbd> · <kbd>⇧ Insert</kbd> |
|
||
| Insert Newline (at the prompt) | <kbd>⇧ ⏎</kbd> · <kbd>⌥ ⏎</kbd> | same |
|
||
| Fuzzy history search | <kbd>⌃ R</kbd> | same |
|
||
| Accept ghost suggestion | <kbd>→</kbd> | same |
|
||
| Completion menu | <kbd>⇥</kbd> | same |
|
||
|
||
On Windows and Linux plain <kbd>Ctrl V</kbd> also pastes at a shell prompt.
|
||
Inside a full-screen application — vim, less, tmux — it is passed through as
|
||
the key, so it means what the application says it means (blockwise Visual mode
|
||
in vim); paste there with <kbd>Ctrl ⇧ V</kbd> or <kbd>⇧ Insert</kbd>.
|
||
|
||
That convenience is the **Paste (outside full-screen apps)** binding, and it is
|
||
yours to move. Clearing it hands <kbd>Ctrl V</kbd> to the shell everywhere,
|
||
including readline's `quoted-insert`:
|
||
|
||
```json
|
||
{ "keybindings": { "AlternatePaste": "" } }
|
||
```
|
||
|
||
Putting Paste itself on the chord goes the other way, pasting on every screen
|
||
the way Windows Terminal does out of the box:
|
||
|
||
```json
|
||
{ "keybindings": { "PasteText": "ctrl-v" } }
|
||
```
|
||
|
||
Every <kbd>Ctrl</kbd> chord that stands for a control code reaches the program
|
||
you are running: <kbd>Ctrl 6</kbd> and <kbd>Ctrl ⇧ 6</kbd> are `^^` (vim's
|
||
alternate file), <kbd>Ctrl /</kbd> and <kbd>Ctrl ⇧ −</kbd> are `^_` (readline's
|
||
undo), <kbd>Ctrl 3</kbd> is Escape. The plain <kbd>Ctrl</kbd> chords tty7 keeps
|
||
are the ones that stand for nothing: <kbd>Ctrl ⇥</kbd> for the next tab, and on
|
||
Windows and Linux <kbd>Ctrl +</kbd> · <kbd>Ctrl −</kbd> · <kbd>Ctrl 0</kbd> for
|
||
the font size.
|
||
|
||
## Git and SSH
|
||
|
||
| Action | macOS | Windows / Linux |
|
||
|---|---|---|
|
||
| Commit (caret in the message box) | <kbd>⌘ ⏎</kbd> | <kbd>Ctrl ⏎</kbd> |
|
||
| Save (in the editor) | <kbd>⌘ S</kbd> | <kbd>Ctrl S</kbd> |
|
||
| Restart SSH Session | <kbd>⌘ ⇧ R</kbd> | <kbd>Ctrl ⇧ R</kbd> |
|
||
|
||
## Application
|
||
|
||
| Action | macOS | Windows / Linux |
|
||
|---|---|---|
|
||
| Settings | <kbd>⌘ ,</kbd> | <kbd>Ctrl ,</kbd> |
|
||
| Keyboard Shortcuts | <kbd>⌘ /</kbd> | — |
|
||
| Hide tty7 · Hide Others · Minimize | <kbd>⌘ H</kbd> · <kbd>⌘ ⌥ H</kbd> · <kbd>⌘ M</kbd> | — |
|
||
| Quit | <kbd>⌘ Q</kbd> | <kbd>Ctrl ⇧ Q</kbd> |
|
||
|
||
## Actions with no default key
|
||
|
||
All of these are in the command palette, and all are bindable under **Settings →
|
||
Keybindings**:
|
||
|
||
| Group | Actions |
|
||
|---|---|
|
||
| Tabs | `RenameTab` · `NewWorktreeTab` · `CloseOtherTabs` · `CloseTabsToTheRight` · `CopyWorkingDirectory` · `MarkTabUnread` · `ToggleTabSidebar` |
|
||
| Panes | `ResizePaneLeft/Right/Up/Down` · `SwapPaneNext` · `SwapPanePrev` |
|
||
| Workspaces | `SelectWorkspace1`…`SelectWorkspace9` · `RenameWorkspace` · `StopWorkspace` · `DeleteWorkspace` |
|
||
| Agents | `ForkAgentSession` (+ `Right` / `Left` / `Down` / `Up`) · `CopyAgentSessionId` |
|
||
| Git | `ScmStageAll` · `ScmUnstageAll` · `ScmDiscardAll` · `ScmCommitAmend` · `ScmRefresh` · `ScmSync` · `ScmPush` · `ScmPull` · `ScmFetch` · `ScmCheckoutBranch` · `ScmCreateBranch` · `ScmToggleGraph` · `ToggleDiffViewMode` |
|
||
| Panels | `ShowRightPanelInfo` · `ShowRightPanelChanges` · `ShowRightPanelFiles` |
|
||
| SSH | `ToggleSftp` · `ShowSshForwards` · `OpenSshProfiles` |
|
||
| Application | `CloseWindow` · `About` · `CheckForUpdates` · `OpenDocumentation` · `OpenDiscord` · `ReportIssue` · `ShowAll` · `ZoomWindow` |
|
||
|
||
## Rebinding syntax
|
||
|
||
```json
|
||
{
|
||
"keybindings": {
|
||
"ResizePaneLeft": "ctrl-alt-left",
|
||
"ToggleSftp": "secondary-shift-u",
|
||
"ScmSync": "ctrl-b s"
|
||
}
|
||
}
|
||
```
|
||
|
||
`secondary` means <kbd>⌘</kbd> on macOS and <kbd>Ctrl</kbd> elsewhere. A space
|
||
separates the steps of a chord.
|
||
[More →](/customization/keybindings)
|