From 428a7ad0c25bf1903a9cf469ccd8751a5d725115 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 1 Mar 2026 14:15:15 +0800 Subject: [PATCH] Prioritize user ColorScheme over system dark mode setting Refactored dark mode logic to first use user's ColorScheme preference when "SystemBG" is set to "Auto". Only falls back to system dark mode setting if ColorScheme is not explicitly set to "Dark" or "Light". This ensures user preferences take precedence over system defaults. --- Flow.Launcher.Core/Resource/Theme.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Flow.Launcher.Core/Resource/Theme.cs b/Flow.Launcher.Core/Resource/Theme.cs index ca30d6b5b..099d46780 100644 --- a/Flow.Launcher.Core/Resource/Theme.cs +++ b/Flow.Launcher.Core/Resource/Theme.cs @@ -963,12 +963,8 @@ namespace Flow.Launcher.Core.Resource // Check the user's ColorScheme setting var colorScheme = _settings.ColorScheme; - // Check system dark mode setting (read AppsUseLightTheme value) - int themeValue = (int)Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme", 1); - bool isSystemDark = themeValue == 0; - // Final decision on whether to use dark mode - bool useDarkMode = false; + var useDarkMode = false; // If systemBG is not "Auto", prioritize it over ColorScheme and set the mode based on systemBG value if (systemBG == "Dark") @@ -983,11 +979,20 @@ namespace Flow.Launcher.Core.Resource { // If systemBG is "Auto", decide based on ColorScheme if (colorScheme == "Dark") + { useDarkMode = true; + } else if (colorScheme == "Light") + { useDarkMode = false; + } else + { + // Check system dark mode setting (read AppsUseLightTheme value) + var themeValue = (int)Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme", 1); + var isSystemDark = themeValue == 0; useDarkMode = isSystemDark; // Auto (based on system setting) + } } // Apply DWM Dark Mode