Skip to content

Keybindings cheatsheet

Every default binding in nebelhaus, grouped by where it lives. The same list is available live in-system: tap then / to open Pounce’s cheatsheet, generated from your actual app roster.

Notation: Option/Alt · Command · Control · Shift · Caps-Lock.

These are the defaults. The three keys everything else hangs off are options — nebelhaus.keys.leader (what is), nebelhaus.keys.windowNav (what is) and nebelhaus.keys.palette (what opens Pounce) — so on a rice that has changed them, read and below as “the leader” and “the nav modifier”. Any of the three can be "none", which removes its bindings rather than moving them. See rebinding; your own live cheatsheet always reflects the keys you actually have.

KeysAction
⌥H ⌥J ⌥K ⌥LFocus left / down / up / right (Vim-style twin of ⇪ + arrows)
⌥/Tiles layout (toggles horizontal ↔ vertical split)
⌥,Accordion layout (toggles horizontal ↔ vertical)
⌥FToggle fullscreen
⌥TabPrevious workspace (back-and-forth)
⌥⇧TabMove workspace to next monitor
⌥⇧;Enter service mode
⌘SpaceOpen Pounce
KeysAction
<app-key>Launch / focus that app (T terminal, B browser by default)
14Focus workspace 1–4
⇧1⇧4Throw the focused window to workspace 1–4 and follow it there
⇧<app-key>Throw the focused window to that app’s workspace and follow it there
←↓↑→Focus tiled window; drops into navigate mode (arrows repeat, +arrow moves the window, Esc/Return exits)
- / =Enter resize mode (shrink / grow)
VClipboard history (Pounce)
EEmoji picker (Pounce)
ZReopen the last closed app (the ⌘⇧T analog)
,Open macOS System Settings (mirrors the ⌘, convention)
BacktickRe-sort every window to its workspace (wake recovery)
/Show the cheatsheet
EscExit launch mode
KeysAction
RFlatten the workspace tree
FToggle floating ↔ tiling
BackspaceClose all windows except current
⌥⇧H/J/K/LJoin with the neighbour
/ Volume up / down
⇧↓Mute
EscReload config and exit
KeysAction
Super PNew pane (inherits cwd; hops to the main checkout inside a worktree)
Super ⇧PNew pane, stay here (inherits cwd, no worktree hop)
Super TNew tab at $HOME (born named ~)
Super ⇧TNew tab at the focused pane’s directory (same worktree hop as Super P)
Super FToggle the focused pane fullscreen (zoom to fill the tab, again to restore)
Super RReload the terminal stack — quit/reopen Ghostty and restart zellij with the same tabs, panes and cwds; live Claude panes resume (also zreload from a shell)
Super Yyazi peek (floating previews; Enter on a dir opens a new tab there)
Super ⇧Yyazi jump (browse, then shell in that dir)
Super LOpen Links picker (every URL from focused pane’s transcript/scrollback)
Ctrl Tab / Ctrl ⇧TabTab history back / forward (most-recently-used, browser-style)
Alt [ / Alt ]Cycle swap layouts (grid → spiral → columns) — works locked too
Super CSpawn an isolated agent (own worktree) in a new pane — your agents.default client: Claude Code via its own --worktree, Codex or Opencode via wt new
Super ⇧CThe same agent, in place of the focused pane instead of beside it — the replaced pane is suspended, not killed, and comes back when the agent quits
Ctrl ⌥⇧CSpawn a resident agent (this checkout)

Locked by default. zellij boots in Locked input mode, so its single-key submode leaders (pane, tab, resize) stay inert until you press Ctrl g — a stray keystroke can’t drop you into a submode. The Super-prefixed launchers above work regardless of the lock, and so do Alt [ / Alt ] — picking a layout is a workspace act, not a submode. The rest of zellij’s Alt row stays inert while locked on purpose: Alt h/j/k/l and Alt-arrows are word motions the shell and your editor want. Flip it with nebelhaus.hearth.zellijStartLocked.

Clickable links work across two modifiers. -click a file path (or a visible URL / bare domain) in the terminal to open it — a path opens a new tab cd’d there, a link opens in the browser. -click opens any web link, including embedded hyperlinks whose visible text isn’t the URL (e.g. Claude Code’s /tui session and PR links) — those only respond to -click, since the URL is hidden in the terminal escape sequence rather than shown on screen.

KeysAction
typeFuzzy-search
/ Move selection
ReturnDefault action
⇧ReturnInsert a newline (the query field is multi-line)
⌘ReturnModifier action (e.g. Reveal in Finder)
⌥Return / ⌃ReturnAlternate actions (when shown)
⌥Return (Find Files)Copy the path
TabCycle sections / emoji categories
EscDismiss

Ghostty deliberately unbinds ⌘T, ⌘P, ⌘⇧P, ⌘Y, ⌘⇧Y, ⌘⇧T, ⌘F, ⌘R, ⌘C and ⌘⇧C so zellij owns them — the same keys work whether or not you’re multiplexed. (⌘⇧C is unbound pre-emptively: Ghostty claims nothing there today, and the unbind keeps it that way if a future release does.) Ctrl-Tab is forwarded to zellij via the kitty keyboard protocol.

⌘D and ⌘⇧D are unbound too, but nothing takes them over: they do nothing. Ghostty’s defaults there are its own new_split:right / new_split:down, which nest a second terminal surface inside the one zellij is driving — invisible to the multiplexer, so its layout, status bar and pane keys would apply to only half the window. Since ⌘D is muscle memory from other terminals, it’s an easy accident; use Super P for a pane instead.