luisbocanegra / plasma-panel-colorizer

Fully-featured widget to bring Latte-Dock and WM status bar customization features to the default KDE Plasma panel
https://store.kde.org/p/2130967
GNU General Public License v3.0
109 stars 0 forks source link

FR: Colorize application icons in Task Manager #55

Open pallaswept opened 3 weeks ago

pallaswept commented 3 weeks ago

Pardon me if this ought to be in #12, I am unsure and thought I'd put it here to avoid derailing.

So, I'd love it if I could colorize these (for all apps, not just this one): image

I've been using a greyscale icon theme system-wide for some time - I don't even mind the colored icons in general, I just can't deal with a bag of brightly colored sprinkles across the bottom of my screen 24/7. But it's unmaintained, broken by plasma 6, forking and modding something like breeze is a huge job, and so I'm a bit stuck... It'd be AWESOME if I could just colorize them in the Task Manager and use stock breeze so everything works, while I manage to minimize distracting UI elements.

Obviously these aren't monochrome to start with like the symbolic icons, so when I say 'colorize', I guess I mean some kind of filtering, to bring the colored icons to a greyscale (which can then obviously be tinted to actual colors)? I have a feeling you'll already know what I mean :)

Cheers!

luisbocanegra commented 3 weeks ago

This may be possible using MultiEffect.

But I am not sure where the effect should be applied.

Option 1

Since I create the background rectangles (even if the feature is not enabled, they're just transparent) I could apply the effect there but the whole widget will have the color effect, that is any icon/text inside (the custom widget background color isn't affected).

Option 2

But I also loop through all the widgets to apply text/icons color, currently since I just recolor (edit their color property or isMask for non-symbolic icons) there is no need to keep track of which have been recolored. But will be needed in case I want to use MultiEffect, because the recolor is updated periodically so new elements that may appear are colored, this will cause the effect to be applied multiple times so I either will have to figure a way to check if the element has been recolored already or not.

Personally I would go with 2 because the recoloring this way is inferior to color replacement (e.g causes reduced quality of text and I am also pretty sure it will also be inconsistent with elements recolored the normal way, so the lesser it is used the better.

I think it can be added as an additional recoloring of "Force icon colors" option.

That said. It will probably take me some time to add this as I've been busy IRL and want to work on other issues before I tackle this one.

pallaswept commented 3 weeks ago

That sounds great, and I agree. It does sound like a kinda large FR, so please do take as long as you need, or if it's too much or too far out of line with the intention, I will understand if you'd rather not.

RomanKode commented 2 weeks ago

I would like to point out to something similar, but it would be amazing to have this feature in this widget. https://github.com/NicklasVraa/Color-manager that project does something similar to what is being requested and would be awesome to see it implemented and since @luisbocanegra also makes the KDE Material You widget, maybe it's about time to fully integrate all of it.

The project I just linked could serve as an inspiration for this and the rest of the projects.

pallaswept commented 2 weeks ago

I would like to point out to something similar ... https://github.com/NicklasVraa/Color-manager

Sorry to bother you with notifications but I had to say thanks for this tip!

Slightly off-topic, but kinda not - I read yesterday that KDE are currently working on the replacement for breeze, including a new theming engine and such - so it might even make sense to hold off on something like this.