Solaar/lib/logitech_receiver
Ken Sanislo dad3aa24a7 Add basic headset RGB support (HeadsetRGBHostMode + HeadsetRGBColor)
First pass at controlling the G522's RGB LEDs via feature 0x0620
HEADSET_RGB_HOSTMODE. Exposes two settings:

1. headset-rgb-hostmode — boolean toggle for SetHostModeState
   (function 8). Turning this on claims LED control; off returns
   control to firmware effects.

2. headset-rgb-color — preset color chooser (Off, Red, Green, Blue,
   White, Yellow, Cyan, Magenta, Orange, Purple). On write it enables
   host mode, queries zone IDs via GetRGBZoneInfo (function 1), calls
   SetRgbZonesSingleValue (function 5) with the chosen RGB, then
   commits via FrameEnd (function 6). "Off" issues SetHostModeState(0)
   only.

Protocol reference: ~/ghub/LOGITECH_HIDPP2_PROTOCOL.md functions on
0x0620. We skip the SetSWControl on 0x0600 step because the G522
doesn't expose 0x0600. If the device rejects host-mode writes without
that prerequisite we'll add it back.

Falls back to zones 0x01/0x02 (typical left/right earcup) if
GetRGBZoneInfo returns an unexpected format.
2026-04-17 17:08:56 -07:00
..
__init__.py Refactor: Distinguish module from package 2024-09-15 09:18:51 -04:00
base.py Tighten Centurion probe and silence FeaturesArray query spam 2026-04-16 22:46:10 -07:00
base_usb.py cli: allow to change LED settings 2025-12-21 18:03:53 -05:00
centurion.py Fix FeatureNotSupported crash on pending CenturionReceiver 2026-04-16 09:35:57 -07:00
centurion_constants.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
common.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
descriptors.py Add G522 LIGHTSPEED headset support (Centurion 0x50 transport variant) 2026-04-14 10:52:08 -07:00
desktop_notifications.py testing: upgrade desktop notifications tests to take notifications availability into account 2025-01-02 10:47:53 -05:00
device.py Guard Centurion feature lookups against HID++ 2.0 enum collisions 2026-04-16 23:36:47 -07:00
diversion.py rules: remove use of XTest and use uinput in all cases 2026-03-08 20:58:43 -04:00
exceptions.py Use double quotes for module level docstrings 2024-06-02 09:54:21 -04:00
hidpp10.py cli: Fix crash when showing notification flags. (#3070) 2025-12-12 04:54:10 -05:00
hidpp10_constants.py device: Fix crash in NotificationFlag.flag_names when flags is None (#3185) 2026-04-13 12:46:43 -04:00
hidpp20.py Use per-index queries for Centurion sub-device feature enumeration 2026-04-17 10:22:50 -07:00
hidpp20_constants.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
i18n.py Unify imports in logitech package 2024-05-23 16:42:18 -04:00
listener.py Add G522 LIGHTSPEED headset support (Centurion 0x50 transport variant) 2026-04-14 10:52:08 -07:00
notifications.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
onboard_eq.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
receiver.py udev: correctly re-raise access exception 2025-10-17 19:41:23 -04:00
settings.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
settings_new.py settings: add setting for HAPTIC feature 2025-11-12 14:50:46 -05:00
settings_templates.py Add basic headset RGB support (HeadsetRGBHostMode + HeadsetRGBColor) 2026-04-17 17:08:56 -07:00
settings_validator.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
special_keys.py device: add special keys from Logitech 2025-10-16 20:57:15 -04:00