Description
Motivation
My initial impulse for this is that I use both backlight
and hueshift
, and it'd be nice for them to behave the same way, but they don't. I mean, on one, I left-click continually to cycle
through a set of target values, and on the other I left-click to set
one value, and then right-click to reset
to the default. I can never remember which is which, and it's a minor annoyance.
Looking at the code to try to fix this, I find that there is a lot of copy-and-paste across blocks. Each block is responsible for handling its configuration options from scratch with no support for common patterns like cycle
, incr-/decrementing a value with the scroll wheel, toggling a format, etc. Search the code for toggle
to see what I mean.
Related issues
- It seems no warning_cpu/critical_cpu values can be set #1915 (create a common way to designate widget state based on a numeric value within a certain range)
Proposal
I propose to start small, focused on my original motivation, and refactor the cycle
feature of backlight and the set
/reset
feature of hueshift so they both work identically. The handlers for common settings could be in src/settings.rs
. If this is successful, then piece by piece other parts can be factored out as desired.