Library Modules
Module Overview
9 composable modules in lib/, each owning a single domain. Sourced in dependency order by tmux.conf.
Sourcing Order
core → vim → mouse → theme → clipboard → panes → sessions →
popups (3.2+) → status → modern (3.2+) → plugins → local → TPM init
Theme loads before modules that reference @theme-* variables. Plugins load last so TPM can register keybindings. local.conf is optional (gitignored) for machine-specific overrides.
Module Reference
| Module | Domain | What It Configures | Bindings |
|---|---|---|---|
|
Terminal settings |
Prefix ( |
0 |
|
Navigation + copy mode |
Pane nav (h/j/k/l, vim-aware C-h/j/k), window jump (M-1..9), copy mode (v/V/C-v/y), paste, clear screen |
48 |
|
Mouse events |
Mouse on, scroll behavior, click-to-select pane, double/triple click word/line select, drag resize |
8 |
|
Clipboard integration |
Platform detection chain: wl-copy (Wayland) → xclip (X11) → pbcopy (macOS) → /dev/null fallback. Sets |
0 |
|
Pane operations |
Splits (|/-/\/_), resize (H/J/K/L fine, C-H/J/K/L coarse), zoom, mark/swap, layouts (M-1..5 + G/I/O), sync, border titles |
40 |
|
Session management |
New/kill/find session, choose-tree, window rename, quick project nav (M-w/a/p), nested tmux F12 toggle, send-prefix |
17 |
|
Popup workflows |
Terminal (backtick), lazygit (g), yazi/lf (e), fzf session picker (C-f), scratchpad (n), help cheatsheet (/) |
6 |
|
Status bar |
Status toggle (b), format strings, window status, activity indicators. Uses |
1 |
|
tmux 3.2+ features |
Extended keys, allow-passthrough (image protocol), popup border style, Wayland clipboard. Version-guarded in |
0 |
Domain Boundaries
Each module has a strict "does not touch" contract:
| Module | Does NOT Touch |
|---|---|
|
Splits, resize, zoom, session management, popups |
|
Navigation, copy mode, sessions, popups |
|
Pane operations, navigation, popups |
|
Core navigation, pane operations, sessions |
|
Navigation, panes, sessions (only the |
Violations are caught by scripts/check-conflicts.sh which tracks {table}:{key} tuples and flags same-table duplicates.
Binding Table Context
A single key can appear in multiple modules without conflict when bound to different tables:
| Table | Syntax | Meaning |
|---|---|---|
prefix (default) |
|
Requires |
root |
|
No prefix needed, fires immediately |
copy-mode-vi |
|
Active only in vi copy mode |
off |
|
Active when nested tmux is in OFF state (F12 toggle) |
Example: r is bound as C-a r (reload config, prefix table) AND as r in copy-mode-vi (rectangle toggle). Different tables, no conflict.