-
Notifications
You must be signed in to change notification settings - Fork 0
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 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.
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 (y → copy-pipe-and-cancel "clip").
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).
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.
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.
-
Neovim — the
vim-tmux-navigatorpane/split integration. -
Tools, Aliases & Functions —
Ctrl-Gin the shell uses the sametmux-sesh.shpicker asprefix f.
dotfiles-core — the Core layer of
a nine-repo dotfiles system · authored once, vendored everywhere via git subtree.
Home · Architecture · Zsh · Tools · Neovim · tmux · FAQ
Source for these pages lives in
wiki/ — edit there and
sync. · core-help in any shell for the live cheat sheet.
Concepts
Reference
Operating it
Project
Repo links