Jump to content

Plasma/RepeatedDiscussions/AutoThemeSwitching

From KDE Community Wiki

Plasma 6.5 includes a feature to switch global themes at different times of day. People often ask why this feature operates on global themes rather than Color Schemes.

The primary reason is because only changing the color makes color-scheme-aware icons in KDE-aligned icon themes (like Breeze) look wrong in GTK apps.

Why? Because such icons change color based on the color scheme… but only in Qt-based apps run on Plasma.

Why? Because the mechanism by which symbolic icons change their colors isn't standardized. KDE does it one way and GTK does it another way; each of them has their own icon loading code that only knows how to re-color re-colorable icons using their own approach. Qt apps run in Plasma (including KDE apps, of course) use KDE's icon loader; GTK apps using the GTK icon loader.

This means the color-scheme-aware icons in a KDE-aligned icon theme will only change their colors when displayed in Qt apps run in Plasma (including KDE apps, of course) using the KDE icon loader. These icons will not change their colors in GTK apps using the GTK icon loader. This can make them all become invisible with incompatible combinations such as the Breeze icon theme (dark base icon color) in a dark GTK app (dark background color).

There's a simple workaround: switch to an icon theme with a base color that's guaranteed to be visible even if the re-coloration mechanism isn't working. For example, the Breeze Dark icon theme contains re-colorable icons that use a light base color, so even if they don't change color properly, they'll still be visible against a dark background in a GTK app.

How would you make the icon theme change to Breeze Dark when the color scheme becomes dark? By using a global theme! So that's the biggest reason why the feature does just this.