Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FR: Colorize application icons in Task Manager #55

Closed
pallaswept opened this issue Jun 9, 2024 · 6 comments · Fixed by #95
Closed

FR: Colorize application icons in Task Manager #55

pallaswept opened this issue Jun 9, 2024 · 6 comments · Fixed by #95
Labels
enhancement New feature or request
Milestone

Comments

@pallaswept
Copy link

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
Copy link
Owner

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.

@luisbocanegra luisbocanegra added the enhancement New feature or request label Jun 9, 2024
@pallaswept
Copy link
Author

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
Copy link

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
Copy link
Author

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.

@luisbocanegra
Copy link
Owner

luisbocanegra commented Sep 17, 2024

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

Screencast_20240917_152819.webm

luisbocanegra added a commit that referenced this issue Sep 19, 2024
- Only apply color effect method to icons
- Insert the color effect behind the target to avoid the warning `Texture 0x7b6479672b00 () used with different accesses within the same pass, this is not allowed`
- Always keep the correct color order for custom color list

closes: #55
refs: #69
@github-project-automation github-project-automation bot moved this from Backlog to Done in plasma-panel-colorizer Sep 19, 2024
@pallaswept
Copy link
Author

Amazing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants