Three related fixes for per-key lighting state being lost on the wire: 1. The per-key canvas models layout gaps as placeholder cells with zone_id -1. Paint strokes sweeping a gap emitted -1 in the delta, which entered the setting's map, was persisted, and then aborted EVERY subsequent full-map repaint at frame pack time (OverflowError: can't convert negative int to unsigned) — the apply was logged and ignored, so keys silently kept stale colors or went dark. Filter gap cells from the delta before it reaches the sink. 2. PerKeyLighting now sanitizes zone keys against the device-reported zone bitmap in update/write/read paths, so an already-poisoned persisted map (saved by a build without fix 1) heals on read instead of permanently breaking repaints. 3. WIRELESS_DEVICE_STATUS power-on reconfig requests went through the ConfigChange-cookie dedup gate. On a G915 TKL the cookie survives a power cycle, so the gate concluded nothing changed and skipped apply_all_settings — but power-on wipes volatile state (RGB buffers, host-mode lighting), leaving the keyboard dark until manual intervention. A powered-on notification now forces the apply. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .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