Solaar/lib/logitech_receiver
Ken Sanislo 7c7666466a headset RGB: honor explicit black (0) onboard-effect colors
_HeadsetOnboardEffect.__init__ seeded per-effect defaults for any
field that was falsy, so a Static color1 of 0x000000 (black) was
treated as unset and overwritten with the white default — setting the
onboard color to black turned the LEDs white instead of off.

Switch the constructor to None-sentinel defaults: a field is seeded
from _DEFAULTS only when genuinely absent (None), so an explicit 0 is
honored. The UI's get_value() always passes explicit values, and a
fresh effect-pick seeds its RANGE widgets UI-side via _apply_id_defaults,
so animated effects still get sane defaults.

Reported by @rouderz on PR #3181.
2026-05-21 10:13:00 -04:00
..
__init__.py
…
advanced_para_eq.py
…
base.py
…
base_usb.py
…
centurion.py
…
centurion_constants.py
…
common.py
…
descriptors.py
…
desktop_notifications.py
…
device.py headset RGB: fix G522 allowlist key — model byte is 0x32, not 0x33 2026-05-21 10:13:00 -04:00
device_quirks.py headset RGB: fix G522 allowlist key — model byte is 0x32, not 0x33 2026-05-21 10:13:00 -04:00
diversion.py
…
exceptions.py
…
headset_rgb.py
…
hidpp10.py
…
hidpp10_constants.py
…
hidpp20.py
…
hidpp20_constants.py
…
i18n.py
…
listener.py
…
logivoice.py
…
notifications.py
…
onboard_eq.py
…
receiver.py
…
rgb_effects_probe.py
…
rgb_power.py
…
settings.py
…
settings_new.py
…
settings_templates.py headset RGB: honor explicit black (0) onboard-effect colors 2026-05-21 10:13:00 -04:00
settings_validator.py
…
special_keys.py
…