Commit Graph

873 Commits

Author SHA1 Message Date
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
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 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
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 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 bd437b548b ui: refactor pair_window 2024-03-25 09:13:22 -04:00
Peter F. Patel-Schneider 97d214f667 ui: handle situation when read of a setting fails 2024-03-24 15:44:15 -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 50c8013cb1 ui: reduce deprecation warnings in ui 2024-03-19 09:07:21 -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 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 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 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
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
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
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 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
Matthias Hagmann 7ef3059b69 clean up: Remove editor specific marks
Related #2273
2024-02-29 10:10: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 8ae86acd65 ui: fix bug when displaying receiver notification flags 2024-02-26 10:55:14 -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
Matthias Hagmann eb937fcc3a Manually fix linter issues
Related #2295
2024-02-20 15:41:10 -05:00
Matthias Hagmann 7774569971 Apply ruff format
Run ruff auto formatting using:
ruff format .

Related #2295
2024-02-20 15:41:10 -05:00
Peter F. Patel-Schneider 6f633efac5 ui: implement setting_changed callback and pass in to new devices and receivers 2024-02-20 06:19:23 -05:00
Peter F. Patel-Schneider 476f41f8ae logitech_receiver: style fixes 2024-02-20 05:58:33 -05:00
Matthias Hagmann 5f487dd3b2 logitech_receiver: Move hidpp20 constants into new module
Related #1097
2024-02-20 05:58:33 -05:00
Matthias Hagmann 2fcab65486 logitech_receiver: Move hidpp10 constants into new module
Related #1097
2024-02-20 05:58:33 -05:00
Matthias Hagmann e8fdbeee8e logitech_receiver: Move exceptions into own module
Related #1097
2024-02-20 05:58:33 -05:00
Peter F. Patel-Schneider fa9494435b device: streamline status code 2024-02-19 09:18:08 -05:00
Peter F. Patel-Schneider ab9e06829a ui: move ui_async to common.py 2024-02-18 08:09:34 -05:00
Peter F. Patel-Schneider 12de240949 device: improve imports in logitech_receiver
device: move imports of ui modules to beginning of files

logitech_receiver: remove imports from __init__.py
2024-02-18 06:21:35 -05:00
Peter F. Patel-Schneider d1c899d6da solaar: improve imports and guard Gtk, etc imports with correct version
solaar: move imports to top of files

solaar: move more imports to top of files

solaar: guard Gtk, etc imports with correct version
2024-02-18 06:21:35 -05:00
Peter F. Patel-Schneider 17e6463950 ui: improve imports in ui
ui: move imports in about.py to top of file

ui: move imports to top of notify.py

ui: move imports to top of window.py

ui: reorder imports at beginning of __init__.py

ui: move imports to top of tray.py

ui: move common code out of __init__.py to common.py

ui: move imports to top of __init___.py
2024-02-18 06:21:35 -05:00
Peter F. Patel-Schneider ad6e3dc80e cli: move imports in __init__.py to top of file 2024-02-18 06:21:35 -05:00
Peter F. Patel-Schneider 47f94a6a79 release 1.1.11 2024-02-18 05:59:47 -05:00
Peter F. Patel-Schneider 8dcb85ddb7 release 1.1.11rc4 2024-02-15 08:59:32 -05:00
Peter F. Patel-Schneider 8facd0cf68 dist: rename light icons and install them in correct place 2024-02-15 08:51:36 -05:00
Peter F. Patel-Schneider 1f954cd42e release 1.1.11rc3 2024-02-14 12:21:49 -05:00
Peter F. Patel-Schneider fb5b7e0582 ui: better checking for setting in record_setting 2024-02-13 04:01:19 -05:00
Matthias Hagmann ca24a93005 Fix invalid func name set logo name
Related #2254, #2276
2024-02-13 03:28:51 -05:00
Peter F. Patel-Schneider 438ea74dba release 1.1.11rc2 2024-02-12 18:22:03 -05:00
Peter F. Patel-Schneider e6aacc42dd ui: tidy up scrolling appearance in configuration panel 2024-02-11 16:50:31 -05:00
Peter F. Patel-Schneider 663490ea4b ui: don't unlock setting when changed by external means 2024-02-10 14:45:00 -05:00
Peter F. Patel-Schneider 468fad1358 ui: refactor code to record change to setting 2024-02-10 14:45:00 -05:00
MattHag 87658fb189
logging: Simplify logger instantiation
* logging: Simplify logger instantiation

