Solaar/lib/logitech_receiver
Ken Sanislo 8bdb49feec Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime
Replace the hardcoded descriptor entry with dynamic discovery of all device
properties via the Centurion protocol. The headset name, kind, serial,
firmware, and battery are now probed at runtime — matching how the device
actually presents itself rather than relying on static data.

Key changes:
- Discover sub-device features via CentPPBridge and route requests through
  the bridge automatically
- Infer device kind from feature IDs (0x06xx = headset) for both wireless
  and direct USB connections
- Read device name from USB product string with protocol probe fallback
- Parse bridge error responses (sub_feat_idx=0xFF) instead of timing out
- Handle unknown HID++ error codes gracefully in base.py
- Fix firmware deduplication for Centurion parent devices
- Prefer sub-device serial/firmware over parent (non-printable) values
- Add Centurion-aware display in solaar show with parent/sub-device sections
- Support both wireless (0AF7 dongle) and direct USB (0AF8) connections
2026-04-12 14:51:54 -07:00
..
__init__.py Refactor: Distinguish module from package 2024-09-15 09:18:51 -04:00
base.py Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -07:00
base_usb.py cli: allow to change LED settings 2025-12-21 18:03:53 -05:00
common.py Rewrote string concatenation/format with f strings 2025-01-29 08:40:14 -05:00
descriptors.py Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -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 Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -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 hidpp: fix bug when showing device notification flags 2026-03-19 11:27:26 -04:00
hidpp20.py Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -07:00
hidpp20_constants.py Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -07:00
i18n.py Unify imports in logitech package 2024-05-23 16:42:18 -04:00
listener.py Add Centurion transport and PRO X 2 LIGHTSPEED headset support 2026-04-12 14:51:54 -07:00
notifications.py show better pairing errors (#3063) 2025-12-10 11:18:50 -05:00
receiver.py udev: correctly re-raise access exception 2025-10-17 19:41:23 -04:00
settings.py Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -07:00
settings_new.py settings: add setting for HAPTIC feature 2025-11-12 14:50:46 -05:00
settings_templates.py Remove static PRO X 2 descriptor; fully probe Centurion devices at runtime 2026-04-12 14:51:54 -07:00
settings_validator.py settings: add scroll ratchet force setting 2025-11-04 03:25:12 +09:00
special_keys.py device: add special keys from Logitech 2025-10-16 20:57:15 -04:00