Issue on day/night theme switching

I’ve been testing the automatic theme switching that has been annonced here : This Week in Plasma: day/night theme switching - KDE Blogs

I find that it is a very nice and usefull adition and it’s a very good job.

However it is frustrating that it overide every themes (color sheme, plasma theme, icon theme…) because there might not have a global theme that match every combination (eg: everything Breeze except the icon theme which is from another theme).

I suggest to add the ability to the user to combine the diffrents assets they want to make there own global theme and then be aplied by automatic theme switching.

2 Likes

Right now, I think Konsave is the most robust solution.

I do think, however, Plasma should have an option to save the Global Theme, with the option via check-boxes and possibly even an accessible config file (in case extra paths need including) to say what’s explicitly included or excluded.

I think you misunderstood what I’m talking about. I’m mentioning this feature that is not released yet that i tested (see link above) :

It allows automatic change of global themes according to a day/night cycle. The problem is that you can only change between the whole global themes and not chose individualy what part of the theme you want to change (eg: only change the color sheme but not the icon theme)The solution i suggest is to let users make there own combination of theme assets into a user defined global theme that can be applied for automatic switching.

Ah, I just read the title and thought that the title would be your issue.

I thought (and still do) that you were saying this:

I suggest to add the ability to the user to combine the diffrents assets they want to make there own global theme

When talking about “assets” i mention pre-installed or user installed plasma theme, icon theme, color shemes, window decoration…

I’m not talking about saving configuration or sharing it, just about allowing user defined global theme.

Even though Konsave look intresting, it look a bit abandonned/dormant on the github page.

Ok, we’re speaking a different language.

I want to apply my theming, I want to make Konsole creamy, and have a nice light creamy theme for Kitty, apply a creamy colour scheme, with a nice cursor/icons and a functional layout… then I want to save that. How is this not ‘user defined Global Theme’?

Currently I can use Konsole to save ‘creamy’ and ‘dim’ themes (which is more comprehensive than the Plasma GLOBAL THEME as I can add my own things in the configuration which isn’t available with Global Themes).

I would prefer to be able to save my ‘current setup’ as a Global Theme… one that is ‘defined by the user’.

Obviously you could not save things to your custom Global Theme that don’t exist on the system.

This isn’t available out of the box, you would need to install the ‘Plasma Look and Feel Explorer’ on Plasma 5, but it was retired with Plasma 6.

Hence my comment that Konsave is the best solution to this problem. Konsave could be scripted to offer you a way to do what you like.

Otherwise, you have to manually learn how to create your own ‘custom Global Theme’ - the metadata.json, defaults, layouts, previews.

The advantage with konsave is that you can also configure it to include more than the basic theme; for example, if you use Kitty terminal you can include your current-theme.conf.

Imagine someone developed a package which can read a configuration file, then perform:
‘cp ~/backup/dim.colors ~/.local/share/color-schemes/current.colors’

How much activity and maintenance do you think this would require?

It works.

Unless i misunderstood, you apply that theme you not define it. When is say user defined theme, i’m talking to a way to create a global theme (in systemsettings) as a user by picking the diffrents themes elements as listed bellow :

I suggest this as a potential solution to the following problem :

There a new feature comming in Plasma 6.5 that i tested. This feature allow to automaticly switch global theme according to day/night cycle. However i can’t pick the global theme’s element individualy so i’m stuck with Breeze, Breeze Twilight, Breeze Dark and other global themes i can install from knewstuff.

Of course this is a suggestion and maybe there a better alternative but allowing the user to make global theme in systemsettings is the best i found.

P.S. : As for Konsave, it’s a general purpos config saving tool so it’s irrelevant in this topic.

Running in circles here.

You stated your problem thus: You can only switch between entire, prepackaged “Global Themes” which is frustrating as you might want a custom combination.

Hence the title “Allow users to make global themes”.

Thus you could create your own Global Themes ‘Day’ and ‘Night’ for yourself and switch them using the day/night switching.

The PROBLEM here is that you cannot set up your theme settings and save that as a Global Theme.

I think this is a conflict of the idea of ‘dark/light’ as a general option, which fundamentally ignores finer tuning options (same with phones - it’s ‘dark mode’ or ‘light mode’ and you can’t define those modes).

In trying to emulate this system, we lose theming options. We could improve this by allowing a USER to define their ‘Global Theme’. The way that I do this is by using Konsave - because ‘creating a global theme’ is pretty much the same thing.

To suggest that a ‘general purpose config saving tool’ is irrelevant is odd - as what you are suggesting is that you want your ‘day/night’ switching to apply more finely tuned options.

This could be achieved thus:

  • Konsave create ‘global theme’ named “Day”
  • Konsave create ‘global theme’ named “Night”
  • at 6am, konsave applies “Day”
  • at 6pm, konsave applies “Night”.

You could achieve that with systemd timers for any number of theme options…

Allow users to make Global Themes

This is actually allowed, but not with a GUI ‘Save New Global Theme’ button. So you can totally choose your own Global Themes and apply them, noting that every element of those themes will be applied; so you should define your Global Theme accordingly…

