Linux device manager for Logitech devices
Go to file
Ken Sanislo 0dfc7a22fa Force FeaturesArray for Centurion devices regardless of reported protocol
Device.__init__ creates self.features as an empty dict ({}) when the
reported _protocol is <2.0, reserving FeaturesArray for HID++ 2.0.

The protocol floor in the protocol property only helps code paths that
access the property (e.g. feature_request's `if self.protocol >= 2.0`).
But __init__ reads the raw self._protocol attribute, so a wired G522
(reports 1.1) ends up with self.features = {}.

When solaar show later triggers `self.features._check()` inside
feature_request, the dict has no _check method → AttributeError →
crashes `solaar show` for the wired G522.

Fix: use FeaturesArray unconditionally when the device is Centurion.
The protocol version reported by these dongles is cosmetic — all
Centurion devices speak HID++ 2.0 features.
2026-04-16 23:18:18 -07:00
.github
…
bin
…
docs
…
lib Force FeaturesArray for Centurion devices regardless of reported protocol 2026-04-16 23:18:18 -07:00
po
…
rules.d
…
rules.d-uinput
…
share
…
tests Tighten Centurion probe and silence FeaturesArray query spam 2026-04-16 22:46:10 -07:00
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

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: