dotfiles/tmux-dark.conf

21 lines
980 B
Text
Raw Normal View History

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>
2026-08-09 12:38:16 +01:00
# tangere-dark status bar, sourced by the client-dark-theme hook in ~/.tmux.conf
#
# Colours are tangere-dark palette entries so the bar matches the ghostty theme.
# Text sitting on an accent uses the theme background (#1a2938).
# #fdfdd9 foreground #1a2938 background #2f4656 dim (15)
# #8fb4cd blue (4) #6dafb5 cyan (2) #bb98d9 magenta (5)
# Tweak status bar styles
set -g status-style bg=default,fg='#fdfdd9'
# Left side: session name with blue accent
set -g status-left "#[fg=#1a2938,bg=#8fb4cd,bold] #S #[fg=#8fb4cd,bg=default]\ue0b0"
# Right side: multi-segment with transitions
set -g status-right "#[fg=#6dafb5,bg=default]\ue0b2#[fg=#1a2938,bg=#6dafb5] %H:%M #[fg=#bb98d9,bg=#6dafb5]\ue0b2#[fg=#1a2938,bg=#bb98d9] %d-%b "
# Inactive windows (no powerline symbols)
setw -g window-status-format "#[fg=#2f4656,bg=default] #I #W "
# Active window (cyan highlight, no powerline)
setw -g window-status-current-format "#[fg=#1a2938,bg=#6dafb5,bold] #I #W "