Commit Graph

1814 Commits

Author SHA1 Message Date
MattHag 67829c5807
Clean up imports (#2537)
* Remove import as _ in solaar startup

Related #2273

* Remove import as _ in listener

Related #2273

* Remove import as _ in cli init

Related #2273

* Remove import as _ in gtk

Related #2273

* Remove import as _ in show

Related #2273

* Remove import as _ in tray

Related #2273

* Remove import as _ in profiles

Related #2273

* Remove import as _ in config

Related #2273

* Remove import as _ in config panel

Related #2273

* Remove import as _ in window

Related #2273

* Remove import as _ in pair

Related #2273

* Remove import as _ in pair window

Related #2273

* Remove import as _ in cli package

Related #2273

* Remove import as _ in ui package

Related #2273

* Remove commented out code

Related #2273

* Use constant for Logitech ID
2024-07-15 08:37:18 -04:00
Peter F. Patel-Schneider d9d67ed738 device: handle unknown device kinds 2024-07-02 10:59:16 -04:00
Anderson Silva 8ab8cb0225
docs: Update about.py (#2535)
Update copyright date in about page to reflect current year (2024)

Follow-up to #2074
2024-06-23 17:56:52 -04:00
Peter F. Patel-Schneider 3aa064b40f settings: finish change to new constants 2024-06-13 10:01:50 -04:00
Peter F. Patel-Schneider db93e9ab10 hidapi: remove check on driver 2024-06-13 07:44:47 -04:00
Peter F. Patel-Schneider a7784b40ab cli: finish change to show.py for new constants 2024-06-13 05:54:36 -04:00
MattHag 86b55b9c25 Introduce Enum BusID
Distinguishes Bluetooth and USB devices.
2024-06-03 08:37:02 -04:00
MattHag 7f5e156fa1 Introduce constant for Logitech vendor ID
The Vendor ID for Logitech is 0x46D = 1133.
2024-06-03 08:37:02 -04:00
MattHag d67466298b Introduce Enum for notification types 2024-06-03 08:37:02 -04:00
MattHag 9726b93a78 Improve base module
Use clearer names and type hints.
2024-06-03 08:37:02 -04:00
MattHag e316ed1bc2 Remove unnecessary receiver info 'hid_driver'
The same constant is used everywhere.
2024-06-03 08:37:02 -04:00
MattHag a5ded24057 Convert HIDPPNotification to dataclass
Replaces the very last namedtuple.
2024-06-03 08:37:02 -04:00
Peter F. Patel-Schneider 2113e63a75 device: be defensive when converting battery status to string 2024-06-03 08:33:11 -04:00
MattHag be83dac209
hid: Convert definition of HID registers to enum
* Refactor HID Register definitions

Use enums for distinct type hints, easy discovery of registers.
Make constants uppercase and benefit from enum auto-completion.

Related #2273

* Improve type hints: Registers
2024-06-02 10:34:00 -04:00
MattHag c23ebcd267 Use double quotes for module level docstrings
Make module level docstrings distinguishable from license text.

Related #2273
2024-06-02 09:54:21 -04:00
MattHag 5a63e44d58 Remove empty comment lines
Remove hashtags solely used for structuring.

Related #2273
2024-06-02 09:54:21 -04:00
MattHag 244d0ee88a
solaar: clean up locale code
Usage example for German:
LC_ALL=de_DE.UTF-8 solaar

Related #2507
2024-06-01 12:09:55 -04:00
MattHag c29231bc6b
refactor: Creation of devices (#2493)
* Refine interfaces for testability

* Reenable fixed device tests
2024-05-27 11:58:16 -04:00
MattHag 815dce07be Unify imports in logitech package
Related #2273
2024-05-23 16:42:18 -04:00
Peter F. Patel-Schneider 90b0db6c3b device: don't ping device when getting name or codename 2024-05-22 21:22:08 -04:00
Matthias Hagmann c9dc232951 Refactor: Use dataclasses and enums
Replace unnecessary NamedInts in favour of default data types.
Simplify interfaces by reducing possible input from strings to members
of an enum.
2024-05-22 21:14:41 -04:00
Matthias Hagmann 469c04faaf Introduce Device protocol and type hints 2024-05-22 21:14:41 -04:00
Matthias Hagmann 193dbfda21 hidpp10: Move independent functions to module level 2024-05-22 21:14:41 -04:00
Matthias Hagmann 7d171b1d09 Refactor: Use dataclasses and enums
Replace NamedTuples with more flexible dataclass, which also support
type hints. Introduce enums to replace constant strings, which need to
be kept in sync. Also enhances interfaces by limiting it to the enum
values. Remove unused variables.
2024-05-22 21:14:41 -04:00
MattHag 500b9998c5
Fix macOS compatibility and reenable CI tests
* Fix CI for macOS

* Fix error message for missing hidapi

* Skip some device and receiver tests on macOS

Tests fail on macOS, enable them when unit tests are
refined to only test the module without dependencies.

* Safe guard dbus import
2024-05-22 18:45:40 -04:00
MattHag d0a3e474c7
hidapi: Unify imports in hidapi package (#2487)
Remove all 'import xyz as _xyz' and favor import of module name to
get more context in the code.

Related #2273
2024-05-16 15:58:22 -04:00
MattHag b321167304
Drop support for end-of-life Python 3.7
* Drop support for end-of-life Python 3.7

* Remove handling of code for Python 3.7 and older
2024-05-11 11:48:32 -04:00
Peter F. Patel-Schneider ea77335ecf release 1.1.13 2024-05-11 11:35:41 -04:00
Peter F. Patel-Schneider f30999a96a release 1.1.13rc1 2024-05-08 14:37:55 -04:00
Peter F. Patel-Schneider 6c11f4e480 solaar: fix bug in suspend and resume callback 2024-05-08 08:05:00 -04:00
Peter F. Patel-Schneider 1dfc4bdb1c settings: add choices universe for backlight setting 2024-05-08 08:05:00 -04:00
MattHag 1d5b61fbf2 diversion: Simplify and type hint
- Make static method an easy testable function.
- Fix variable name clashes
2024-05-05 10:43:39 -04:00
Peter F. Patel-Schneider 3ffa4e30f1 settings: get and use current host number for K375sFnSwap because of bug in firmware of MX Keys S 2024-05-04 04:46:27 -04:00
Peter F. Patel-Schneider b4811f602d ui: fix bug with logo in about window 2024-05-04 04:46:27 -04:00
Peter F. Patel-Schneider 37aa0963da solaar: don't ping device just to get logging information 2024-05-04 04:46:27 -04:00
Peter F. Patel-Schneider da1cb53c1b settings: optimize write for per-key lighting 2024-05-03 11:54:24 -04:00
Peter F. Patel-Schneider e5967edc66 settings: add and initialize per-key lighting to a special no-change value 2024-05-03 11:54:24 -04:00
MattHag 704a87696f
hidapi: Remove Python 2 compatibility (#2460)
Related #2273
2024-04-30 08:19:50 -04:00
MattHag 959dd2a35b
Refactor rule loading for testability (#2456)
rules: Introduce tests for YAML rule loading functionality.
2024-04-27 17:56:27 -04:00
Peter F. Patel-Schneider 22a59b6b0b release 1.1.12 2024-04-27 17:51:04 -04:00
Peter F. Patel-Schneider 3160e3b3d6 release 1.1.12rc2 2024-04-22 12:13:46 -04:00
Peter F. Patel-Schneider 932bc5cb0e device: check for existences of keys file before opening 2024-04-21 17:37:10 -04:00
MistificaT0r 4225fce8d7
po: update Russion translation and have all strings translated
* update Russian translation

* Fixed translation display in GUI

* fix checks / Fixed translation display in GUI
2024-04-21 11:36:39 -04:00
Peter F. Patel-Schneider cf038fd982 settings: improve label and description for LED zone settings 2024-04-19 16:05:29 -04:00
Peter F. Patel-Schneider 7bef5c046c settings: add message about Onboard Profiles to LED Zone settings 2024-04-19 16:05:29 -04:00
Peter F. Patel-Schneider c4e2a5683a device: initialize device registers to empty list 2024-04-19 16:05:29 -04:00
Peter F. Patel-Schneider 08c748c593 release 1.1.12rc1 2024-04-19 03:54:54 -04:00
Peter F. Patel-Schneider e667d41c7b solaar: use bluez dbus signals to disconnect and connect bluetooth devices 2024-04-18 20:32:40 -04:00
Peter F. Patel-Schneider d7ce636917 device: handle a different signal for onboard profiles directory in ROM 2024-04-15 14:40:50 -04:00
Peter F. Patel-Schneider 86bab897d1 receiver: introduce small delay in getting pairing information to let receiver settle after pairing 2024-04-15 14:40:50 -04:00
Peter F. Patel-Schneider b616419f72 device: fix bug found in testing 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider 269e970aa6 device: fix small bugs uncovered by testing 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider d6499808f9 device: fix bugs in onboard profiles found during testing 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider 3855409605 device: fix bugs in hidpp20 found during testing 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider d12575b47d tests: test GESTURES settings 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider e64eec18e9 tests: extend testing of hidpp20 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider b43cdace79 tests: expand tests for settings_templates 2024-04-09 10:31:06 -04:00
Peter F. Patel-Schneider 8de3a1d2e2 device: better support for extended ajustable dpi 2024-04-09 10:31:06 -04:00
Peter F. Patel-Schneider ab94f1be07 device: limited support for extended adjustable dpi 2024-04-09 10:31:06 -04:00
Peter F. Patel-Schneider c70e8b54bf tests: remove unused code 2024-03-27 18:02:55 -04:00
Peter F. Patel-Schneider afe04b9804 settings: remove unused code and fix but in EQUALIZER setting 2024-03-27 11:15:15 -04:00
Peter F. Patel-Schneider f38fbcf949 settings: provide symbolic names for per-key lighting keys 2024-03-27 11:15:15 -04:00
Peter F. Patel-Schneider 4d0f93b35c tests: improve infrastructure for testing setting_templates 2024-03-27 11:15:15 -04:00
Peter F. Patel-Schneider 1ed5f765e3 settings: implement and test per-key lighting 2024-03-27 11:15:15 -04:00
Peter F. Patel-Schneider bd437b548b ui: refactor pair_window 2024-03-25 09:13:22 -04:00
Peter F. Patel-Schneider 8ee291c144 settings: add in bit telling RGB effects changes to change ROM 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider 97d214f667 ui: handle situation when read of a setting fails 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider 1a874c39d7 settings: permit continuing when a read during pushing fails 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider e202e904b4 settings: add settings for RGB EFFECTS feature 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider c8288a6b69 settings: fix bug in LEDZoneSetting when effect is not implemented 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider c81809bd39 device: add RGB EFFECTS feature version of LED COLOR EFFECTS data 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider 490493d7a3 device: handle BRIGHTNESS CONTROL notifications 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider 3876f07d57 settings: implement and test BRIGHTNESS_CONTROL 2024-03-24 15:44:15 -04:00
Peter F. Patel-Schneider 4fd75a64ff settings: fix small bugs found from testing 2024-03-24 07:02:39 -04:00
Matthias Hagmann 6f613b17c7 refactor: Manually improve f-string formatting 2024-03-24 07:01:56 -04:00
Matthias Hagmann 4e6361429e refactor: Use f-strings for more exceptions and log message
Semi manually convert remaining strings with no translation to f-string.
2024-03-24 07:01:56 -04:00
Peter F. Patel-Schneider d1d3d71091 settings: patch to make python 3.7 happy 2024-03-23 10:11:30 -04:00
Peter F. Patel-Schneider 17bbc9c4ea settings: simple change to improve testability 2024-03-23 10:11:30 -04:00
Peter F. Patel-Schneider 47ba1402ed device: use feature_request from the device everywhere in hidpp20 2024-03-23 10:11:30 -04:00
Peter F. Patel-Schneider 7d6428a03b settings: fix bug in backlight 2 durations 2024-03-23 10:11:30 -04:00
Peter F. Patel-Schneider ebc76bca24 tests: add tests for logitech_receiver device 2024-03-23 08:26:12 -04:00
Peter F. Patel-Schneider 50c8013cb1 ui: reduce deprecation warnings in ui 2024-03-19 09:07:21 -04:00
Peter F. Patel-Schneider c617988788 hidapi: remove deprecation warnings 2024-03-19 09:07:21 -04:00
Peter F. Patel-Schneider 480badbe8c device: align init methods for all receiver classes 2024-03-16 16:24:33 -04:00
Peter F. Patel-Schneider 6164317a64 tests: improve hidpp20 coverage 2024-03-16 16:20:39 -04:00
Peter F. Patel-Schneider dcd72b0178 device: fix bug in hidpp10 get_device_features 2024-03-16 16:20:39 -04:00
Matthias Hagmann c6adf94e5d refactor: Use dataclass for TestByte
Related #2378
2024-03-14 17:15:10 -04:00
Matthias Hagmann 2f6e3e21ec refactor: Split diversion rules into smaller modules
Put rule conditions and actions into their into module

Related #2378
2024-03-14 17:15:10 -04:00
Matthias Hagmann 4e7356385d refactor: Make _populate_model a function
Related #2378
2024-03-14 17:15:10 -04:00
Peter F. Patel-Schneider 154dd7017f rules: allow sub-second delays in Later 2024-03-14 17:08:47 -04:00
Peter F. Patel-Schneider 4e4275c281 device: remove unreachable code 2024-03-14 17:08:47 -04:00
Peter F. Patel-Schneider d76eed85f6 device: fix bug in setting configuration cookie due to bad documentation 2024-03-14 17:06:17 -04:00
Ferdina Kusumah a02b1065ac Add indonesian translations 2024-03-14 12:44:36 -04:00
Matthias Hagmann 5b09ace1f5 ruff: Apply single line import format
# Usage
pre-commit run --all-files

Related #2295
2024-03-13 15:41:21 -04:00
Matthias Hagmann e92f1a8a0b Automatically upgrade strings to f-string
Used flynt to convert strings to f-strings, where safely possible.

Usage:
flynt .

Related #2372
2024-03-13 11:02:50 -04:00
Peter F. Patel-Schneider b957217ea8 receiver: delay device sending first messages 2024-03-13 08:34:28 -04:00
Peter F. Patel-Schneider 4a89a79a4d device: remove checks for status attributes 2024-03-12 13:11:49 -04:00
Peter F. Patel-Schneider dfd3d10c2e device: optimize some functions in FeaturesArray 2024-03-12 12:21:17 -04:00
Peter F. Patel-Schneider 0b599194d1 device: fix bug in creating features array 2024-03-11 15:20:39 -04:00
Peter F. Patel-Schneider f3ff61cfc1 cli: fix bug in building battery line in show 2024-03-11 15:20:39 -04:00
MattHag 704d591448
ui: refactor diversion_rules
* refactor: Create close dialog in its own function

Related #2378

* refactor: Create selected rule edit panel in module level function

Related #2378

* refactor: Remove commented code

Related #2378

* refactor: Use Gdk constant for right click button comparison

Related #2378

* refactor: Make _menu_do_copy a function

Related #2378
2024-03-11 10:19:20 -04:00
Peter F. Patel-Schneider 569f829a63 ui: fix bug in determining tray icon 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider 24223e77c7 device: fix bug in getting friendly name 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider 9c5ba6445e device: remove status from Device and Receiver 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider a1418cd834 device: move changed method from status to Device and Receiver 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider 1fe2eab1a4 device: move link_encrypted from status to Device 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider 15d425c365 device: move battery information from status to Device 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider 0805ecb511 device: move status string function to Device and Receiver 2024-03-11 08:23:27 -04:00
Peter F. Patel-Schneider 87285faf7f receiver: move pairing status to new dataclass attached to receiver 2024-03-11 08:23:27 -04:00
MattHag 0d225f6cb1
test: Test base product information
* test: Test base product information

Related #1097

* Fix dependencies for gi
2024-03-10 10:11:02 -04:00
Matthias Hagmann 7ec3eddccc test: Extract get_kind_from_index function and test it
Pull get_kind_from_index from class to module level and add tests.

Related #1097
2024-03-10 09:20:39 -04:00
Peter F. Patel-Schneider 523628926b device: use Python 3.7 type hints 2024-03-09 10:36:40 -05:00
Peter F. Patel-Schneider 135c8b8cb9 device: use status attribute for error 2024-03-09 10:36:40 -05:00
Peter F. Patel-Schneider 8154cd759f device: use status attribute for notification_flags 2024-03-09 10:36:40 -05:00
Peter F. Patel-Schneider 6b3f09aa5d device: use status attribute for link_encrypted 2024-03-09 10:36:40 -05:00
Peter F. Patel-Schneider 9121169f91 ui: use Battery object in GUI 2024-03-09 10:36:40 -05:00
Peter F. Patel-Schneider 64d8cad81a device: change status battery fields to Battery objects 2024-03-09 10:36:40 -05:00
Peter F. Patel-Schneider 3916c189be receiver: move more method code to subclasses 2024-03-08 15:39:12 -05:00
Matthias Hagmann 4eb5a83326 receiver: create subclasses of receiver for different variants
Related #2350
2024-03-08 15:39:12 -05:00
Swapnil Devesh 5ee1c6df30
ui: fix app name casing in UI
* Fix app name casing in UI

* Linter fixes

* Only use NAME variable

* FIx linter errors
2024-03-05 12:08:56 -05:00
Peter F. Patel-Schneider 51ef2a7fe2 device: add missing receiver type for Lightspeed receivers 2024-03-03 15:14:20 -05:00
Peter F. Patel-Schneider de8fe3685d device: add new device types 2024-03-03 15:14:20 -05:00
Matthias Hagmann c3b6802373 refactor: Get receiver product info before instantiation
Related #2350
2024-03-03 10:38:46 -05:00
Matthias Hagmann 8f6e8eef4c Refactor: Move Device instantiation to factory class
Related #2273
2024-03-03 09:32:42 -05:00
Matthias Hagmann 51e44052b0 Refactor: Move Receiver instantiation to factory class
Related #2350
2024-03-03 09:32:42 -05:00
Matthias Hagmann 7d127ff068 fix: Use exception from exception module 2024-03-02 12:25:13 -05:00
Matthias Hagmann fb9dbb9c39 update: Replace legacy logger.warn with logger.warning
Related #1097
2024-03-02 10:56:41 -05:00
Matthias Hagmann d4702f0bf0 cleanup: Remove duplicated code to read register
Related #1097
2024-03-02 10:56:41 -05:00
Matthias Hagmann a29f2b8614 tests: Add hidpp10 tests
Related #1097
2024-03-02 10:56:41 -05:00
Matthias Hagmann 9c76a6c5ba refactor: Introduce Hidpp20 class
Related #1097
2024-03-02 10:56:41 -05:00
Matthias Hagmann 85149a809e refactor: Introduce Hidpp10 class
Related #1097
2024-03-02 10:56:41 -05:00
MattHag 574a95da50
cleanup: Remove unnecessary calls of del
Related #2273
2024-03-02 10:48:06 -05:00
Peter F. Patel-Schneider ad0f9ec712 settings: fix bug when reading BACKLIGHT setting from device 2024-03-02 09:22:57 -05:00
Matthias Hagmann 7ef3059b69 clean up: Remove editor specific marks
Related #2273
2024-02-29 10:10:46 -05:00
Matthias Hagmann e53b5380a3 fix: Replace invalid hidpp20 usage
Related #1097
2024-02-28 17:41:46 -05:00
Matthias Hagmann c3b01bffae fix: Replace invalid hidpp10 usage
Related #1097
2024-02-28 17:41:46 -05:00
Peter F. Patel-Schneider 6939fb7196 solaar: use only timer thread to save config.yaml 2024-02-27 14:47:03 -05:00
Peter F. Patel-Schneider 6805a57b94 hid: copy newer version of hid_parser into Solaar codebase 2024-02-26 14:19:16 -05:00
Peter F. Patel-Schneider 8ae86acd65 ui: fix bug when displaying receiver notification flags 2024-02-26 10:55:14 -05:00
Peter F. Patel-Schneider 67be689866 device: reorder code in settings 2024-02-25 07:23:03 -05:00
Peter F. Patel-Schneider 069f96fe48 hidapi: make hid_parser optional, but add it to setup 2024-02-23 13:30:52 -05:00
Peter F. Patel-Schneider 20c4d64d17 device: add missing license blocks 2024-02-23 11:37:23 -05:00
Peter F. Patel-Schneider b7afc410ba device: clean up listener and notifications code 2024-02-23 11:37:23 -05:00
Peter F. Patel-Schneider 14f19ceaaf solaar: cleanup listener code 2024-02-23 11:37:23 -05:00
Peter F. Patel-Schneider 8744506259 solaar: add locks to prevent multiple persisters for device 2024-02-23 08:40:16 -05:00
Peter F. Patel-Schneider 3954bbd111 solaar: clean up configuration code 2024-02-23 08:40:16 -05:00
Peter F. Patel-Schneider ce2de71b1b device: clean up device and receiver code 2024-02-22 09:57:02 -05:00
Peter F. Patel-Schneider 646ef2f596 device: move battery constants common to HID++ 1.0 and 2.0 to common 2024-02-22 09:57:02 -05:00
Peter F. Patel-Schneider 24ae9bacaa device: move mapping of device kind into hidpp20 2024-02-22 09:57:02 -05:00
Peter F. Patel-Schneider 4b33c119f6 device: move pairing information gathering to receiver 2024-02-22 09:57:02 -05:00