Relates #2254

* logging: Remove aliases

Relates #2254

* logging: Replace deprecated warn with warning

Related #2254

* logging: Fix mistake

Related #2257
2024-02-10 13:55:27 -05:00
Peter F. Patel-Schneider 8811374ed9 ui: don't lock setting when an error occurs 2024-02-10 09:15:27 -05:00
Peter F. Patel-Schneider df9a5b7b19 cli: catch assertion errors when reading setting values from devices 2024-02-10 09:15:27 -05:00
Peter F. Patel-Schneider e8ef9a176d release 1.1.11rc1 2024-02-09 14:02:32 -05:00
Peter F. Patel-Schneider 23517048d4 device: clean up data for LED effects 2024-02-09 08:36:36 -05:00
Peter F. Patel-Schneider 7c441cc652 ui: better startup behavior for LED effect settings 2024-02-09 08:36:36 -05:00
Peter F. Patel-Schneider 73d091c86f ui: add UI for LED Zone control 2024-02-09 08:36:36 -05:00
Peter F. Patel-Schneider 37383442f4 device: add version and device name to profiles 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider 1fcff028fe device: decipher LED control info in profiles 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider 08fde28810 cli: report more information on exception when loading profiles 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider fb30f4ee41 device: support onboard profiles 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider 9c4bbec5e2 ui: handle backlight notification 2024-02-06 12:49:08 -05:00
Peter F. Patel-Schneider 06209d238a cli: no numbers for USB and Bluetooth devices 2024-02-04 14:20:52 -05:00
Peter F. Patel-Schneider a6f7507ce6 ui: use Report Rate instead of Polling for movement report rate 2024-02-01 10:13:03 -05:00
Peter F. Patel-Schneider db4e40e3ac device: add extended report rate setting 2024-02-01 10:13:03 -05:00
Peter F. Patel-Schneider 28493f7496 ui: downgrade assertion on missing notification flag to warning 2024-01-30 08:02:25 -05:00
Peter F. Patel-Schneider f8a462dbe5 cli: be defensive in device error message 2024-01-28 15:36:28 -05:00
Peter F. Patel-Schneider 195e28ad76 gui: defend against lightspeed receivers that contact devices for basic information 2023-12-24 23:59:34 -05:00
markopy 29ff35d553
Partial support for macOS and Windows (#1971)
* Add support for macOS via hidapi

* Style fixes

* Ignore keyboard and mouse input devices

* Don't require pyudev on mac and windows

* Fix debug log format error

* More logging for failed hidpp checks

* Don't try to load hid_darwin_set_open_exclusive on windows

* Bring back button for rule editor since some rules will work

---------

Co-authored-by: markopy <(none)>
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2023-11-28 16:25:17 -05:00
Peter F. Patel-Schneider 5ca1790cb8 ui: better handling and installation of icons 2023-11-19 12:06:04 -05:00
Peter F. Patel-Schneider 4669cad2e1 ui: be more cautious when creating log messages to avoid exceptions 2023-11-19 12:04:02 -05:00
Peter F. Patel-Schneider eb6bacaed1 cli: handle NoSuchDevice exception when pinging device 2023-11-19 12:04:02 -05:00
Peter F. Patel-Schneider b50b88be06 ui: update codename when device status changes 2023-10-06 16:17:47 -04:00