termdock_

termdock cheatsheet

every key starts with Ctrl-B unless noted

Panes

vsplit vertically (side by side)
ssplit horizontally (stacked)
hmove focus left (arrows also always work, regardless of rebinding)
jmove focus down (arrows also always work, regardless of rebinding)
kmove focus up (arrows also always work, regardless of rebinding)
lmove focus right (arrows also always work, regardless of rebinding)
ocycle to the next pane (Tab also always works, regardless of rebinding)
;toggle back to the previously active pane in this window
zzoom the active pane full-screen (again to undo)
rresize-mode: arrows/hjkl resize, any other key exits
xclose the active pane
Zreopen the last closed pane, back in its window and directory
!break the active pane out into its own new window
Rrespawn-pane: restart the shell in the active pane, in place
.name this pane (empty clears it, back to the process name)
Qquick-jump: press a pane's number to jump straight to it
Spacecycle the active window through preset layouts

Windows

ccreate a new window
nswitch to the next window
pswitch to the previous window
Wtoggle back to the previously active window
,rename the current window
&close the current window and every pane in it (asks first)
wjump picker: fuzzy-jump to any window/pane
goverview: a live-thumbnail grid of every pane

Finding things

/search every pane's scrollback at once
[enter copy-mode (scroll/select the scrollback)
uopen picker: fuzzy-pick a URL/path spotted on screen
Hsearch every command run in this session (needs shell-init)
Tsession timeline: when each command ran and for how long
Ocopy the last command's entire output (needs shell-init)

Session

ddetach (session keeps running)
qquit (asks first; ends the whole session)
$rename this session (its socket and snapshot move with it)
Sswitch to another session without detaching
Ptoggle the floating scratch terminal
ytoggle sync-panes (type into every pane at once)
Csettings: 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
Ltoggle logging the active 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 (bell + message)

Copy-mode (no prefix, fixed keys)

h j k l / 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)
yYank to clipboard and paste registers
/Search this pane (regex, else literal)
n / NNext / previous match
{ }Previous / next command *
q or EscLeave copy-mode

From the shell

termdockAttach to (or create) the session named main
termdock new -s NAMECreate a session and attach
termdock attach -t NAME [-r]Attach; -r is read-only
termdock lsList running sessions
termdock kill-session -t NAMEEnd a session
termdock themesList the bundled colour themes
termdock doctorCheck for settings failing silently
termdock shell-init [SHELL]Print the shell snippet for command marks *
termdock layout save|apply|ls|rmNamed window arrangements
termdock send-keys -t TARGET ...Type into a pane from a script
termdock split-window -t TARGETSplit from a script
termdock select-pane -t TARGET -L|-R|-U|-DMove focus from a script
termdock list-windows / list-panes -t TInspect 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.