all repos — dot @ b872fd500c67ba19913c64c0c071be8829bedc01

Shell, editor and terminal configuration, and the tools that go with them

tmux: machine-local overrides in ~/.tmux.conf.local

tmux was one of the configs a machine could not adjust without editing the
shared file. ~/.tmux.conf.local is now loaded last, so it wins over everything,
colours included, and is skipped silently where there is none. Not under
~/.config/tmux, which links into this repo.

The filed version loaded it with `if-shell -b`, which runs in the background
and applies the file after the rest of the config, in no fixed order;
`source-file -q` does the same job in order, without a shell. -q checked on
tmux 3.5a and 3.4.

From change request 379803.
Igor Soarez igor@soarez.org
Sat, 03 Oct 2026 07:26:40 +0300
commit

b872fd500c67ba19913c64c0c071be8829bedc01

parent

013b5922d1b8401fe8eb47a8834f01fba1e1ad5a

2 files changed, 9 insertions(+), 1 deletions(-)

jump to
M AGENTS.md → AGENTS.md

@@ -170,13 +170,14 @@ | `~/.localprofile` | interactive setup: aliases, prompt, anything that forks | `config/profile`, last |

| `~/.config/ssh/config-local` | ssh, this host only. See `config/ssh/config-local-example` | `config/ssh/entry`, before the shared defaults | | `~/.config/git/config-local` | git, this host only -- the work identity, `includeIf` blocks. See `config/git/config-local-example` | `config/git/config`, after the `[user]` block above it, and git takes the last value | | `~/.config/hammerspoon/local.lua` | Hammerspoon: rebinding a hotkey set here shadows it, and `capslock_off()` gives this machine its Caps Lock back. `require("dotlib")` for the same helpers init.lua uses. See `config/hammerspoon/local-example.lua` | `config/hammerspoon/init.lua`, last, in a `pcall` | +| `~/.tmux.conf.local` | tmux, this host only: loaded last, so it can override anything, colours included | `config/tmux.conf`, last, with `source-file -q` | | `~/.config/ghostty-local` | Ghostty: later values replace earlier ones, `keybind` accumulates. See `config/ghostty/ghostty-local-example` | `config/ghostty/config`, last, as an optional `config-file` | | `~/.local/share/alacritty/local.toml` | Alacritty | imported by `config/alacritty/alacritty.toml` | | `~/.config/dot/skip` | which `link/` parts this machine does not want, one name per line | `link/lib.sh`, as each part starts | | `~/.config/dot/inbox-key` | the key this machine signs change requests with | `bin/dot-request` | | `~/.config/pi/models.d/*.json` | pi providers only this machine has -- a model served somewhere other than a vendor's own API | `link/pi.sh`, merged over `config/pi/models.json` | -Not covered today: nvim, tmux, bat, lsd, and `~/.claude/settings.json` -- which +Not covered today: nvim, bat, lsd, and `~/.claude/settings.json` -- which a machine can only leave alone entirely, by naming `claude` in the skip file. **When a request is not covered by the table, say so rather than editing a
M config/tmux.conf → config/tmux.conf

@@ -155,3 +155,10 @@ # conflicts with paste operations (causes escape sequences like ^[[27;5;106~ to appear)

# See: https://github.com/ghostty-org/ghostty/issues/7997 set -g extended-keys off +# Machine-local overrides, where a machine has any: ~/.tmux.conf.local, a real +# file in no repo, like ~/.localprofile for the shell. Not under ~/.config/tmux, +# which is a link into this repo. Last, so it wins over everything above, +# colours included; -q skips it silently where there is none. source-file +# rather than `if-shell -b`, which would apply it in the background, after the +# rest of the config and in no fixed order. +source-file -q ~/.tmux.conf.local