Closed pallaswept closed 2 months 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.
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.
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.
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.
Added support for this in the rewrite branch, managed to do the option 2.
Also as I mentioned previously the colorization is not perfect and adds some jagged edges to the colorized elements, specially bad on text. So I am considering whether it should only affect non-symbolic icons and other non-text elements.
Additionally, because for things like the Task Manager widget, where icons are added/removed all the time there will be, at least for now, a periodic refresh for all the widgets this feature is enabled for.
In the rewrite I managed to reduce the dependency on timers by a great amount (using signals and bindings) so hopefully will figure how to do this without wasting much CPU.
There is no estimate for when 1.0.0 will be ready but hopefully in the upcoming weeks, roadmap here
Amazing!
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):
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!