dotfiles/private_dot_config/private_fish
Anton Volnuhin 9e2667f8fe kitty: capture theme choices however the kitten was launched
Saving a theme stopped sticking: the choice was captured only by the fish
`kitten` wrapper, so `kitty +kitten themes`, a keybinding or any non-fish
shell wrote <appearance>-theme.auto.conf directly and the next regeneration
overwrote it from theme-modes. The dark slot had already lost a pick that
way -- dark-theme.auto.conf held #0d0f31 while canonical dark said #2b2c2e.

Move the capture into apply-theme-mode.sh, which every path runs. It records
a cksum of each generated file after the repair step; on the next run a file
whose checksum differs was written by something else, so it becomes canonical
for that appearance. With no state recorded yet nothing is adopted, so a
first run cannot mistake a pinned mode's duplicated files for real choices.

The fish wrapper keeps only its useful part: re-apply the mode and reload so
the change shows at once.

theme-modes/dark.conf is the recovered #0d0f31 (1984). Covered by a new case
in tests/test_theme_mode.sh that writes the theme file with no shell involved.
2026-08-06 04:42:59 +03:00
..
conf.d kitty: remember the light/dark mode across restarts 2026-08-06 01:49:45 +03:00
functions kitty: capture theme choices however the kitten was launched 2026-08-06 04:42:59 +03:00
private_tests fish, kitty: follow terminal light theme 2026-07-27 20:20:38 +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