Peter F. Patel-Schneider
0fd262424e
settings: add setting for HAPTIC feature
2025-11-12 14:50:46 -05:00
Peter F. Patel-Schneider
97b6b958c8
settings: expand new settings type
2025-11-12 14:33:34 -05:00
Peter F. Patel-Schneider
f739331dc2
settings: add new settings type for structure-backed setting
2025-11-12 14:33:34 -05:00
Ruffin
ec5b406909
misc: Use PATH instead of hardcoded absolute paths ( #3014 )
...
for better shebang and multi platform support
2025-11-04 03:28:10 +09:00
Peter F. Patel-Schneider
cff0110f81
settings: add scroll ratchet force setting
2025-11-04 03:25:12 +09:00
Peter F. Patel-Schneider
b96d0bbe0b
rules: fix debug messages for MouseClick rule
2025-11-02 21:01:33 +09:00
Peter F. Patel-Schneider
96adf6a026
rules: improve debug message for rule evaluation
2025-11-02 20:58:44 +09:00
Peter F. Patel-Schneider
2cb5fa4b97
settings: ignore hidden features
2025-10-27 15:27:13 -04:00
Peter F. Patel-Schneider
44a647499c
ui: don't pop up window in response to ADC changes
2025-10-25 10:41:35 -04:00
Peter F. Patel-Schneider
5c94cf4d9f
device: fix error in low-level request for device with no recevier
2025-10-23 12:58:01 -04:00
Peter F. Patel-Schneider
b8ccec37ed
release 1.1.16
2025-10-23 07:58:44 -04:00
Peter F. Patel-Schneider
51630421b2
device: add new flags for reprogrammable keys feature
2025-10-22 16:46:40 -04:00
Peter F. Patel-Schneider
ab517577b5
device: correctly handle missing battery feature
2025-10-22 16:46:40 -04:00
Peter F. Patel-Schneider
15ee0662f1
release 1.1.15
2025-10-21 09:06:28 -04:00
Peter F. Patel-Schneider
2c070e92b3
release 1.1.15rc2
2025-10-21 09:06:28 -04:00
Peter F. Patel-Schneider
a866de47fb
udev: correctly re-raise access exception
2025-10-17 19:41:23 -04:00
Peter F. Patel-Schneider
f942dbec41
device: add special keys from Logitech
2025-10-16 20:57:15 -04:00
Peter F. Patel-Schneider
783bd5e4da
device: fix bug with unknown tasks
2025-10-05 08:05:15 -04:00
ian-jeong
68514d83c1
fix: center labels and remove buggy entry resizing logic
2025-09-30 10:42:25 -04:00
ian-jeong
6409fc2832
fix: correct spelling of 'completion' in diversion_rules.py
2025-09-30 10:42:25 -04:00
Peter F. Patel-Schneider
dc28ab61c2
device: add shape keys from Key POP Icon
2025-09-30 10:34:23 -04:00
Peter F. Patel-Schneider
94f4c3230b
rules: Device and Action rule conditions match on codename and name
2025-09-30 10:23:50 -04:00
MattHag
2a363a6388
Unsupported locale: Fall back to English ( #2891 )
...
* Unsupported locale: Fall back to English
For any locale that is not supported, automatically fall back to no
translation, so it is English.
Fixes #2889
* Update lib/solaar/i18n.py
---------
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2025-09-08 09:44:45 -04:00
Peter F. Patel-Schneider
bebadc219c
fixes battery setting when device is not available ( #2890 )
...
* device: fix battery setting when device is not available
2025-06-09 05:31:52 -04:00
Peter F. Patel-Schneider
694513832d
device: report symbolic names for pairing errors ( #2886 )
...
* device: report symbolic names for pairing errors
* testing: fix testing of notifications
2025-05-31 08:12:42 -04:00
Alban Browaeys
7066ec40c9
device: Fix listing hidpp10 devices - bytes vs string concatenation ( #2856 )
...
* Fix listing hidpp10 devices - bytes vs string concatenation
Fix error concatenating a bytes with a string.
Closes #2855 .
Fixes: 5e0c85a6 receiver: Refactor extraction of serial and max. devices
* Update lib/logitech_receiver/receiver.py
---------
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2025-04-22 08:47:26 -04:00
Peter F. Patel-Schneider
abea1c4341
device: add present flag, unset when internal error occurs, set when notification appears
2025-04-22 08:45:55 -04:00
Peter F. Patel-Schneider
217b9360e6
device: pause setting up features when error occurs; use ADC message to signal connection and disconnection
2025-04-22 08:45:55 -04:00
Alban Browaeys
03cfa12852
Fix listing of hidpp10 peripherals
...
The Flag enum was applied the value method twice. remove the value
method call from the set_flag_bits in device.py. There is no such value
call in receiver.py set_flag_bits in the same commit so I believe this
was a mistake.
With this fix the LX7 mouse is properly enumerated over a Logitech
C-BT44 Receiver (seen as EX100, compatible 27MHz FastRF protocol)
Close #2850 .
Fixes: 72c9dfc5 Remove NamedInts: Convert NotificationFlag to flag
2025-04-07 10:29:41 -04:00
Alban Browaeys
41ba24eee2
Complete DEVICE_FEATURES to DeviceFeature transition for hidpp10 devices
...
Fixes solaar show.
Fixes: 378175f9 Remove NamedInts: Convert DeviceFeature to flag
2025-04-07 10:24:13 -04:00
Alban Browaeys
ed596666ee
Fix NOTIFICATION_FLAG to NotificationFlag transition leftovers
...
Fixes "solaar show" for hidpp10 device (or at least for 27MHz FastRF
hidpp10 peripherals).
Fixes: 72c9dfc5 Remove NamedInts: Convert NotificationFlag to flag
2025-04-07 10:24:13 -04:00
Peter F. Patel-Schneider
3fcc75f892
settings: use correct LOD values for extended adjustable dpi
2025-03-25 10:52:56 -04:00
Peter F. Patel-Schneider
198067519d
settings: better support RGB Effects - not readable
2025-03-03 14:11:09 -05:00
Peter F. Patel-Schneider
94155dbbf1
cli: fix crash when asking for help about config
2025-03-03 14:09:22 -05:00
Peter F. Patel-Schneider
64943c90d9
ui: fix error when updating ChoiceControlBig box
2025-02-26 16:08:23 -05:00
Peter F. Patel-Schneider
9b5e416755
receiver: Handle unknown power switch locations again
...
Ensure functionality via unit test.
2025-02-22 15:29:35 -05:00
Peter F. Patel-Schneider
d8f321a5e9
ui: correctly handle selection of [empty] in rule editor
2025-02-11 17:37:21 -05:00
SeongWoo Chung
df2df301e2
macOS: handle `HIDError` in `hidapi.hidapi_impl._match()` ( #2804 )
...
* Fix: handle `HIDError` in `hidapi.hidapi_impl._match()`
The `open_path()` function may raise `HIDError` but `_match()`, its caller, does not handle it, unlike other cases after opening the path. This affects to the device enumeration process in `hidapi.enumerate()`, causing some devices to be randomly undiscovered.
* hidapi: revert to independent checking of long and short HID++ features with an extensible refactor
* Refactor: too long line
2025-02-09 12:31:20 -05:00
Peter F. Patel-Schneider
cefc502db9
ui: give ghost devices a path
2025-02-08 15:30:37 -05:00
Peter F. Patel-Schneider
7d4f787344
ui: guard against typeerror when setting the value of a control box
2025-02-04 10:22:28 -05:00
Peter F. Patel-Schneider
e297f90e79
device: recover from errors in ping
2025-02-04 10:22:28 -05:00
Peter F. Patel-Schneider
20e20ce827
diversion: replace spaces by underscores when looking up features
2025-02-04 09:10:00 -05:00
DomHeadroom
90ab457ebe
Rewrote string concatenation/format with f strings
2025-01-29 08:40:14 -05:00
daviddavid
297ccb9cc1
Fix logo not showing in about dialog box
2025-01-29 08:35:53 -05:00
MattHag
3de575b697
Fix: Properly ignore unsupported locale
...
Generalize exception to catch anything locale error.
Related #2507
Fixes #2765
2025-01-10 16:58:17 -05:00
vulpes2
41e652609b
hidapi: skip unsupported devices and handle exception on open
2025-01-02 17:18:39 -05:00
Peter F. Patel-Schneider
5a03433f86
tests: fix ui desktop notifications test
2025-01-02 15:04:41 -05:00
MattHag
81567a98df
hidpp20: Remove dependency to NamedInts
...
Replace ButtonBehaviors and ButtonMappingTypes with IntEnum.
Related #2273
2025-01-02 11:06:04 -05:00
MattHag
bd00cc97ad
Estimate accurate battery level for some rechargable devices ( #2745 )
...
* battery: Extract battery level estimation into function
Test battery level estimation with sharp edges based on predefined
steps. Rename variable for clarity and add type hints.
Related #2744
* battery: Interpolate battery level for some rechargeable devices in percent
Estimate remaining battery based on measured battery voltage. Use linear
interpolation to achieve a smooth line instead of 10 percent jumps.
Fixes #2744
2025-01-02 10:58:07 -05:00
Peter F. Patel-Schneider
3192fa1a34
testing: upgrade desktop notifications tests to take notifications availability into account
2025-01-02 10:47:53 -05:00
MattHag
382e0b6797
solaar: Remove outdated logger enabled checks
...
Logger enabled checks clutter the code unnecessarily. The checks are
now handled in a custom logger class. Eventually they can be completely
removed in the future.
Related #2664
2025-01-02 09:26:31 -05:00
MattHag
f5d80c30fa
solaar/ui: Remove outdated logger enabled checks
...
Logger enabled checks clutter the code unnecessarily. The checks are
now handled in a custom logger class. Eventually they can be completely
removed in the future.
Related #2664
2025-01-02 09:26:31 -05:00
MattHag
636f736765
solaar/cli: Remove outdated logger enabled checks
...
Logger enabled checks clutter the code unnecessarily. The checks are
now handled in a custom logger class. Eventually they can be completely
removed in the future.
Related #2664
2025-01-02 09:26:31 -05:00
MattHag
e9a58fb3e0
Introduce GTK signal types
...
Related #2273
2025-01-02 08:29:32 -05:00
MattHag
ab52c4a7c0
Introduce error types
...
Related #2273
2025-01-02 08:29:32 -05:00
MattHag
3bf8a85866
hidapi: Remove outdated logger enabled checks
...
Logger enabled checks clutter the code unnecessarily. The checks are
now handled in a custom logger class. Eventually they can be completely
removed in the future.
Related #2664
2025-01-02 08:23:09 -05:00
MattHag
d42524dec9
notification: Remove alias for SupportedFeature
...
Related #2273
2025-01-02 08:05:02 -05:00
MattHag
8894463f64
notification: Refactor process_device_notification
...
Simplify code and unify interfaces and type hints.
Related #2273
2025-01-02 08:05:02 -05:00
MattHag
15aaba2802
notification: Refactor process_receiver_notification
...
Remove repeated code pattern with generalized implementation. Aim
towards easy extension and code readability.
Related #2273
2025-01-02 08:05:02 -05:00
MattHag
fa3a9bc5b3
notification: Refactor receiver event handling
...
Split processing of receiver notification into smaller functions.
Extract handler functions for every receiver notification for simple
maintenence and testability.
Related #2273
2025-01-02 08:05:02 -05:00
MattHag
33c057feff
Introduce custom logger
...
Implement logger that internally checks if log level is enabled. Thus,
unnecessary log message computation costs are avoid, when logging is
disabled and logging code can be cut in half.
Related #2663
2025-01-02 07:56:46 -05:00
MattHag
810cda917a
Refactor notifications
...
Add type hints and reasonable variable names.
Related #2711
2025-01-01 13:48:14 -05:00
MattHag
64ac437b7f
Rename variable to full name notification
...
Related #2711
2025-01-01 13:48:14 -05:00
MattHag
207be464a5
Test notifications
...
Fixes #2711
2025-01-01 13:48:14 -05:00
MattHag
5e0c85a6d7
receiver: Refactor extraction of serial and max. devices
...
Related #2273
2025-01-01 12:52:33 -05:00
MattHag
918b584b95
macOS: Fix int.from_bytes, int.to_bytes for show.py
...
Related #2729
2025-01-01 11:55:10 -05:00
MattHag
83c380f85b
macOS: Remove udev rule warning
...
Warning about missing udev rules do not apply to macOS.
Related #2729
2025-01-01 11:55:10 -05:00
MattHag
fd17e47382
macOS: Add support for Bluetooth devices
...
Use hidapi on macOS to communicate and configure Logitech peripherals
connected via Bluetooth. This brings macOS device support on the same
level as Linux. However, some rules might not be supported yet on macOS.
Tested with MX Keys and MX Master 3S.
Fixes #2729
2025-01-01 11:55:10 -05:00
cameronaw13
88787ab705
settings: add back and forward mouseclick actions
2025-01-01 11:46:05 -05:00
MattHag
1a3f4dab36
Speedup lookup of known receivers
...
Refactor get_receiver_info. Replacing data structure of known receivers
to avoid for loop, when an efficient dictionary lookup is possible.
Related #2273
2025-01-01 11:33:07 -05:00
MattHag
3186d880fc
base: Refactor device filtering
...
Related #2273
2025-01-01 11:20:28 -05:00
MattHag
1e6af7fa7d
base: Reorder private functions and variable definitions
...
Related #2273
2025-01-01 11:20:28 -05:00
MattHag
5d86c74df4
base: Turn filter_products_of_interest into a public function
...
Related #2273
2025-01-01 11:20:28 -05:00
some_developer
96364d2df3
Refactor InfoSubRegisters: Use IntEnum in favour of NamedInts
2025-01-01 10:46:04 -05:00
MattHag
378175f98f
Remove NamedInts: Convert DeviceFeature to flag
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
72c9dfc50c
Remove NamedInts: Convert NotificationFlag to flag
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
571cdb5f2d
Prepare refactoring of NotificationFlag
...
Ensure behavior stays the same.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
5f5c7cdcce
Fixes on top of refactoring
2025-01-01 10:46:04 -05:00
MattHag
ad3916e1b8
Fix KeyFlag conversion
2025-01-01 10:46:04 -05:00
MattHag
6903eeefcd
Remove NamedInts: Convert LedFormChoices to enum
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
c9d7d7234a
charge status: Refactor to enum and move to module of use
...
The charge status is solely used in the hiddpp20 module, thus put it
into this module.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
c34fd3c2b0
Remove NamedInts: Convert LedRampChoice to flag
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
b19c886426
Remove NamedInts: Convert HorizontalScroll to enum
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
96c9cc2aa4
Remove NamedInts: Convert PowerSwitchLocation to flag
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
d27f7285e0
Remove NamedInts: Convert MappingFlag to flag
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
5c736e9154
mapping flag: Move to module of use
...
The mapping flags are solely used in hiddpp20 module, thus put them into
this module.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
7c91d0b2db
Remove NamedInts: Convert ActionId to enum
...
This data is not in use currently.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
5ca9c0a6ba
Remove NamedInts: Convert Spec to enum
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
f54eeb7998
Remove NamedInts: Convert KeyFlag to Flag
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
0bf7a78553
Add type hints
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
267b0a723d
key flags: Move to module of use
...
The key flags are solely used in hiddpp20 module, thus put them into the
module.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
5a9725ee17
Add type hints
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
4c160d1723
Remove NamedInts: Convert Task to enum
...
Refactor code related to task and task ID.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
b74e789715
Remove NamedInts: Convert Column to enum
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
0d7fc46a81
settings: Add docstrings and type hint
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
8bc42d20fb
Enforce rules on RuleComponentUI subclasses
...
Enforce create_widgets and collect_values.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
dd13993ff3
Simplify settings UI class
...
Classes shouldn't don't need to know about other settings classes.
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
cdaffce463
Refactor: Remove diversion alias
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
dfb4ccc93f
type hints: Introduce settings protocol
...
Related #2273
2025-01-01 10:46:04 -05:00
MattHag
3636ed78bb
Refactor: Convert Kind to IntEnum
...
Related #2273
2025-01-01 10:46:04 -05:00