Linux devices manager for the Logitech Unifying Receiver
Solaar is a Linux device manager for Logitech’s Unifying Receiver peripherals. It is able to pair/unpair devices to the receiver, and for most devices read battery status.
It comes in two flavors, command-line and GUI. Both are able to list the devices paired to a Unifying Receiver, show detailed info for each device, and also pair/unpair supported devices with the receiver.
- Developed at hardware
- Sources inherited from project openSUSE:Factory
-
3
derived packages
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout openSUSE:Factory:Rebuild/solaar && cd $_
- Create Badge
Refresh
Refresh
Source Files
Filename | Size | Changed |
---|---|---|
Solaar-1.1.13.obscpio | 0004621324 4.41 MB | |
Solaar.obsinfo | 0000000096 96 Bytes | |
_service | 0000000681 681 Bytes | |
_servicedata | 0000000234 234 Bytes | |
solaar-fix-desktop-categories.patch | 0000000891 891 Bytes | |
solaar.changes | 0000047913 46.8 KB | |
solaar.spec | 0000005102 4.98 KB |
Latest Revision
Ana Guerrero (anag+factory)
accepted
request 1177024
from
Andreas Schneider (gladiac)
(revision 29)
- Update to version 1.1.13: * release 1.1.13 * po: update Russian translation * po: Update Polish translation * release 1.1.13rc1 * solaar: fix bug in suspend and resume callback * settings: add choices universe for backlight setting * diversion: Add unit tests * diversion: Simplify and type hint * settings: get and use current host number for K375sFnSwap because of bug in firmware of MX Keys S * ui: fix bug with logo in about window * solaar: don't ping device just to get logging information * settings: optimize write for per-key lighting * settings: add and initialize per-key lighting to a special no-change value * hidapi: Remove Python 2 compatibility (#2460) * po: Update French translation (for release 1.1.12) (#2458) * Refactor rule loading for testability (#2456) - Update to version 1.1.12: * release 1.1.12 * po: Update zh_TW Traditional Chinese translation * release 1.1.12rc2 * device: check for existences of keys file before opening * po: update Russion translation and have all strings translated * po: update Russian translation (#2443) * dist: add included hid_parser to packages installed * po: Update Polish translation (#2439) * settings: improve label and description for LED zone settings * settings: add message about Onboard Profiles to LED Zone settings * device: initialize device registers to empty list * po: Update Polish translation (#2435) * release 1.1.12rc1 * release 1.1.12rc1 * solaar: use bluez dbus signals to disconnect and connect bluetooth devices * device: handle a different signal for onboard profiles directory in ROM * receiver: introduce small delay in getting pairing information to let receiver settle after pairing * tests: extend tests for device.py * device: fix bug found in testing * tests: expand tests for device.py * device: fix small bugs uncovered by testing * tests: expand tests for settings_templates * tests: extend testing of hidpp20 * device: fix bugs in onboard profiles found during testing * tests: extend testing of hidpp20 * device: fix bugs in hidpp20 found during testing * tests: extend device testing * tests: test GESTURES settings * tests: extend testing of hidpp20 * Updated Greek Translation * doc: add information about bad interaction between Bluez 5.73 and Solaar * tests: expand tests for settings_templates * device: better support for extended ajustable dpi * device: limited support for extended adjustable dpi * tests: remove unused code * tests: adjust imports to always import installed version * tests: test more settings * settings: remove unused code and fix but in EQUALIZER setting * settings: provide symbolic names for per-key lighting keys * tests: improve infrastructure for testing setting_templates * settings: implement and test per-key lighting * tests: check for Gtk initialization and don't run tests that depend on it * tests: test GUI pair_window * ui: refactor pair_window * tests: fix tests for RBG effects * settings: add in bit telling RGB effects changes to change ROM * ui: handle situation when read of a setting fails * settings: permit continuing when a read during pushing fails * tests: add tests for RGB EFFECTS settings * settings: add settings for RGB EFFECTS feature * settings: fix bug in LEDZoneSetting when effect is not implemented * device: add RGB EFFECTS feature version of LED COLOR EFFECTS data * tests: add tests for LEDEffect structures in hidpp20 * device: handle BRIGHTNESS CONTROL notifications * settings: implement and test BRIGHTNESS_CONTROL * tests: expand tests for settings_templates * settings: fix small bugs found from testing * refactor: Manually improve f-string formatting * refactor: Use f-strings for more exceptions and log message * settings: patch to make python 3.7 happy * tests: expand tests for settings_templates * tests: use new test methods in test_hidpp20_simple * tests: add tests for setting_templates * settings: simple change to improve testability * device: use feature_request from the device everywhere in hidpp20 * settings: fix bug in backlight 2 durations * tests: fix finding paired node in test_device * tests: use hidpp module in several test modules * tests: add tests for logitech_receiver device * ui: reduce deprecation warnings in ui * hidapi: remove deprecation warnings * tests: improve coverage of receiver.py * device: align init methods for all receiver classes * tests: use 3.7 type hint * tests: improve hidpp20 coverage * tests: fully cover hidpp10 * device: fix bug in hidpp10 get_device_features * refactor: Use dataclass for TestByte * refactor: Split diversion rules into smaller modules * refactor: Make _populate_model a function * rules: allow sub-second delays in Later * device: remove unreachable code * device: fix bug in setting configuration cookie due to bad documentation * Add new end line * Add solaar pot generation * Add indonesian translations * tests: complete testing of common * tests: start coverage of complex structures in hidpp20 * tests: expand coverage of hidpp20 * tests: expand coverage of common * ruff: Apply single line import format * ruff: Force single line imports * Automatically upgrade strings to f-string * docs: document battery-icons=solaar option * receiver: delay device sending first messages * device: remove checks for status attributes * device: optimize some functions in FeaturesArray * device: fix bug in creating features array * cli: fix bug in building battery line in show * ui: refactor diversion_rules * ui: fix bug in determining tray icon * device: fix bug in getting friendly name * device: remove status from Device and Receiver * device: move changed method from status to Device and Receiver * device: move link_encrypted from status to Device * device: move battery information from status to Device * device: move status string function to Device and Receiver * receiver: move pairing status to new dataclass attached to receiver * test: Test base product information * Disable macOS tests until GitHub CI dependencies are fixed * Extend Ubuntu dependencies for GitHub CI * test: Extract get_kind_from_index function and test it * docs: update EX100 information * device: use Python 3.7 type hints * device: use status attribute for error * device: use status attribute for notification_flags * device: use status attribute for link_encrypted * ui: use Battery object in GUI * device: change status battery fields to Battery objects * receiver: move more method code to subclasses * receiver: create subclasses of receiver for different variants * docs: add requirement for CONFIG_HIDRAW * tests: tests for a few simple hidpp20 functions * tests: add yaml test for led setting * tests: simple tests for hidpp20 profiles and lighting * ui: fix app name casing in UI * device: add missing receiver type for Lightspeed receivers * device: add new device types * refactor: Get receiver product info before instantiation * Refactor: Move Device instantiation to factory class * Refactor: Move Receiver instantiation to factory class * Simplify name of license file * Rename changelog.md to all capitals * Update .gitignore * Remove unused .gitmodules * fix: Use exception from exception module * update: Replace legacy logger.warn with logger.warning * cleanup: Remove duplicated code to read register * tests: Add hidpp10 tests * refactor: Introduce Hidpp20 class * refactor: Introduce Hidpp10 class * cleanup: Remove unnecessary calls of del * settings: fix bug when reading BACKLIGHT setting from device * clean up: Remove editor specific marks * fix: Replace invalid hidpp20 usage * fix: Replace invalid hidpp10 usage * solaar: use only timer thread to save config.yaml * docs: improve README.md * doc: Add link to Debian package to README.md * docs: adjust image placing in README * docs: adjust image size in README * docs: improve README * hid: copy newer version of hid_parser into Solaar codebase * ui: fix bug when displaying receiver notification flags * device: reorder code in settings * doc: update installation documentation * hidapi: make hid_parser optional, but add it to setup * device: add missing license blocks * device: clean up listener and notifications code * solaar: cleanup listener code * solaar: add locks to prevent multiple persisters for device * solaar: clean up configuration code * device: clean up device and receiver code * device: move battery constants common to HID++ 1.0 and 2.0 to common * device: move mapping of device kind into hidpp20 * device: move pairing information gathering to receiver * docs: update contributors * solaar: fix debugging levels * device: expand allowable profile numbers * device: clean up __init__ in logitech_receiver * dist: modify pre-commit args to make ruff change files * device: fix bug in hidpp20 get host names * device: fix typo * Remove yapf exclusions * Manually fix linter issues * Apply ruff format * Makefile: Add command for formatting and linting * Introduce ruff formatter and linter * rules: fix bug in Set action * device: add notify module to logitech_receiver * ui: implement setting_changed callback and pass in to new devices and receivers * device: add callback to call when changing a setting * logitech_receiver: style fixes * logitech_receiver: Move hidpp20 constants into new module * logitech_receiver: Move hidpp10 constants into new module * logitech_receiver: Move exceptions into own module * device: streamline status code * hidapi: upgrade debugging in udev * dist: Fix deprecated GitHub actions * dist: extend makefile and tests * device: improve features array * ui: move ui_async to common.py * tests: Show pytest coverage in GitHub CI tests * device: improve imports in logitech_receiver * solaar: improve imports and guard Gtk, etc imports with correct version * ui: improve imports in ui * cli: move imports in __init__.py to top of file * device: improve imports in logitech_receiver * tests: Add tests of common module
Comments 6
Per https://github.com/pwr-Solaar/Solaar/issues/2141#issue-1908868083, this doesn't run for me. Can someone here validate that it works for them?
I've pinned it to the default python version now. Try with 1.1.10
@gladiac, I'll try when I'm next able to. Thanks. <!-- https://wim.nl.tab.digital/apps/tasks/#/collections/all/tasks/1C50BA9B-1C0C-408D-916E-957DD36FB5DC.ics -->
Hi, I tried to install Solaar on OpenSuse Aeon, but got this while running app : marko@apps:~> solaar solaar: error: Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/solaar/gtk.py", line 165, in main import solaar.listener as listener File "/usr/lib/python3.11/site-packages/solaar/listener.py", line 34, in <module> from logitech_receiver import notifications as _notifications File "/usr/lib/python3.11/site-packages/logitech_receiver/notifications.py", line 27, in <module> from . import diversion as _diversion File "/usr/lib/python3.11/site-packages/logitech_receiver/diversion.py", line 31, in <module> import dbus ModuleNotFoundError: No module named 'dbus'
Fixed, thanks
I tried again, now i got this :
%posttrans(solaar-udev-1.1.10-1.1.noarch) script output: hidraw1: Failed to write 'add' to '/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.4/usb3/3-2/3-2:1.0/0003:046D:C548.0003/hidraw/hidraw1/uevent': Permission denied hidraw2: Failed to write 'add' to '/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.4/usb3/3-2/3-2:1.1/0003:046D:C548.0004/hidraw/hidraw2/uevent': Permission denied hidraw3: Failed to write 'add' to '/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.4/usb3/3-2/3-2:1.2/0003:046D:C548.0005/hidraw/hidraw3/uevent': Permission denied hidraw0: Failed to write 'add' to '/sys/devices/platform/AMDI0010:00/i2c-0/i2c-ELAN2841:00/0018:04F3:31AD.0001/hidraw/hidraw0/uevent': Permission denied warning: %posttrans(solaar-udev-1.1.10-1.1.noarch) scriptlet failed, exit status 1 %posttrans(dracut-fips-059+suse.501.gc44a365d-1.2.x86_64) script output: Failed to send reload request: Permission denied error: lua script failed: [string "%transfiletriggerin(udev-254.5-2.2.x86_64)"]:4: Unknown error 256 Running post-transaction scripts .........................................[done] marko@apps:~> solaar solaar: error: Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/solaar/gtk.py", line 165, in main import solaar.listener as listener File "/usr/lib/python3.11/site-packages/solaar/listener.py", line 34, in <module> from logitech_receiver import notifications as _notifications File "/usr/lib/python3.11/site-packages/logitech_receiver/notifications.py", line 27, in <module> from . import diversion as _diversion File "/usr/lib/python3.11/site-packages/logitech_receiver/diversion.py", line 31, in <module> import dbus ModuleNotFoundError: No module named 'dbus'