Skip to content

Normalize common behavior configs between blocks #1975

Open
@softmoth

Description

@softmoth

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

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cleanupCode refactoring and such

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions