Skip to content
Gerrrt edited this page Jun 14, 2026 · 1 revision

tmux

Core ships a portable tmux base config plus a hand-rolled tokyonight-storm status line. Like the rest of Core it carries nothing OS-specific — per-OS bits (battery, network interface) are appended by each OS repo's os.conf through a single @status_right_os hook.

The two-file split

The config is deliberately split into a configuration file and a keybinding file, an idea borrowed from omerxx's dotfiles — it keeps "what tmux does" separate from "muscle memory."

File Role
tmux.reset.conf the keybinding layer — sourced FIRST
tmux.conf terminal, options, theme/status, plugins
os.conf per-OS bits (battery, net iface), supplied by the OS repo

Both are symlinked into ~/.config/tmux/ by the OS repo's bootstrap.

Prefix and core keybindings

The prefix is C-a (screen-style, frees C-b). Double-tap to toggle the last window. From tmux.reset.conf:

Binding Action
prefix r reload tmux.conf
prefix h/j/k/l select pane (vim-style)
prefix | / - split keeping current path (h / v)
prefix + \ / _ full-height / full-width split
prefix H/J/K/L resize pane (repeatable)
prefix m maximize / zoom toggle
prefix * synchronize-panes (type into all at once)
prefix F floating pane (tmux 3.7+, capability-guarded)
prefix c new window, current path
Alt-H / Alt-L cycle windows (no prefix)
Alt-arrows select pane (no prefix)

Window movement across nvim↔tmux (C-h/j/k/l) is intentionally not here — it's owned by the vim-tmux-navigator plugin so it crosses seamlessly between nvim splits and tmux panes.

Copy-mode is vi-style; yank pipes through Core's cross-OS clip so a tmux yank lands on the system clipboard everywhere (ycopy-pipe-and-cancel "clip").

The status line

Hand-rolled with native tmux formats rather than a theme plugin, so it can show what's actually useful to an operator — most importantly the VPN/tunnel IP (scripts/tmux-netinfo.sh) — and keep the palette identical to Neovim and starship (tokyonight storm) instead of three near-themes.

  • Left: session pill that changes color with state (blue → normal, orange → prefix active, yellow → copy/search mode).
  • Windows: muted pills, current window highlighted, zoom glyph.
  • Right: operator IP, cwd basename, clock, then @status_right_os (the OS repo's battery/net additions).

Pop-ups

Bound in tmux.conf, scripts live in tmux/scripts/ (symlinked to ~/.config/tmux/scripts/):

Binding Pop-up Script
prefix w quick menu tmux-menu.sh
prefix T scratch terminal tmux-scratch.sh
prefix g lazygit (lazygit directly)
prefix f sesh session picker tmux-sesh.sh
prefix ? cheat sheet tmux-cheat.sh
prefix u fzf URLs out of the pane (recon-handy) tmux-fzf-url

The tmux-netinfo.sh and tmux-battery.sh scripts feed the status line.

Plugins

Managed by TPM (auto-cloned on first run): tmux-sensible, vim-tmux-navigator, tmux-yank, tmux-resurrect + tmux-continuum (session persistence, auto-restore on, 15-min save), and tmux-fzf-url. The old tokyo-night-tmux plugin was removed in favor of the hand-rolled bar.

See also

Clone this wiki locally