dotfiles/private_dot_config/kitty/theme-modes
Anton Volnuhin af52fcf7a3 tide: ask the terminal for its background instead of reading config files
Over ssh the light prompt segments came out lighter than the background
instead of darker. __tide_terminal_background_color learned the
background by reading <appearance>-theme.auto.conf, which on a remote
host belongs to *that* machine: devry pins theme-mode to dark, so
apply-theme-mode.sh writes the dark theme into all three slots there,
including light-theme.auto.conf. Asked for a light background it found
#212121, correctly refused it as contradicting the appearance, ran out of
files and left the caller on its plain-white fallback -- and a segment
derived from white sits above a #EBE8E4 background rather than below it.
Dark was unaffected because that path never recomputes the palette.

Ask the terminal instead, with an OSC 11 query: it is the one source that
describes the window this shell is actually displayed in, whichever
machine the shell runs on. The config files stay as the fallback, where
they are still right, and the static white behind them.

The query costs one 0.2s-bounded read per appearance change, restores the
terminal settings before it can fail, and steps aside under tmux and
screen, which need the query wrapped and each want it wrapped
differently.

Covered by a new live pty scenario that reproduces the ssh case exactly --
config files all dark, terminal reporting light -- which fails on the
previous ordering, plus unit tests for the reply parser and the fallback
chain.
2026-08-06 16:08:40 +03:00
..
private_dark.conf kitty: keep the tab bar on the terminal background 2026-08-06 14:34:19 +03:00
private_light.conf tide: ask the terminal for its background instead of reading config files 2026-08-06 16:08:40 +03:00
private_no-preference.conf kitty: put the grok themes in the picker, move the mode store aside 2026-08-06 03:24:48 +03:00