move focus left (arrows also always work, regardless of rebinding)
j
move focus down (arrows also always work, regardless of rebinding)
k
move focus up (arrows also always work, regardless of rebinding)
l
move focus right (arrows also always work, regardless of rebinding)
o
cycle to the next pane (Tab also always works, regardless of rebinding)
;
toggle back to the previously active pane in this window
z
zoom the active pane full-screen (again to undo)
r
resize-mode: arrows/hjkl resize, any other key exits
x
close the active pane
Z
reopen the last closed pane, back in its window and directory
!
break the active pane out into its own new window
R
respawn-pane: restart the shell in the active pane, in place
.
name this pane (empty clears it, back to the process name)
Q
quick-jump: press a pane's number to jump straight to it
Space
cycle the active window through preset layouts
Windows
c
create a new window
n
switch to the next window
p
switch to the previous window
W
toggle back to the previously active window
,
rename the current window
&
close the current window and every pane in it (asks first)
w
jump picker: fuzzy-jump to any window/pane
g
overview: a live-thumbnail grid of every pane
Finding things
/
search every pane's scrollback at once
[
enter copy-mode (scroll/select the scrollback)
u
open picker: fuzzy-pick a URL/path spotted on screen
H
search every command run in this session (needs shell-init)
T
session timeline: when each command ran and for how long
O
copy the last command's entire output (needs shell-init)
Session
d
detach (session keeps running)
q
quit (asks first; ends the whole session)
$
rename this session (its socket and snapshot move with it)
S
switch to another session without detaching
P
toggle the floating scratch terminal
y
toggle sync-panes (type into every pane at once)
C
settings: view and change this session's settings live
:
command prompt: type a command (new-window, split-window, ...)
?
toggle this help screen
Copying & logging
]
paste the last yank
=
paste register picker: fuzzy-pick an older yank to paste
L
toggle logging the active pane's output to a file
A
log every pane in this window to a directory you name
m
tell me when this pane's command finishes (bell + message)
Copy-mode (no prefix, fixed keys)
h j k l / arrows
Move the cursor
PgUp PgDn Ctrl-U Ctrl-D
Page and half-page
g / G
Top / bottom of the scrollback
v
Start a character-wise selection
V
Whole-line selection (v switches back)
y
Yank to clipboard and paste registers
/
Search this pane (regex, else literal)
n / N
Next / previous match
{ }
Previous / next command *
q or Esc
Leave copy-mode
From the shell
termdock
Attach to (or create) the session named main
termdock new -s NAME
Create a session and attach
termdock attach -t NAME [-r]
Attach; -r is read-only
termdock ls
List running sessions
termdock kill-session -t NAME
End a session
termdock themes
List the bundled colour themes
termdock doctor
Check for settings failing silently
termdock shell-init [SHELL]
Print the shell snippet for command marks *
termdock layout save|apply|ls|rm
Named window arrangements
termdock send-keys -t TARGET ...
Type into a pane from a script
termdock split-window -t TARGET
Split from a script
termdock select-pane -t TARGET -L|-R|-U|-D
Move focus from a script
termdock list-windows / list-panes -t T
Inspect a session
45 bindings, read straight from the source so this sheet cannot
drift from the program. Every one of them is rebindable — see
Every key. Lines marked * need
shell integration.
Inside termdock, Ctrl-B?
shows the same list generated from what you actually have bound.