dotfiles/private_dot_config/private_fish
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
..
conf.d kitty: remember the light/dark mode across restarts 2026-08-06 01:49:45 +03:00
functions tide: ask the terminal for its background instead of reading config files 2026-08-06 16:08:40 +03:00
private_docs/private_superpowers/private_specs tide: derive the light segment background from the terminal's own 2026-08-06 15:34:51 +03:00
private_tests tide: ask the terminal for its background instead of reading config files 2026-08-06 16:08:40 +03:00
themes Initial commit 2023-04-30 01:21:51 +03:00
config.fish fish: only read the keychain PAT on systems that have security 2026-08-06 01:23:07 +03:00
fish_plugins switch tide to plttn/tide@v7, as my fix was merged in there 2026-04-05 19:42:28 +03:00