diff --git a/Modules/Settings/Tabs/ColorSchemeTab.qml b/Modules/Settings/Tabs/ColorSchemeTab.qml index 8a132d92..22f403f4 100644 --- a/Modules/Settings/Tabs/ColorSchemeTab.qml +++ b/Modules/Settings/Tabs/ColorSchemeTab.qml @@ -79,7 +79,7 @@ ColumnLayout { if (exitCode === 0) { // Matugen exists, enable it Settings.data.colorSchemes.useWallpaperColors = true - AppThemeService.generateFromWallpaper() + AppThemeService.generate() ToastService.showNotice(I18n.tr("settings.color-scheme.color-source.use-wallpaper-colors.label"), I18n.tr("toast.wallpaper-colors.enabled")) } else { // Matugen not found @@ -195,9 +195,8 @@ ColumnLayout { onSelected: key => { Settings.data.colorSchemes.matugenSchemeType = key - if (Settings.data.colorSchemes.useWallpaperColors) { - AppThemeService.generateFromWallpaper() - } + + AppThemeService.generate() } } @@ -391,8 +390,7 @@ ColumnLayout { checked: Settings.data.templates.gtk onToggled: checked => { Settings.data.templates.gtk = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } @@ -404,8 +402,7 @@ ColumnLayout { checked: Settings.data.templates.qt onToggled: checked => { Settings.data.templates.qt = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -430,8 +427,7 @@ ColumnLayout { onToggled: checked => { if (ProgramCheckerService.kittyAvailable) { Settings.data.templates.kitty = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -449,8 +445,7 @@ ColumnLayout { onToggled: checked => { if (ProgramCheckerService.ghosttyAvailable) { Settings.data.templates.ghostty = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -468,8 +463,7 @@ ColumnLayout { onToggled: checked => { if (ProgramCheckerService.footAvailable) { Settings.data.templates.foot = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -495,8 +489,7 @@ ColumnLayout { onToggled: checked => { if (ProgramCheckerService.fuzzelAvailable) { Settings.data.templates.fuzzel = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -514,8 +507,7 @@ ColumnLayout { onToggled: checked => { if (ProgramCheckerService.vesktopAvailable) { Settings.data.templates.vesktop = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -533,8 +525,7 @@ ColumnLayout { onToggled: checked => { if (ProgramCheckerService.pywalfoxAvailable) { Settings.data.templates.pywalfox = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } @@ -553,8 +544,7 @@ ColumnLayout { checked: Settings.data.templates.enableUserTemplates onToggled: checked => { Settings.data.templates.enableUserTemplates = checked - if (Settings.data.colorSchemes.useWallpaperColors) - AppThemeService.generateFromWallpaper() + AppThemeService.generate() } } } diff --git a/Services/AppThemeService.qml b/Services/AppThemeService.qml index fc54ed19..21426aa6 100644 --- a/Services/AppThemeService.qml +++ b/Services/AppThemeService.qml @@ -63,10 +63,6 @@ Singleton { } }) - function init() { - Logger.log("AppThemeService", "Service started") - } - Connections { target: WallpaperService function onWallpaperChanged(screenName, path) { @@ -80,9 +76,20 @@ Singleton { target: Settings.data.colorSchemes function onDarkModeChanged() { Logger.log("AppThemeService", "Detected dark mode change") - if (Settings.data.colorSchemes.useWallpaperColors) { - generateFromWallpaper() - } + AppThemeService.generate() + } + } + + // -------------------------------------------------------------------------------- + function init() { + Logger.log("AppThemeService", "Service started") + } + + function generate() { + if (Settings.data.colorSchemes.useWallpaperColors) { + generateFromWallpaper() + } else { + generateFromPredefinedScheme() } } @@ -131,11 +138,10 @@ Singleton { handleTerminalThemes() const isDarkMode = Settings.data.colorSchemes.darkMode - const colors = schemeData[isDarkMode ? "dark" : "light"] + const mode = isDarkMode ? "dark" : "light" + const colors = schemeData[mode] const matugenColors = generatePalette(colors.mPrimary, colors.mSecondary, colors.mTertiary, colors.mError, colors.mSurface, isDarkMode) - - const mode = isDarkMode ? "dark" : "light" const script = processAllTemplates(matugenColors, mode) generateProcess.command = ["bash", "-lc", script]