Follow light/dark appearance in the tmux status bar
The status bar was five hardcoded tangere-dark colours, so in light mode the
pale #fdfdd9 text landed on a white background and became unreadable. That was
the real reason Auto appearance "never worked with the terminal setup" — ghostty
was switching correctly all along.
Split the colours into tmux-light.conf and tmux-dark.conf. The dark file is
extracted byte-exact from the previous config; the light file is the same layout
with each colour swapped for the tangere-light palette entry at the same index,
so roles are preserved (text on an accent uses the theme background, which
inverts from #1a2938 to #fdfdfa).
tmux 3.6+ learns the terminal's theme over OSC 2031, so this keys off the
appearance change itself rather than a schedule, and behaves identically whether
that came from Auto at sunrise/sunset or a manual toggle. Three hooks: the two
theme hooks react to a change, and client-attached covers a client attaching
mid-way, since those two only fire on a change. Sourcing is idempotent so the
overlap is harmless.
This replaces the dark-mode-notify launchd agent removed in 59d5622, which could
not have worked: it re-sourced .zshrc inside each shell, but the status bar
belongs to the tmux server.
Verified by round trip: flipping to Light switched #{client_theme} and applied
the light palette, and returning to Dark restored it. A running nvim does not
follow a live change (docs: the TUI sets 'background' on startup); noted in the
README.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
59d5622442
commit
6b3ab420ad
5 changed files with 73 additions and 17 deletions
22
tmux-light.conf
Normal file
22
tmux-light.conf
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# tangere-light status bar, sourced by the client-light-theme hook in ~/.tmux.conf
|
||||
#
|
||||
# Same layout as tmux-dark.conf, with each colour swapped for the tangere-light
|
||||
# palette entry at the same index. Roles are preserved: text on an accent uses
|
||||
# the theme background, which is now light rather than dark.
|
||||
# #000000 foreground #fdfdfa background #d1d1d1 dim (15)
|
||||
# #223355 blue (4) #004c73 cyan (2) #663d52 magenta (5)
|
||||
|
||||
# Tweak status bar styles
|
||||
set -g status-style bg=default,fg='#000000'
|
||||
|
||||
# Left side: session name with blue accent
|
||||
set -g status-left "#[fg=#fdfdfa,bg=#223355,bold] #S #[fg=#223355,bg=default]\ue0b0"
|
||||
|
||||
# Right side: multi-segment with transitions
|
||||
set -g status-right "#[fg=#004c73,bg=default]\ue0b2#[fg=#fdfdfa,bg=#004c73] %H:%M #[fg=#663d52,bg=#004c73]\ue0b2#[fg=#fdfdfa,bg=#663d52] %d-%b "
|
||||
|
||||
# Inactive windows (no powerline symbols)
|
||||
setw -g window-status-format "#[fg=#d1d1d1,bg=default] #I #W "
|
||||
|
||||
# Active window (cyan highlight, no powerline)
|
||||
setw -g window-status-current-format "#[fg=#fdfdfa,bg=#004c73,bold] #I #W "
|
||||
Loading…
Reference in a new issue