[General]
name=Daytime
colorScheme=Marble
widgetStyle=Breeze
icons=Breeze
cursorTheme=Chameleon-SkyBlue
plasmaTheme=Breeze

[General]
name=Night-time
colorScheme=Dracula
widgetStyle=Breeze
icons=Breeze
cursorTheme=Dracula-cursors
plasmaTheme=Breeze

What’s occuring here is a massive over-complication though.

For ‘Day/Night’ switching, I would propose that a simple colour change is the answer…

So 6am, plasma-apply-colorscheme Day-Time then at 6pm plasma-apply-colorscheme.

So this is more in line with the suggestion of a ‘Day/Night’ switcher rather than a periodic complete theme profile changer.

This was a feature back in KDE 4, or rather for some elements of Plasma Styles, for mixing and matching. It was wonderful but also very often broken or glitchy.

Now, a GUI for assembling a Global Theme probably is not difficult, considering that this is mostly just some text files….

…..and I forgot all about the Global Theme Explorer app in Plasma SDK which might be useful, at least for experimentation.

2 Likes

Have you tested the feature i’m talking about ? I strongly recommend that you make a VM with KDE Neon/Linux with the dev chanel and test it out. Mess aroud with the Switch to Dark Mode at Night option and you will see that if you set a custom plasma style, icon theme or whatever, it get overided when the theme change.

Also my suggestion to let users make global themes is just a solution to that problem and there might be better ones.

Sorry if i didn’t made it clearer earlier.

Edit: I also changed the name and the categorie of the topic

I was never interested in the ‘Dark Mode’ settings - it seems more of a dumbed down idea for people who can’t get their head around ‘color schemes’.

I would be more inclined to simply apply a colourscheme that suits my taste - usually I use one dim, and another lighter/creamier (though not ‘light’ in the general sense - as in your screenshot). When I do choose a colourscheme, I must use Konsave - because software like Kate and Kitty have to change also, otherwise it gets messy.

I’m set up for a dark theme, so if I go light, I have a LOT of configurations to change to make it work - and Global Theme doesn’t come close (though it would mess up my cursors/windows etc).

The quick settings has Breath Light and Dark as defaults, but I don’t use those colours at all.

Have you at least tested what i am talking about or read the blog post ?

It’s more a question of theme automaticly switch from day to night than a light and dark theme.

I read it, you can automatically switch, but only Global Themes… and you can’t save your own settings as a Global Themes in the GUI.

Hence I suggest it’s still better to use Konsave with a script if you need that… or even just use a command to switch the colours if you don’t need to change the cursors/icons/other stuff.

Konsave is completly out of topic. There is now a way to do it in systemsetings as GUI.

I’m talking about an issue whith the said GUI not how to do it from alternatives means. If you want to say how much Konsave is a great tool do it on Tips and Tricks.

But if you have any suffestion to improve the current sittuation before 6.5 release your welcome to do so.

It could be a good begining, just need to remove non-vital forms like e-mail or the liscence (a standard user don’t need to mess with that anyway) and give the ability to manualy edit the diffrents component after the global theme’s creation.

I also have an other suggestion :

Like standard global theme switching, add a list of thigs to apply and if a component is not selected, it’s simply don’t get overrided when day/night state change.

The Global Theme Explorer can be used to save your current setup as a unique global theme.

I know it is not 100% ideal, considering it is not a default part of the desktop, but for those of us who don’t/won’t simply switch between lite and dark Global theme (what this is essentially intended for) it should do what we want for this more niche thing.

1 Like

I tested it and it kinda work thanks for that !

We should maybe make a “consumer version” inside of systemsettings to let everyone make there own presets.

1 Like

Getting back on topic here…

@the-entropyst what you’re basically wanting is for this feature to only switch color schemes, not global themes. Others have expressed interest in this too, and I can see how it would be better for people who customize some but not all things, and where there’s no global theme that perfectly encapsulates the desired customizations.

Other than the effort required to do implement it, there’s one big blocker to only switching color schemes: icon-theme-aware GTK apps. If you use the Breeze icon theme but the Breeze Dark color scheme, then the icons re-color properly in KDE apps but not GTK apps, because KDE and GTK use different mechanisms for icon re-coloration. To work around this, you need to apply the Breeze Dark icon theme, which is identical to the Breeze icon theme, except the base/fallback color of the icons is light, not dark. This way, the light-colored icons are legible even in dark apps that can’t re-color KDE’s icons.

And how do you apply both a color scheme and an icon theme at the same time? A global theme! :smiley: So that’s why it currently works the way it does.

2 Likes

Thank you for you answer.

Another sugestion that would solve the GTK problem is to add the ability as a user to create global themes from it’s current config similar to what is doing Plasma Global Theme Explorer but not targeted toward themes creators.

I am concern that if it get released in this current state, peoples get upset because they can’t apply there own combination.

Is this resonable or it would be hard to implement for 6.5 ?

Yes, being able to easily save your current settings as a global theme is a good idea. Nobody is against it, it just hasn’t been done yet.

It’s getting pretty late for 6.5. The soft feature freeze is is only 6 days.