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

Project rewrite (Work in progress, needs testing) #69

Closed
25 tasks done
Tracked by #66
luisbocanegra opened this issue Sep 15, 2024 · 5 comments · Fixed by #66 or #95
Closed
25 tasks done
Tracked by #66

Project rewrite (Work in progress, needs testing) #69

luisbocanegra opened this issue Sep 15, 2024 · 5 comments · Fixed by #66 or #95

Comments

@luisbocanegra
Copy link
Owner

luisbocanegra commented Sep 15, 2024

Tracking the progress of #66

  • Fix lag on Plasma startup
  • Use Kirigami.ShadowedRectangle for backgrounds
  • Fix panel freezing
  • Find Panel Background
  • Find widgets
  • Monitor for count change
  • Background shapes for individual tray elements Would it be possible to add background shapes to individual system tray elements? #33
  • Unify color selection component Same color source options for all elements with color #40
    • New color component logic
  • Control margin on four axis instead of just horizontal and vertical (anchors and Layout attached properties) Offset background #57
    • Fix margin configuration for vertical panels
  • Per widget configuration #70
  • New colorization logic
    • Re-implement background colorization
    • Re-implement foreground colorization
      • Bring back "Force Icon color"
    • Custom color
    • System color scheme
    • Custom color list
    • Follow background (panel, widget, system tray item)
  • Update and move existing options into new Tabs
  • Maybe port existing config files to new format
  • Reload tray area and possibly others when switching panel vertical
  • Fix tray area breaking with some Plasmoid/StatusNotifier (reproducible with NeoChat)
  • Don't auto-load presets when globally disabled
@luisbocanegra luisbocanegra added this to the v1.0.0 milestone Sep 15, 2024
@luisbocanegra luisbocanegra moved this to In progress in plasma-panel-colorizer Sep 15, 2024
@luisbocanegra luisbocanegra linked a pull request Sep 15, 2024 that will close this issue
1 task
@luisbocanegra luisbocanegra pinned this issue Sep 15, 2024
@luisbocanegra luisbocanegra changed the title Project rewrite Project rewrite (Work in progress, needs testing) Sep 15, 2024
luisbocanegra added a commit that referenced this issue Sep 15, 2024
- Use common form for all widgets settings
- Split settings sections separate views and add NavigationTabBar

refs: #69
@luisbocanegra
Copy link
Owner Author

Getting there, static custom/system color should fully now.

Screenshot_20240915_131603

@luisbocanegra luisbocanegra mentioned this issue Sep 15, 2024
1 task
luisbocanegra added a commit that referenced this issue Sep 15, 2024
- Use common form for all widgets settings
- Split settings sections separate views and add NavigationTabBar

refs: #69
luisbocanegra added a commit that referenced this issue Sep 17, 2024
- Move all configuration into a single configuration entry
- Added a method to get the name from a valid widget
- Add enable/blur controls per item and last preset (UI only)

refs: #33 #69
luisbocanegra added a commit that referenced this issue Sep 18, 2024
luisbocanegra added a commit that referenced this issue Sep 18, 2024
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
luisbocanegra added a commit that referenced this issue Sep 19, 2024
This change will allow us to do per widget override of some or all the configuration
Also prepare for automatic cyncing of new configuration options into existing configuration

refs: #70 #69
@luisbocanegra
Copy link
Owner Author

luisbocanegra commented Sep 21, 2024

Per widget override mostly done

Screenshot_20240921_130710

luisbocanegra added a commit that referenced this issue Sep 23, 2024
- Merge current configuration with the default one on launch
- Only change Kirigami.Theme for the children elements as it causes the expanded representations to get these colors otherwise
- Allow configuring a periodic color refresh for widgets that recreate elements so they don't get stuck
- Update configuration structure to allow disabling padding, radius and margin

refs: #69 #70
luisbocanegra added a commit that referenced this issue Sep 23, 2024
luisbocanegra added a commit that referenced this issue Sep 23, 2024
@luisbocanegra
Copy link
Owner Author

Let's merge now, will do the blur in a separate PR

@github-project-automation github-project-automation bot moved this from In progress to Done in plasma-panel-colorizer Sep 25, 2024
@nikoraasu
Copy link

nikoraasu commented Oct 5, 2024

I found the time to finally test this, as I really care about this project.
So, the new UI is a little more complex to understand at first, but overall the new options are great, and after playing around I got the hang of everything.

So for the unified backgrounds. It might be a me, but I would say it's a little confusing.
I had to mess around with it a lot before I understood how it works. I think changing the "start/end" values to something like "Connect to Right/Connect to Left" would make much more sense, as right now I thought I have to put both start and end on two widgets that I wanted to connect, only to realize later that I only had to put "End" on the right most widget that I wanted connected to the one that's on the left.

