Per newly-documented HEADSET_MIC_WIRE_PROTOCOL.md, feature 0x0611 returns device-specific NACK 0x0B when SetMicGain is written with a value outside the device's supported range. LGHUB calls GetInfo (function 0) once at startup to cache (min_gain, max_gain) as two signed int8 bytes, then rescales subsequent writes into that range. Solaar was using int8's full range (-128..127) as validator bounds and accepting any UI value — which goes out-of-range on devices with narrow ranges like the G522 (current gain is 8, suggesting small range). Every gain change attempt NACK'd with 0x0B. Fix: add HeadsetMicGain.build() that queries GetInfo at probe time, parses the two-byte [min, max] response as signed int8, and hands those to the RangeValidator. Falls back to the int8 default range if GetInfo is unavailable or returns nonsense. Logs the reported range at INFO so testers can verify in the log. Does NOT address mic-mute NACK 0x0A — per the same doc that's the hardware mic-flip boom position locking software mute on the G522, and there's nothing software can do about it. |
||
|---|---|---|
| .github | ||
| bin | ||
| docs | ||
| lib | ||
| po | ||
| rules.d | ||
| rules.d-uinput | ||
| share | ||
| tests | ||
| tools | ||
| .coveragerc | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| CHANGELOG.md | ||
| COPYRIGHT | ||
| LICENSE.txt | ||
| MANIFEST.in | ||
| Makefile | ||
| README.md | ||
| RELEASE.md | ||
| RHEL.md | ||
| Release_Notes.md | ||
| mkdocs.yml | ||
| pyproject.toml | ||
| release.sh | ||
| setup.py | ||
README.md
Solaar
Solaar is a Linux manager for many Logitech keyboards, mice, and other devices that connect wirelessly to a Unifying, Bolt, Lightspeed or Nano receiver as well as many Logitech devices that connect via a USB cable or Bluetooth. Solaar is not a device driver and responds only to special messages from devices that are otherwise ignored by the Linux input system.
More Information - Usage - Capabilities - Rules - Manual Installation - Known Issues
Solaar supports:
- pairing/unpairing of devices with receivers
- configuring device settings
- custom button configuration
- running rules in response to special messages from devices
For more information see the main Solaar documentation page. -
Installation Packages
Up-to-date prebuilt packages are available for some Linux distros (e.g., Fedora) in their standard repositories. If a recent version of Solaar is not available from the standard repositories for your distribution, you can try one of these packages:
- Arch solaar package in the extra repository
- Ubuntu/Kubuntu package in Solaar stable ppa
- NixOS Flake package in Svenum/Solaar-Flake
Solaar is available from some other repositories but may be several versions behind the current version:
- a Debian package, courtesy of Stephen Kitt
- a Ubuntu package is available from universe repository
- a Gentoo package, courtesy of Carlos Silva and Tim Harder
- a Mageia package, courtesy of David Geiger