The AnalogButtons feature packs each tunable in bits 7..2 of its byte (wire = logical << 2); byte 2 bit 0 is a firmware-managed sensitivity flag, the rest of the low bits are reserved-zero. Solaar 1.1.19 sent the slider value verbatim, so any logical 1/2/3 produced wire bytes 0x01/0x02/0x03 — non-zero reserved bits and below the logical minimum, hence INVALID_ARGUMENT (issue #3202). Only multiples of 4 happened to land on a valid wire byte. Decode bytes 1/2/3 of getConfig and caps[2..4] of getCapabilities by right-shifting 2; left-shift the user value by 2 on setConfig and OR back the prior sensitivity bit on rapid-trigger writes. Defaults fallbacks updated to logical mid-points and the validator maxima now reflect the real ranges (actuation 1..10, rapid trigger 1..5, haptics 0..5). Persisted values from 1.1.19 were raw wire bytes (e.g. 40), which now exceed the new max and would fail apply()'s prepare_write. A new _AnalogButtonSetting subclass migrates such values in _pre_read by dividing by 4 when the result lands inside the new valid range, and rewrites the persister so the migration is one-shot. |
||
|---|---|---|
| .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