Also something with unified backgrounds that I think would be great if fixed (though not sure if it's even possible as that might just be how plasma widgets work), is the fact that they offset the widgets around them. What I mean by that, is when I connected these two widgets together
image
I noticed that my clock that is supposed to be centered got offset by like 5 pixels to the left. Noticeable? Probably not, still quite annoying though. I could probably make an override for that but I feel like having to mess around with overrides just to move stuff by pixels every time something is offset by connections is pretty janky.

Adding spacing (including negative spacing, quite sure it'd be impossible to implement though) to overrides would also be pretty useful as right now some of the connected widgets look goofy with them being so far away, and I would like them to be a little closer together (have not yet found a way to do that for just specific widgets, maybe there is a way that I have missed though, let me know!).

Also might be an issue on my side, but the widget is still visible in the panel despite having the option for it to disappear checked.

Overall I think this is a good direction for the widget and many of the options improved customizability of KDE Plasma by a huge huge margin.

Also, I hope my feedback does not come out as demands. I am a developer too and I understand that some things may not be possible to implement or way harder to do than end users think, so that is completely understandable to me.

EDIT: Forgot, having an automated uninstall of the widget when installed from source would be great, as I want to come back to AUR version of the widget instead of having it built from source.

@luisbocanegra
Copy link
Owner Author

I found the time to finally test this, as I really care about this project. So, the new UI is a little more complex to understand at first, but overall the new options are great, and after playing around I got the hang of everything.

Yeah, it's also a bit heavier now (both visually and in code), specially the Appearance tab but I wanted to make it faster to configure things without having to switch between tab/apply/tab too much. The good thing is they all are basically the same component so only a single file needs to be changed most of the time, any suggestions on how to make the layout easier to use are appreciated.

So for the unified backgrounds. It might be a me, but I would say it's a little confusing. I had to mess around with it a lot before I understood how it works. I think changing the "start/end" values to something like "Connect to Right/Connect to Left" would make much more sense, as right now I thought I have to put both start and end on two widgets that I wanted to connect, only to realize later that I only had to put "End" on the right most widget that I wanted connected to the one that's on the left.

Yeah I was thinking of making it so that when one of the "End" was checked it automatically grayed(disabled) out everything in between start and end, but I also think there must be a better UI/UX to implement this.

Initially I had four states `[disabled, start, middle, end] and each widget was assigned a state with disabled being the default all from the settings, while this had a more involved configuration it was easier on the code as widgets didn't have to be aware of the state of the other widgets.

But later I changed it so there is an extra variable that defines [default, start, end], which are exposed to the configuration, less manual configuration but also somewhat buggier as it relies on all widgets refreshing an array of states so the default ones know whether or not they need to be in middle or disabled state. be7ce3a maybe I can go to the previous approach while also making the UI be the one setting the four states with a simpler interface, any suggestions you may have on this are appreciated.

Also something with unified backgrounds that I think would be great if fixed (though not sure if it's even possible as that might just be how plasma widgets work), is the fact that they offset the widgets around them. What I mean by that, is when I connected these two widgets together image I noticed that my clock that is supposed to be centered got offset by like 5 pixels to the left. Noticeable? Probably not, still quite annoying though. I could probably make an override for that but I feel like having to mess around with overrides just to move stuff by pixels every time something is offset by connections is pretty janky.

Hmm, currently all the widgets starting from the second one have an margin on the left, the regular spacing of the GridLayout is set to 0, which allows me to remove the additional margin at the left of widgets with middle and end states making them "connect" with the other widgetss visually. It should be possible to avoid things moving around by leaving the space in-between. Will have to experiment with that as respecting the centering is something I didn't test for.

Adding spacing (including negative spacing, quite sure it'd be impossible to implement though) to overrides would also be pretty useful as right now some of the connected widgets look goofy with them being so far away, and I would like them to be a little closer together (have not yet found a way to do that for just specific widgets, maybe there is a way that I have missed though, let me know!).

I experimented with this for a bit and it seemed possible, if nothing breaks I will expose negative values to the UI.

Also might be an issue on my side, but the widget is still visible in the panel despite having the option for it to disappear checked.

Yes haven't added that code back as I have been using it for quickly debugging random values but will bring it back once I finish working on some other things.

Overall I think this is a good direction for the widget and many of the options improved customizability of KDE Plasma by a huge huge margin.

Thanks! I have so many other ideas to try implementing, had to write them down so I don't forget.

Also, I hope my feedback does not come out as demands. I am a developer too and I understand that some things may not be possible to implement or way harder to do than end users think, so that is completely understandable to me.

It does not, I appreciate constructive, well thought feedback, even if something doesn't seem possible at first glance I like little challenges here an there.

EDIT: Forgot, having an automated uninstall of the widget when installed from source would be great, as I want to come back to AUR version of the widget instead of having it built from source.

Yeah, there are some install_manifest.txt files in the build folder you can check and remove the folders manually

/usr/lib/qt6/qml/org/kde/plasma/panelcolorizer/
/home/$USER/.local/share/plasma/plasmoids/luisbocanegra.panel.colorizer/
/home/$USER/.local/share/metainfo/luisbocanegra.panel.colorizer.appdata.xml

Making a uninstall script should be straight forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
2 participants