Linux device manager for Logitech devices
Go to file
Ken Sanislo d561d9f70d Guard Centurion feature lookups against HID++ 2.0 enum collisions
IntEnum members with the same int value hash equal and compare equal,
so a dict lookup for SupportedFeature.DEVICE_NAME (0x0005) finds an
entry stored as CenturionCoreFeature.MULTI_HOST_CONTROL (same 0x0005).
The index is right for the Centurion feature but wrong for the HID++
2.0 feature the caller intended.

Concrete impact: `solaar show` on wired G522 called get_kind()
-> feature_request(DEVICE_NAME, 0x20), which resolved to
MULTI_HOST_CONTROL.function_2 via the collision, and the device
returned OUT_OF_RANGE -> FeatureCallError crashed `solaar show`.

Fix: in Device.feature_request, after resolving the index, compare the
type of the stored inverse entry against the type of the requested
feature. Mismatched types mean the device actually has the Centurion
variant, not the HID++ 2.0 feature — return None instead of issuing a
mis-targeted request.
2026-04-16 23:36:47 -07:00
.github
…
bin
…
docs docs: mention Centurion protocol in documentation 2026-04-14 12:31:33 -04:00
lib Guard Centurion feature lookups against HID++ 2.0 enum collisions 2026-04-16 23:36:47 -07:00
po add Bulgarian translation 2026-04-07 08:36:02 -04:00
rules.d docs: document change to use uinput only 2026-03-08 20:58:43 -04:00
rules.d-uinput
…
share
…
tests Tighten Centurion probe and silence FeaturesArray query spam 2026-04-16 22:46:10 -07:00
tools Add installation guide for Solaar on RHEL 10 (#3158) 2026-03-08 20:54:31 -04:00
.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 Improve RHEL installation guide and add automated install example (#3162) 2026-03-10 07:43:25 -04:00
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

codecov License: GPL v2

 

 

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:

Solaar is available from some other repositories but may be several versions behind the current version: