From ed117eb94cfedbeabd4f045502f556774dd0191c Mon Sep 17 00:00:00 2001 From: Lysec Date: Thu, 2 Apr 2026 10:53:19 +0200 Subject: [PATCH] fix(theming): always sync prefer-light/dark with system theme toggle Issue: #2357 --- Scripts/python/src/theming/gtk-refresh.py | 6 +++--- Services/Theming/ColorSchemeService.qml | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Scripts/python/src/theming/gtk-refresh.py b/Scripts/python/src/theming/gtk-refresh.py index 40b67e29d..be21bbc5a 100644 --- a/Scripts/python/src/theming/gtk-refresh.py +++ b/Scripts/python/src/theming/gtk-refresh.py @@ -178,9 +178,9 @@ async def main(): await sync_system_appearance(mode, update_gtk_theme=True) print("GTK colors applied successfully") else: - # CSS setup failed; still align gsettings (color-scheme + gtk-theme when themes exist) - # so apps do not end up with mismatched prefer-dark vs adw-gtk3 (inverted look). - await sync_system_appearance(mode, update_gtk_theme=True) + # Still push light/dark preference so portal/GTK apps follow the shell even when + # gtk.css / noctalia.css setup failed. + await sync_system_appearance(mode, update_gtk_theme=False) sys.exit(1) diff --git a/Services/Theming/ColorSchemeService.qml b/Services/Theming/ColorSchemeService.qml index e2dae7223..9348fe4c1 100644 --- a/Services/Theming/ColorSchemeService.qml +++ b/Services/Theming/ColorSchemeService.qml @@ -18,15 +18,12 @@ Singleton { property string colorsJsonFilePath: Settings.configDir + "colors.json" readonly property string gtkRefreshScript: Quickshell.shellDir + "/Scripts/python/src/theming/gtk-refresh.py" - // GTK template: post_hook runs gtk-refresh after CSS; skip here to avoid a second, early run. - // No GTK template: sync updates org.gnome.desktop.interface when the user enables it. + // prefer-light/prefer-dark only; GTK template post_hook still runs full gtk-refresh. function pushSystemColorScheme() { if (!Settings.data.colorSchemes.syncGsettings) return; - if (TemplateProcessor.isTemplateEnabled("gtk")) - return; const mode = Settings.data.colorSchemes.darkMode ? "dark" : "light"; - Quickshell.execDetached(["python3", gtkRefreshScript, mode]); + Quickshell.execDetached(["python3", gtkRefreshScript, "--appearance-only", mode]); } Connections {