termdock_

Every key

Everything behind the prefix. All of it rebindable, and all of it also on the Ctrl-B ? screen inside termdock — which is generated from what's actually bound, so it never goes stale.

Panes

KeyDoes
v or %Split side by side.
s or "Split top and bottom.
←→↑↓ / hjklMove focus. After a prefixed arrow, a bare arrow keeps moving for a second.
o or TabCycle to the next pane.
;Back to the pane you were just in.
zZoom this pane full-screen. Its border turns magenta and the title gains [Z].
rResize mode: arrows resize, any other key leaves.
xClose this pane.
ZReopen the last closed pane, in its window and directory.
!Break this pane out into a window of its own.
RRespawn: restart the shell in place.
.Name this pane. Empty clears it.
QBadge every pane with a digit; press one to jump there.
SpaceCycle the window through tiled / even-columns / even-rows.

Windows

KeyDoes
cNew window.
n / pNext / previous window.
0–9Jump to window N.
WBack to the window you were just in.
,Rename this window.
&Close the window and every pane in it. Asks first.
wJump picker: type to filter every window and pane, with a live minimap.
gOverview: every pane in the session as a grid of live thumbnails.

Finding things

KeyDoes
/Search every pane's scrollback at once, plain text or regex.
[Copy-mode: scroll and select the scrollback.
uPick a URL or path visible on screen; copies it to your clipboard.
HEvery command run in this session, fuzzy-searchable. Needs shell integration.
TSession timeline: when each command ran, for how long. Needs shell integration.
OCopy a command's entire output. Needs shell integration.

Copy-mode

Enter with Ctrl-B [. Inside, the prefix is not needed:

KeyDoes
hjkl / arrowsMove the cursor.
PgUp / PgDn / Ctrl-U / Ctrl-DPage and half-page.
g / GTop / bottom of the scrollback.
vStart a character-wise selection.
VWhole-line selection. v switches back without losing it.
yYank the selection, to the clipboard and the paste registers.
/Search this pane. Regex, falling back to a literal match.
{ / }Jump to the previous / next command. Needs shell integration.
q or EscLeave.

The mouse

At a shell prompt the mouse drives termdock: click a pane to focus it, click-drag its content to select and copy, drag a border to resize, drag a pane's title onto a window tab to move it there, click a tab to switch window, and use the wheel to scroll that pane's scrollback.

Programs that want the mouse get the mouse. htop, vim, less, lazygit and anything else that asks the terminal to report mouse events receives your clicks, drags and wheel directly, in a pane or in the popup. termdock knows which is which because it emulates the terminal itself, so it sees the program turn reporting on.

Hold Shift to take the mouse back. Shift-click focuses a pane running a full-screen program, shift-drag selects its text or drags its border, and shift-wheel scrolls the pane's scrollback rather than the program's own list. Without an escape hatch of this kind a pane running htop could not be resized with the mouse at all, which is why tmux has the same one.

The whole thing is off if you set mouse off; see Configuration.

Session and everything else

KeyDoes
dDetach. The session keeps running.
qQuit the whole session. Asks first.
$Rename this session — socket and snapshot move with it.
SSwitch to another session without detaching.
PToggle the floating scratch terminal.
ySynchronised input: type into every pane at once, or the ones you picked.
] / =Paste the last yank / pick from the last 20.
LLog this pane's output to a file.
ALog every pane in this window to a directory you name.
mTell me when this pane's command finishes.
CSettings screen: every setting, changeable live.
:Command prompt.
?This list, inside termdock.
Ctrl-BPressed twice: sends a literal Ctrl-B to the shell.

Rebinding

Every key above is a default, not a fixture. One line in the config:

bind M jump-picker

Both w and M now open it — bind touches only the key you name. Action names are listed by the help screen; the full set lives in internal/core/bindings.go.

Digits and arrows. 0–9 jump to a window unless you deliberately rebind that digit, in which case your binding wins. Arrow keys always work for movement whatever else you bind, so a rebind can never leave you unable to move.