pulsar-mouse: make the per-state widget colors configurable (#336)

* pulsar-mouse: make the per-state widget colors configurable

Both widgets hardcoded their state colors: error for a fault, secondary
while charging, error at the mouse's low-power threshold. The desktop
widget's one `color` setting only covered the normal state, and the bar
widget had no color setting at all.

Expose all four states (normal/charging/low/error) as `type = "color"`
settings on each widget, in the same shape battery-widget uses. Defaults
reproduce exactly what was hardcoded, so an existing install renders
identically until someone changes one.

The new settings are `advanced`; the desktop widget's pre-existing
`color` stays where it was so it does not disappear behind the toggle
for anyone already using it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* pulsar-mouse: rename the bar's normal-state key to normal_color

A bar widget's plugin settings share one TOML table with Noctalia's own
per-widget presentation settings, where `color` already exists ("Color
role for this widget's icon and label"). A plugin declaring `color`
there does not shadow it, it aliases it - one `color = "primary"` under
[widget.<id>] drove both pickers at once, so setting either silently
moved the other.

Renamed to `normal_color`, which also makes the retest unambiguous: the
glyph follows the plugin setting while Presentation's own Color picker
stays on Default.

The desktop widget keeps plain `color` - no clash there, and renaming it
would break existing configs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
harveywuk
2026-08-11 11:28:30 -04:00
committed by GitHub
co-authored by Claude Opus 5
parent a7581e8a1c
commit 13bde174ad
5 changed files with 132 additions and 16 deletions
+16
View File
@@ -1,18 +1,34 @@
{
"settings": {
"charging_color": {
"description": "Used while the mouse is charging",
"label": "Charging Color"
},
"color": {
"description": "Accent color for the percentage text and progress bar",
"label": "Color"
},
"error_color": {
"description": "Used when the mouse or the pulsar-mouse CLI can't be found",
"label": "Error Color"
},
"glyph_size": {
"label": "Glyph Size"
},
"normal_color": {
"description": "Glyph color at a normal battery level, and on a wired mouse",
"label": "Normal Color"
},
"show_percent": {
"description": "Turn off to rely on just the glyph (and progress bar, if shown)",
"label": "Show Percentage Text"
},
"show_progress": {
"label": "Show Progress Bar"
},
"warning_color": {
"description": "Used at or below the mouse's Low Power Mode threshold",
"label": "Low Battery Color"
}
},
"ui": {