Reported symptom: Electron applications and a Chromium-based browser, all set to follow the system, went light when the desktop went light and never came back. Nothing reported an error, and the portal was serving the correct value the whole time. Cause: ColorScheme set gtk-theme to "Adwaita-dark" for dark and "Adwaita" for light. Neither is installed on Fedora 44 -- only adw-gtk3 and adw-gtk3-dark are. GTK responds to an unknown theme name by falling back to its built-in default, which is LIGHT. So asking for light worked by accident, asking for dark silently produced light, and anything that takes its cue from the GTK theme rather than the portal stayed light no matter what org.freedesktop.appearance said. Verified: the portal emits correctly in both directions, so this was never the portal's fault. Second cause, the mirror of the first: gtk-3.0/settings.ini and gtk-4.0/settings.ini were pinned to adw-gtk3-dark and prefer-dark=1 and never regenerated. Under GNOME that file is ignored because gnome-settings-daemon publishes over XSETTINGS; under Hyprland nothing does, so for GTK3 it is authoritative -- and it contradicted the scheme in light mode. They are now generated from a template on every switch, gitignored as machine state, and seeded by link-dotfiles, the same shape kitty's current-theme.conf already uses. These directories are symlinked into the repository, so writing the live file directly would dirty the working tree on every theme switch. The failure was silent by construction, so it gets a test rather than a comment: gtk-theme-contract asserts every theme name Panama sets is actually installed, and that the generated GTK config agrees with the scheme in both directions. Verified it catches both original bugs. Claude-Session: https://claude.ai/code/session_01BRvzt4H8XXLPVH5MyYdk9L
23 lines
688 B
Plaintext
23 lines
688 B
Plaintext
# Ignore bash environment variables.
|
|
/config/bash/env
|
|
# Ignore backups of old config files
|
|
/config/old
|
|
# Ignore Wireguard config of course!
|
|
/config/wg/**
|
|
# Ignore Neovim lazy-lock file
|
|
/config/dot/nvim/lazy-lock.json
|
|
# Local visual-companion sessions and generated design mocks.
|
|
/.superpowers/
|
|
# Local linked worktrees used for reviewed feature development.
|
|
/.worktrees/
|
|
# Python helper bytecode is local runtime state.
|
|
__pycache__/
|
|
*.py[cod]
|
|
|
|
# Generated from the colour scheme; machine state, not configuration.
|
|
/config/dot/kitty/current-theme.conf
|
|
|
|
# Generated from the colour scheme; machine state, not configuration.
|
|
/config/dot/gtk-3.0/settings.ini
|
|
/config/dot/gtk-4.0/settings.ini
|