Compare commits

...

935 Commits

Author SHA1 Message Date
Peter F. Patel-Schneider a866de47fb udev: correctly re-raise access exception 2025-10-17 19:41:23 -04:00
NaviMen 632d4dd5a0 Update i18n.md
- Ukrainian: Олександр Афанасьєв
2025-10-17 19:40:48 -04:00
Peter F. Patel-Schneider f942dbec41 device: add special keys from Logitech 2025-10-16 20:57:15 -04:00
Олександр Афанасьєв 6fa8ec6b86 i18n: Add and complete Ukrainian translation (uk) 2025-10-16 20:54:12 -04:00
MistificaT0r 137dd6b2ff update Russian translation 2025-10-14 19:25:57 -04:00
Matthaiks bdb0e9589b Update Polish translation 2025-10-10 19:12:19 -04:00
Peter F. Patel-Schneider 0335dd003c release 1.1.15rc2 2025-10-10 09:19:31 -04:00
Peter F. Patel-Schneider 8bea0121cc release 1.1.15rc1 2025-10-10 09:19:31 -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
Rok Mandeljc 62aaeac595 GitHub CI: fix and re-enable macOS tests with python 3.13
Fix the `Failed to load shared library 'libglib-2.0.0.dylib' referenced
by the typelib` error by adding the common Homebrew's shared library
directory (i.e., `$(brew --prefix)/lib`) to the dyld library search path.
This ensures that all Homebrew-installed shared libraries are discoverable
via `dlopen()`-like loading mechanism. (Previously, only directory
with `libhidapi` shared library was explicitly added to search path).

Use `DYLD_FALLBACK_LIBRARY_PATH` instead of `DYLD_LIBRARY_PATH` to
register the Homebrew library directory as a fallback search path
rather than preferred/default one. In general, this should be
preferred way of modifying library search path with 3rd-party
installations, even though it probably bears no real difference in
this particular scenario.
2025-09-14 18:52:00 -04:00
Peter F. Patel-Schneider 694caf635e docs: give uninstallation file correct name 2025-09-08 13:28:39 -04:00
Stephen Kitt 924684b610 Apply uaccess rules on all actions other than remove
These actions now need to react to "change" uevents, not only "add"
uevents. The recommendation from
5a8b9fd49f/NEWS (L22)
is to apply them on all non-"remove" uevents, which is what is done
here.

See also https://bugs.debian.org/1112660

Signed-off-by: Stephen Kitt <steve@sk2.org>
2025-09-08 10:11:52 -04:00
Peter F. Patel-Schneider abc5a31c15 install: fix bug in apt install target 2025-09-08 09:55:21 -04:00
Salim B 3c11eff55a docs(metainfo): Add link to source repo
cf. https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines#url
2025-09-08 09:54:36 -04:00
MattHag 001dce7ef5 GitHub CI: Disable latest Python tests on macOS
Related #2892
2025-09-08 09:52:51 -04:00
Nick 3f24d52f7a Update Swedish translation 2025-09-08 09:52:04 -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
Peter F. Patel-Schneider 1a9725f540 doc: update status of hid_parser 2025-05-21 11:52:31 -04:00
mattdale77 c7a54cf7ec Update installation.md
Fix link to the desktop file
2025-05-21 11:51:50 -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
Ágata Leuck 33a06ac834 docs: add G604 mouse details 2025-04-13 20:29:39 -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
Alban Browaeys 16bd8126b6 Fix github workflow stopping all matrix jobs when one of them fails 2025-04-05 20:37:33 -04:00
Alban Browaeys 17150658bf Fix ubuntu github CI
python 3.13 brings pygobject >= 3.52.1 which requires libgirepository 2.0.
Add gobject-introspection has libgirepository-2.0-dev does not depends
on it and it is required by PyGObject.

Closes #2857.
2025-04-05 20:32:29 -04:00
Rolf Leggewie f0ad2692b8 Update index.md
improve the wording describing the limitations set by the differences between the devices
2025-03-30 20:50:23 -04:00
Rolf Leggewie d033a3c8fc Update index.md - add missing word 2025-03-30 20:50:23 -04:00
Peter F. Patel-Schneider 1613584c6a docs: python documentation appears to be broken so don't set it up 2025-03-29 09:35:33 -04:00
ml- ebf8493e72 docs: add information for MX Anywhere 3 for Business 2025-03-29 09:24:07 -04:00
Peter F. Patel-Schneider 7a5a67c394 docs: improve documentation on onboard profiles 2025-03-29 09:22:59 -04:00
Peter F. Patel-Schneider 3fcc75f892 settings: use correct LOD values for extended adjustable dpi 2025-03-25 10:52:56 -04:00
Matija Kljajić 7b28423572 docs(i18n): mention Serbian translation 2025-03-21 12:20:00 -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
Purvi Das 637e562699 Adding uninstallation docs 2025-02-22 15:31:05 -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
Dominik 'Rathann' Mierzejewski d95068c3f5 make typing-extensions dependency mandatory
It's imported unconditionally in:
lib/solaar/ui/about/presenter.py:19
lib/logitech_receiver/hidpp10.py:22
lib/logitech_receiver/hidpp20.py:35

Fixes 469c04f (committed as part of #2428).
2025-01-10 17:00:03 -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
vulpes2 73ad98d5e4 Ignore macOS junk files and pipenv config 2025-01-02 17:18:39 -05:00
Peter F. Patel-Schneider b9557a46b6 docs: mention typing dependency 2025-01-02 15:05:12 -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 9af67f0e1d Update tests to run on Python 3.13 2025-01-02 10:47:03 -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 f28a923d15 receiver: Test extraction of serial and max. devices
Related #2273
2025-01-01 12:52:33 -05:00
MattHag 5e0c85a6d7 receiver: Refactor extraction of serial and max. devices
Related #2273
2025-01-01 12:52:33 -05:00
MattHag 800d3498f4 Update release notes: Add Bluetooth macOS support with 1.15
Related #2729
2025-01-01 11:55:10 -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
MattHag 5cf7cbfd5d base: Improve tests of known receivers
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
MattHag 03de6fb276 Split up huge settings module
- Move validators into their own module.
- Convert Kind to IntEnum

Related #2273
2025-01-01 10:46:04 -05:00
Peter F. Patel-Schneider 789d35450c solaar: don't close temp file until after CLI call 2025-01-01 10:40:07 -05:00
MattHag 62e8aacd9f Remove Python 2 specific path handling
Related #2273
2025-01-01 10:18:44 -05:00
Nick 8eb0aec3e8 i18n: Swedish translations in .desktop files 2025-01-01 10:15:42 -05:00
MattHag 8a0fc13f23 Test arg parse 2025-01-01 10:14:10 -05:00
MattHag 41768d9616 Test receiver notification info 2025-01-01 10:14:10 -05:00
Nick a822b2f237 Update Swedish translation 2025-01-01 10:06:53 -05:00
Jan Fader dfafe15575 delete temp-file in case help-actions too 2025-01-01 10:04:44 -05:00
Jan Fader e6c833f635 delete tmpfile on close for cli 2025-01-01 10:04:44 -05:00
Peter F. Patel-Schneider 7e9babdc79 release 1.1.14 2025-01-01 09:42:39 -05:00
Nick 01d76bb0ed i18n: Swedish translations in .desktop files 2025-01-01 09:37:14 -05:00
Peter F. Patel-Schneider 3768354230 release 1.1.14rc4 2024-12-24 10:36:55 -05:00
Peter F. Patel-Schneider 87afc3659e cli: handle fake feature enums in show 2024-12-24 10:29:55 -05:00
Matthaiks 2e9aa64a2e Update Polish translation 2024-12-24 10:28:17 -05:00
Peter F. Patel-Schneider e945f797a2 release 1.1.14rc3 2024-12-23 10:57:24 -05:00
MattHag 73c88210f7 Fix battery entry in device
Enforce use of enum value.

Fixes #2700
Related #2273
2024-12-23 10:50:43 -05:00
Peter F. Patel-Schneider 510753ea67 release 1.1.14rc2 2024-12-23 10:40:49 -05:00
Peter F. Patel-Schneider c2a3bc7e55 release 1.1.14rc1 2024-12-23 10:40:49 -05:00
Nick b6f5f86c36 i18n: Swedish translations in .desktop files 2024-12-09 08:49:20 -05:00
Nick ba4fda00df Update Swedish translation 2024-12-09 06:39:04 -05:00
Nick 1fcedeee70 i18n: Swedish translations in .desktop files 2024-12-09 06:37:28 -05:00
Nick 2157fdb59c
po: Add translator to list (#2687)
* Add translator to list

* Update i18n.md

---------

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2024-11-29 16:42:07 -05:00
Osman Karagöz c5f74953ce
po: Update tr.po (#2683) 2024-11-17 08:48:14 -05:00
Max Ammann ff6f7a8e22
settings: Add ratchet setting for smart shift enhanced devices (#2681)
* Add ratchet setting for smart shift enhanced devices

* Update lib/logitech_receiver/settings_templates.py

---------

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2024-11-16 16:06:02 -05:00
Pierre Carru 8b0904ead0
receiver: fix BoltReceiver, Ex100Receiver __init__ (#2661) 2024-11-10 17:44:40 -05:00
Nick 9d5568f6e5
po: Update Swedish translation (#2671)
* Update Swedish translation

Small fixes

* Update sv.po

* Update sv.po

* Update sv.po
2024-11-09 12:17:06 -05:00
Nick ba4bbd0118
po: Update Swedish translation (#2670) 2024-11-08 15:48:35 -05:00
MattHag 862cef1f77 hidpp20_constants: Refactor Gesture into enum
Replace Gesture NamedInts with enum.

Related #2273
2024-11-03 14:41:07 -05:00
Romain Loutrel a19461b29d
refactor: replace ERROR NamedInts by IntEnum (#2645)
* refactoring(logitech_receiver/notifications): change to enums PairingError and BoltPairingError

* refactoring(logitech_receiver/notifications): change to enums PairingError and BoltPairingError (Fix pre-commit checks)

* refactor(logitech_receiver/base.py): create unit tests for ping function before replacing ERRORNamedInts by IntEnum

* refactor(logitech_receiver/base.py): create unit tests for request function before replacing ERROR NamedInts by IntEnum

* refactor(logitech_receiver/base.py): create unit tests for ping function before replacing ERRORNamedInts by IntEnum (add exclusion for macOS)

* refactor(logitech_receiver/base.py): create unit tests for ping function before replacing ERRORNamedInts by IntEnum (fix for python < 3.10)

* refactor(solaar/cli./probe.py): create unit tests for run function before replacing ERROR NamedInts by IntEnum (focusing on the call order when receiving errors)

* refactor(solaar/cli./probe.py): refactor register processing to handle short and long registers in a single loop structure for improved readability and reduced code duplication.

* refactor(logitech_receiver/hidpp10_constants.py): replace ERROR NamedInt by IntEnum.

* refactor(logitech_receiver/hidpp10_constants.py): distinguish hidpp10 and hidpp20 errors in the code for readibility.

* refactor(logitech_receiver/hidpp20_constants.py): replace ERROR NamedInt by IntEnum.

* refactor(logitech_receiver/hidpp20_constants.py): replace ERROR NamedInt by IntEnum. (fix problem with | operator when typing with python 3.8)

* feature(hide on startup option): Visual test (not binded yet) DRAFT

* refactor(solaar/cli./probe.py): create unit tests for run function before replacing ERROR NamedInts by IntEnum (focusing on the call order when receiving errors)

* refactor(solaar/cli./probe.py): refactor register processing to handle short and long registers in a single loop structure for improved readability and reduced code duplication.

* refactor(logitech_receiver/hidpp10_constants.py): replace ERROR NamedInt by IntEnum.

* refactor(logitech_receiver/hidpp20_constants.py): replace ERROR NamedInt by IntEnum.

* refactor(logitech_receiver/hidpp20_constants.py): replace ERROR NamedInt by IntEnum. (fix problem with | operator when typing with python 3.8)

* feature(hide on startup option): Visual test (not binded yet) DRAFT

* Merge: Refactor: hidpp20 to use enum

* Merge: Refactor: hidpp20 to use enum (fix test)

---------

Co-authored-by: some_developer <some.developper.44@gmail.com>
2024-11-02 10:17:50 -04:00
MattHag c90146df31
Refactor: hidpp20 to use enum (#2647)
* Remove duplicated Param definition

Use constants from hidpp20 constants

Related #2273

* hidpp20/Param: Refactor to use IntEnum

Related #2273

* hidpp20_constants: Refactor to use IntEnum

Related #2273
2024-11-02 08:33:58 -04:00
John Erling Blad 8518604155
i18n: Updated Norwegian Nynorsk (nn) (#2655)
Co-authored-by: John Erling Blad <jeblad@google.com>
2024-10-31 05:27:09 -04:00
John Erling Blad de033267fa i18n: Updated Norwegian Bokmål (nb) 2024-10-31 04:19:57 -04:00
John erling Blad 0d4fd4c537 i18n: Updated Norwegian Bokmål (nb) 2024-10-28 08:11:53 -04:00
MattHag 1afcfe4b57
refactor: use IntEnum for firmware and cidgroup constances
* Refactor: test_named_ints_flag_names

Shorten test and clarify behavior using binary numbers.

* Introduce plain flag_names function

This replicates the NamedInts functionality as plain function.

* Refactor FeatureFlag to use IntFlag

Replace NamedInts implementation with IntFlag enum and plain flag_names
function.

Related #2273

* Refactor FirmwareKind to use IntEnum

- Move general FirmwareKind to common module.
- Replace NamedInts implementation with IntEnum.
- Harden related HIDPP 1.0 get_firmware test.

Related #2273

* Refactor CID_GROUP, CID_GROUP_BIT to use IntEnum

Related #2273
2024-10-23 16:25:35 -04:00
Romain Loutrel 79ffbda903
change pairing error values to intenums
* refactoring(logitech_receiver/notifications): change to enums PairingError and BoltPairingError

* refactoring(logitech_receiver/notifications): change to enums PairingError and BoltPairingError (Fix pre-commit checks)

* refactor(logitech_receiver/base.py): create unit tests for ping function before replacing ERRORNamedInts by IntEnum

* refactor(logitech_receiver/base.py): create unit tests for request function before replacing ERROR NamedInts by IntEnum

* refactor(logitech_receiver/base.py): create unit tests for ping function before replacing ERRORNamedInts by IntEnum (add exclusion for macOS)

* refactor(logitech_receiver/base.py): create unit tests for ping function before replacing ERRORNamedInts by IntEnum (fix for python < 3.10)
2024-10-23 16:22:22 -04:00
Peter F. Patel-Schneider 2185a8390c ui: fix initialization bug for PackedRangeControl 2024-10-22 14:31:13 -04:00
rloutrel 0d12c6f229 notifications: Introduce unit tests 2024-10-20 12:57:00 -04:00
MattHag 0cd9c0c9b5 Refactor: Introduce Feature enum
Convert Feature NamedInts to SupportedFeature integer enum.

Related #2273
2024-10-14 07:28:09 -04:00
MattHag 11e7cbde69 Test Feature class
Related #2273
2024-10-14 07:28:09 -04:00
MattHag 06fd32b501 Test and refactor process_notification
Related #2273
2024-10-14 07:28:09 -04:00
MattHag badb76953d Test key_is_down
Related #2273
2024-10-14 07:28:09 -04:00
Peter F. Patel-Schneider a36973916c settings: check all bits for extended report rate 2024-10-13 20:46:21 -04:00
rloutrel 15659a1ee4 Fix copy-paste error while refactoring notifications.py 2024-10-11 13:23:55 -04:00
MattHag 194c385824 RuleComponentUI: Type hints methods 2024-10-11 07:42:38 -04:00
MattHag d1f9b9ca3d diversion_rules: Add type hints 2024-10-11 07:42:38 -04:00
MattHag 97d1e90ceb Fix signature of show
Fix diverged signature of RuleComponentUI subclasses.
2024-10-11 07:42:38 -04:00
MattHag 9f57955142 Action menu: Move context menu into own class
Reduce complexity of diversion dialog.
2024-10-11 07:42:38 -04:00
MattHag 0dec545bfd Fix rule saving command 2024-10-11 07:42:38 -04:00
MattHag 3277015ab6 diversion: Add type hints 2024-10-11 07:42:38 -04:00
MattHag 691e5878f9 Remove obsolete pytest fixture 2024-10-11 07:42:38 -04:00
MattHag bb559c0d7c base: Remove hard dependency on gi
Import gi solely for type checking.
2024-10-11 07:42:38 -04:00
MattHag 1f85ec01e7 base: Add more unit tests
Make internal functions private.
2024-10-11 07:42:38 -04:00
MattHag 58ddb0d6cd Introduce HIDAPI protocol
Improve type hints and names.
2024-10-11 07:42:38 -04:00
MattHag 46366b2430 Fix warnings from automatic code inspections
Warnings found by automatic code inspection and partially tackled
- Drop distuitls inf favour of setuptools
- Replace deprecated pyudev.Device.from_device_number
- Remove unnecessary brackets
- Avoid access to private variables etc.
- Shadows built-in name
- Line length >120 characters
- Not a module level variable
- Simplify clause
and more
2024-10-11 07:42:38 -04:00
MattHag 0f4d1aebcd ui/common: Introduce tests 2024-10-11 07:42:38 -04:00
MattHag 89233957dc settings: Add tests 2024-10-11 07:42:38 -04:00
MattHag c9e781e752 settings_template: Introduce State enum 2024-10-11 07:42:38 -04:00
MattHag 54aace050c Replace action strings with constants
Avoids spelling mistakes and helps readability.
2024-10-11 07:42:38 -04:00
MattHag cba3533869 Remove factory wrapper classes
A module level function is sufficient, no wrapper needed.
2024-10-11 07:42:38 -04:00
MattHag ef6b7dec2c receiver: Remove hard dependency on base
With this test all receiver tests are macOS compatible again. The low
level interface supports passing a fake API for unit tests.
2024-10-11 07:42:38 -04:00
MattHag 4e50e605a6 device: Remove hard dependency on base 2024-10-11 07:42:38 -04:00
MattHag 37e2ac80ba base: Add test for filter_products_of_interest 2024-10-11 07:42:38 -04:00
MattHag 614a5dc633 Add type hints and clean up 2024-10-11 07:42:38 -04:00
MattHag 1729189981 base: Add find_paired_node functions
Avoid direct access to hidapi and use the base module as low-level API
instead. This change replaces the remaining calls to find_paired_node
and find_paired_node_wpid by exposing them via base module.
2024-10-11 07:42:38 -04:00
MattHag 90c41dbe32 base: Add find_paired_node functions
Avoid the need for hidapi imports and add them to the base API module.
2024-10-11 07:42:38 -04:00
MattHag a7ad625023 Fix about dialog 2024-10-11 07:42:38 -04:00
MattHag 8d0672ac3c base_usb: Add external interface
Clean up, type hint and tests base_usb and related modules.
2024-10-11 07:42:38 -04:00
MattHag a75c4b9679 ui/about: Use Model-View-Presenter pattern for testability
Split model and view, and enable view mocks for unit tests without GDK.
2024-10-11 07:42:38 -04:00
MattHag 46fafa0e68 hidapi: Explicitly load hidapi/udev implementation
Linux uses udev, other platforms use the cross-platform hidapi
implementation. Remove implicit loading of hidapi in hidapi/__init__.py.
2024-10-11 07:42:38 -04:00
MattHag 99fc9c6fcb receiver: Remove hard dependency on hidapi 2024-10-11 07:42:38 -04:00
MattHag 615499dce2 device: Remove hard dependency on hidapi 2024-10-11 07:42:38 -04:00
MattHag 9907cb2875 Test coverage: Fix keysyms to be visible (#9)
Fix typo in package name.
2024-10-11 07:42:38 -04:00
MattHag 65d3b406c0 keysyms: Introduce tests for this package 2024-10-11 07:42:38 -04:00
MattHag b681aafaff keysymdef: Rename key symbols
Name the key symbol mapping different than the module itself.
2024-10-11 07:42:38 -04:00
MattHag 32fef49ff8 Upload test coverage reports solely after merging
Related #1097
2024-10-11 07:42:38 -04:00
Peter F. Patel-Schneider 4aada31b21 ui: augment pairing message for devices with multiple channels 2024-10-08 15:15:35 -04:00
MattHag 128ec43d70 solaar: Add type hints 2024-10-08 14:35:16 -04:00
MattHag 0481950324 base: Add type hints 2024-10-08 14:35:16 -04:00
MattHag aa354dc4c4 Replace global sw_id with function call
Add test for it.
2024-10-08 14:35:16 -04:00
MattHag 2442299539 base: Simplify receiver info retrieval
- Remove comments with unused receivers
- Simplify receiver hardcoded info
2024-10-08 14:35:16 -04:00
MattHag 2aa462532a settings_template: Prepare removal of desktop_notifications dependency
Related #2273
2024-10-08 14:35:16 -04:00
MattHag d5af19be8a Make ui/desktop_notifications testable
Introduce unit tests.

Related #2273
2024-10-08 14:35:16 -04:00
MattHag e8ef262433 Rename ui/notify module to desktop notifications
Related #2273
2024-10-08 14:35:16 -04:00
MattHag 912afff173 Make lr/desktop_notifications testable
Introduce unit tests.

Related #2273
2024-10-08 14:35:16 -04:00
MattHag 0f8ab61ddf Rename lr/notify module to desktop_notifications
Related #2273
2024-10-08 14:35:16 -04:00
MattHag c76b0ef36b Add code coverage badge
Related #1097
2024-10-08 14:35:16 -04:00
MattHag b1b9f01083 Setup reports and upload codecov
Create coverage.xml, upload it to GitHub CI and visualize with codecov.

Setup instruction:
- Install codecov for project
  https://github.com/settings/installations/55029514
- Add CODECOV_TOKEN in the GitHub CI project secrets

Related #1097
2024-10-08 14:35:16 -04:00
MattHag 454e1601bd Introduce test coverage threshold
Enforce a total coverage of 40% of the code.

Related #1097
2024-10-08 14:35:16 -04:00
MattHag c1bc39f99f Fix test coverage reporting
Related #1097
2024-10-08 14:35:16 -04:00
MattHag 26667afea4 Simplify setup with pathlib 2024-10-08 14:35:16 -04:00
MattHag 741c0861c2 Clarify that fake hidpp is used
This module shouldn't be necessary on the long run. Remove pieces from
it whenever possible.
2024-10-08 14:35:16 -04:00
MattHag 3c1aa35067 hidapi: Completely remove dependency on gi
Related #2480
2024-10-08 14:35:16 -04:00
MattHag 40033c0183 Introduce hid_parser tests
Add basic tests to cover the package.
2024-09-15 09:19:13 -04:00
MattHag 8fb087be14 logitech_receiver: Remove GDK dependency 2024-09-15 09:18:51 -04:00
MattHag ea0eb66f39 Refactor: Remove all GDK dependencies from hidapi package
The hidapi hardware layer must not know or depend on any UI libraries.
Removes all GDK dependencies from the hidapi packages, which makes
testing of these modules easier and removes unwanted cross-dependencies.

Related #2480
2024-09-15 09:18:51 -04:00
MattHag 70def31942 Refactor: Distinguish module from package
Adapt module names to easily distinguish them.

Related #2480
2024-09-15 09:18:51 -04:00
Peter F. Patel-Schneider fdd2c79950 settings: allow unkonwn keys in Key rule conditions 2024-08-28 10:40:23 -04:00
Peter F. Patel-Schneider ae39ac46ba docs: improve documentation for cli actions 2024-08-23 20:03:54 -04:00
Peter F. Patel-Schneider 4578f5f6f1 device: cycle sw_id to better guard against duplication of messages 2024-08-23 19:41:10 -04:00
Peter F. Patel-Schneider c07c30baef device: handle error return on root feature 2024-08-23 19:41:10 -04:00
MattHag af12f8df52 Remove incomplete developer docs
Auto generated code documentation is incomplete, remove it.

Related #2503
2024-08-23 18:44:52 -04:00
MattHag 48ff85ab94 Publish GitHub pages only on push to master
Avoid draft documentation from being published.
2024-08-23 18:44:14 -04:00
Peter F. Patel-Schneider 64a9aac0d5 docs: add information about Onboard Profiles overriding some settings 2024-08-10 10:42:28 -04:00
Peter F. Patel-Schneider ce197b7093 doc: add wording to README.md that Solaar is not a device driver 2024-07-24 07:19:24 -04:00
IskandarMa 7b797f40f7
i18n: Chinese translations in .desktop files (#2554)
* translation(v1.1.13): update solaar.pot; fix missing zh_CN translation; fix some mis-leading translation in zh_CN

* fix translation error

* i18n: zh_CN/zh_TW/zh_HK in .desktop files

---------

Co-authored-by: IskandarMa <zhenghe.mt@alibaba-inc.com>
2024-07-15 23:49:37 -04:00
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
Peter F. Patel-Schneider 71d2a50cb4 docs: fix broken links to Solaar logo 2024-07-02 07:57:00 -04:00
IskandarMa 25b9ba70d2
po: Update zh_CN translation (#2541)
* translation(v1.1.13): update solaar.pot; fix missing zh_CN translation; fix some mis-leading translation in zh_CN

* fix translation error

---------

Co-authored-by: IskandarMa <zhenghe.mt@alibaba-inc.com>
2024-07-01 08:04:34 -04:00
MattHag 59b30706b8
docs: Use mkdocs for public documentation (#2527)
* Add mkdocs config

Build and debug docs locally:
mkdocs serve

* Add mkdocs config

* Introduce GitHub action for mkdocs

* Delete outdated doc files

* Generate Python documentation

* Clean up docs

- Remove ToDos from public docs
2024-07-01 08:03:50 -04:00
MattHag f40a5cc7a9
Clean up setup.py (#2536)
- Indent description
- Remove commented code

Related #2273
2024-06-29 15:23:38 -04:00
proletarius101 6d4cf80c89
docs: dead links in the AppStream file (#2539) 2024-06-29 15:22:25 -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 104556e7a3 Automatically detect packages in /lib
Automate handling of internal packages.
2024-06-02 10:42:57 -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
Peter F. Patel-Schneider 089b85676f docs: update built-in rules 2024-06-01 11:59:57 -04:00
MattHag cece723ea4
docs: Improve rules documentation
- Page heading
- Fix heading levels
- Improve some names
2024-05-27 12:50:42 -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 faf27ca323
docs: Add headings to structure rules.md
Allow users to find relevant information without reading a
long wall of text.
2024-05-27 09:55:41 -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 675cd6ee34 Add typing_extensions dependency 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 a9ce033cc8
docs: Update README.md
Related #2485
2024-05-16 17:48:33 -04:00
MattHag 9882d99125 docs: Add high-level graph of components
Gives an overview of the main components of Solaar and
their connections.
2024-05-16 15:59:41 -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 f15a50b4b2 docs: Move screenshots into dedicated folder
Clean up docs folder.
2024-05-16 15:55:44 -04:00
david_david 9d2cedbefe
po: Update French translation (for release 1.1.13)
- by David Geiger david.david@mageialinux-online.org
2024-05-12 09:58:51 -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
MistificaT0r bfc06502c1
po: update Russian translation 2024-05-09 06:06:59 -04:00
Matthaiks 413d449188
po: Update Polish translation 2024-05-08 16:32:22 -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 20d34025d8 diversion: Add unit tests 2024-05-05 10:43:39 -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
david_david 74e126e015
po: Update French translation (for release 1.1.12) (#2458)
- by David Geiger <david.david@mageialinux-online.org>
2024-04-28 06:59:34 -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 Dave Hello 39e51fa8ff po: Update zh_TW Traditional Chinese translation 2024-04-27 17:47:38 -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
MistificaT0r 2adeb2672a
po: update Russian translation (#2443) 2024-04-20 20:27:01 -04:00
Peter F. Patel-Schneider a5a0d7e80e dist: add included hid_parser to packages installed 2024-04-20 14:06:41 -04:00
Matthaiks 99f0d62aa0
po: Update Polish translation (#2439) 2024-04-20 06:24:23 -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
Matthaiks 8fbd643110
po: Update Polish translation (#2435) 2024-04-19 07:36:44 -04:00
Peter F. Patel-Schneider 7550d6b88c release 1.1.12rc1 2024-04-19 04:02:49 -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 1eb1d4b198 tests: extend tests for device.py 2024-04-13 18:38:44 -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 c7195881e3 tests: expand tests for device.py 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 9bb2a1ff5c tests: expand tests for settings_templates 2024-04-13 18:38:44 -04:00
Peter F. Patel-Schneider c7a2f1698b tests: extend testing of hidpp20 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 c283da27df tests: extend testing of hidpp20 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 6c67789bad tests: extend device 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
Karachalios Stagkas Athanasios Nektarios 091822185f Updated Greek Translation 2024-04-12 17:29:00 -04:00
Peter F. Patel-Schneider 157a2601d9 doc: add information about bad interaction between Bluez 5.73 and Solaar 2024-04-10 10:55:40 -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 12f3f2e856 tests: adjust imports to always import installed version 2024-03-27 18:02:55 -04:00
Peter F. Patel-Schneider cb16a46b93 tests: test more settings 2024-03-27 11:15:15 -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 04a818f215 tests: check for Gtk initialization and don't run tests that depend on it 2024-03-25 09:13:22 -04:00
Peter F. Patel-Schneider 41aacefa5e tests: test GUI pair_window 2024-03-25 09:13:22 -04:00
Peter F. Patel-Schneider bd437b548b ui: refactor pair_window 2024-03-25 09:13:22 -04:00
Peter F. Patel-Schneider 7d868425e7 tests: fix tests for RBG effects 2024-03-24 15:44:15 -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 dbd9fcfca6 tests: add tests for RGB EFFECTS settings 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 89b7fb6ef3 tests: add tests for LEDEffect structures in hidpp20 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 a5f1dd09a2 tests: expand tests for settings_templates 2024-03-24 07:02:39 -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 e9297cf8d8 tests: expand tests for settings_templates 2024-03-23 10:11:30 -04:00
Peter F. Patel-Schneider 88ac4c9f89 tests: use new test methods in test_hidpp20_simple 2024-03-23 10:11:30 -04:00
Peter F. Patel-Schneider 5e351399f5 tests: add tests for setting_templates 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 07c0d35f80 tests: fix finding paired node in test_device 2024-03-23 08:26:12 -04:00
Peter F. Patel-Schneider 10e3f844dd tests: use hidpp module in several test modules 2024-03-23 08:26:12 -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 871322bf68 tests: improve coverage of receiver.py 2024-03-16 16:24:33 -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 e0047024a5 tests: use 3.7 type hint 2024-03-16 16:20:39 -04:00
Peter F. Patel-Schneider 6164317a64 tests: improve hidpp20 coverage 2024-03-16 16:20:39 -04:00
Peter F. Patel-Schneider 8de3866696 tests: fully cover hidpp10 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 84524bec3e Add new end line 2024-03-14 12:44:36 -04:00
Ferdina Kusumah a0e475c057 Add solaar pot generation 2024-03-14 12:44:36 -04:00
Ferdina Kusumah a02b1065ac Add indonesian translations 2024-03-14 12:44:36 -04:00
Peter F. Patel-Schneider d5bdf2b0f5 tests: complete testing of common 2024-03-13 16:08:16 -04:00
Peter F. Patel-Schneider 54ee78ee25 tests: start coverage of complex structures in hidpp20 2024-03-13 16:08:16 -04:00
Peter F. Patel-Schneider 4632c46e30 tests: expand coverage of hidpp20 2024-03-13 16:08:16 -04:00
Peter F. Patel-Schneider 03a5ca3d49 tests: expand coverage of common 2024-03-13 16:08:16 -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 66d31885e4 ruff: Force single line imports
This makes commits easier to compare.

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 97ddee1929 docs: document battery-icons=solaar option 2024-03-13 08:50:28 -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 e226b76b8b Disable macOS tests until GitHub CI dependencies are fixed
Related #1097
2024-03-10 09:20:39 -04:00
Matthias Hagmann cc7194fe3d Extend Ubuntu dependencies for GitHub CI
Related #1097
2024-03-10 09:20:39 -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 c23c6b7124 docs: update EX100 information 2024-03-09 10:36:40 -05: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
Peter F. Patel-Schneider a90a367609 docs: add requirement for CONFIG_HIDRAW 2024-03-07 16:32:41 -05:00
Peter F. Patel-Schneider 15ed26887b tests: tests for a few simple hidpp20 functions 2024-03-05 15:27:07 -05:00
Peter F. Patel-Schneider a2bf51386a tests: add yaml test for led setting 2024-03-05 15:27:07 -05:00
Peter F. Patel-Schneider c3e988a03a tests: simple tests for hidpp20 profiles and lighting 2024-03-05 15:27:07 -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 5edf5e7419 Simplify name of license file
Related #2273
2024-03-02 18:15:56 -05:00
Matthias Hagmann 85af0fc667 Rename changelog.md to all capitals
The basic files in root often use all capitals, as is already used for
readme and manifest.

Related #2273
2024-03-02 18:15:56 -05:00
Matthias Hagmann 79f7c5ef77 Update .gitignore
Related #2273
2024-03-02 18:15:56 -05:00
Matthias Hagmann f11af99cf3 Remove unused .gitmodules
Related #2273
2024-03-02 18:15:56 -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 e3b25840fd docs: improve README.md 2024-02-27 14:47:03 -05:00
Anton Soroko 1033921d7c
doc: Add link to Debian package to README.md
* Add link to Debian package to README.md

Add link to Debian package and mention its maintainer.
Also i removed mention about ubuntu version since they always changes b/c of "end of life/support". And i removed mention about kububntu since there are many other flavours of ubuntu like xubuntu.

* Update README.md

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

---------

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2024-02-27 06:06:47 -05:00
Peter F. Patel-Schneider 1adc8ad688 docs: adjust image placing in README 2024-02-26 17:46:18 -05:00
Peter F. Patel-Schneider cebc5a3f57 docs: adjust image size in README 2024-02-26 17:38:54 -05:00
Peter F. Patel-Schneider f6003af99a docs: improve README 2024-02-26 17:29:46 -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 e8dadcd5c2 doc: update installation documentation 2024-02-23 13:30:52 -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
Peter F. Patel-Schneider 9228fa1da0 docs: update contributors 2024-02-22 09:46:21 -05:00
Peter F. Patel-Schneider fc8628c9c5 solaar: fix debugging levels 2024-02-21 16:06:22 -05:00
Peter F. Patel-Schneider 353c2dfb2f device: expand allowable profile numbers 2024-02-21 16:06:22 -05:00
Peter F. Patel-Schneider 8e44c08139 device: clean up __init__ in logitech_receiver 2024-02-21 16:06:22 -05:00
Peter F. Patel-Schneider 767a729598 dist: modify pre-commit args to make ruff change files 2024-02-21 16:06:22 -05:00
Peter F. Patel-Schneider 68b62a9ee4 device: fix bug in hidpp20 get host names 2024-02-21 16:04:32 -05:00
Peter F. Patel-Schneider af7806ed00 device: fix typo 2024-02-21 16:04:32 -05:00
Matthias Hagmann 04e709b00a Remove yapf exclusions
Related #2295
2024-02-20 15:41:10 -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
Matthias Hagmann 35f63edcd8 Makefile: Add command for formatting and linting
Format code:
make format

Lint code (automatically fixing issues when possible):
make lint

Related #2295
2024-02-20 15:41:10 -05:00
Matthias Hagmann fb6285606d Introduce ruff formatter and linter
Replace yapf, isort and flake8 with much faster ruff formatter. Remove
conflicting rule and switch to double quotes for strings.

Install:
pip install ."[dev]"
pre-commit install

Run pre-commit hooks:
pre-commit run -a

Related #2295
2024-02-20 15:41:10 -05:00
Peter F. Patel-Schneider ce00a78e7f rules: fix bug in Set action 2024-02-20 11:16:40 -05:00
Peter F. Patel-Schneider 3f692c0fe2 device: add notify module to logitech_receiver 2024-02-20 08:35:19 -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 ed248c62b9 device: add callback to call when changing a setting 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 50ddb54466 hidapi: upgrade debugging in udev 2024-02-19 09:16:56 -05:00
MattHag ad110498a6
dist: Fix deprecated GitHub actions
* Show pytest coverage in GitHub CI tests

Related #1097

* Extend Makefile with installation and test targets

Refactor setup steps to unify commands between Linux and macOS.
Move bash commands into Makefile for consistency and enable local
execution of GitHub CI commands corresponding Makefile targets.

Install on Ubuntu:
make install_ubuntu

Install on Ubuntu for development:
make install_ubuntu PIP_ARGS=."[test]"

Fixes #2303

* Improve name of GitHub test actions

Related #2303

* Upgrade GitHub actions to Node.js 20

Replaces deprecated Node.js 16 actions.

Related #2256, #2284
2024-02-18 08:30:31 -05:00
MattHag 9617cb88df
dist: extend makefile and tests
* Show pytest coverage in GitHub CI tests

Related #1097

* Extend Makefile with installation and test targets

Refactor setup steps to unify commands between Linux and macOS.
Move bash commands into Makefile for consistency and enable local
execution of GitHub CI commands corresponding Makefile targets.

Install on Ubuntu:
make install_ubuntu

Install on Ubuntu for development:
make install_ubuntu PIP_ARGS=."[test]"

Fixes #2303

* Improve name of GitHub test actions

Related #2303
2024-02-18 08:29:29 -05:00
Peter F. Patel-Schneider 20a76fb4d3 device: improve features array 2024-02-18 08:21:09 -05:00
Peter F. Patel-Schneider ab9e06829a ui: move ui_async to common.py 2024-02-18 08:09:34 -05:00
MattHag afdfcb0d2c
tests: Show pytest coverage in GitHub CI tests
Related #1097
2024-02-18 07:40:09 -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 31d795fcb8 device: improve imports in logitech_receiver
device: move some imports to top of modules

device: break up imports loop with device descriptors

device: break up imports loop by moving a function from notifications.py to setting_templates.py

device: break import loop between device.py and diversion.py by using device to access method
2024-02-18 06:21:35 -05:00
MattHag 008d3df50b
tests: Add tests of common module
Introduces unit tests for Solaar.

Related #1097
2024-02-18 06:10:53 -05:00
Peter F. Patel-Schneider 47f94a6a79 release 1.1.11 2024-02-18 05:59:47 -05:00
proletarius101 3dcc1eb800
dist: Add the <developer/> tag in the metainfo
Flathub requires this tag: https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/#name-summary-and-developer-name.

The format of this tag is defined in https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-developer.
2024-02-18 05:49:49 -05:00
Peter F. Patel-Schneider a3ff536c90 dist: correctly find light icons 2024-02-15 10:42:26 -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
MattHag e6191296e0
macos: Remove dbus from macos dependencies
Related #2284
2024-02-14 19:27:06 -05:00
MattHag b516b12920
Setup macOS tests using GitHub action (#2284)
Related #1244
2024-02-14 13:40:25 -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
Matthaiks 745374e221
po: Update Polish translation (#2275) 2024-02-13 03:29:26 -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
MattHag c66f3c3fe1
udev: Simplify installation of udev rules
* Simplify installation of udev rules

Fixes #2263

* udev: Shorten udev installation description

Related #2263

* udev: Shorten udev installation description

Related #2263

* udev: Update installation of udev rules

Related #2263

* Update docs/installation.md

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

* Update Makefile

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

* Update Makefile

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

* Update docs/installation.md

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

* Update docs/installation.md

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

* Update docs/installation.md

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>

---------

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2024-02-12 18:08:40 -05:00
Peter F. Patel-Schneider 10d65f0ca3 doc: add document on implementation 2024-02-12 14:01:11 -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 0f0de28e94 device: correctly handle profile button with no action 2024-02-10 14:45:00 -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
Matthias Hagmann 059ebecf84 tests: Add GitHub action for tests
Relates #1097
2024-02-10 13:58:20 -05:00
Matthias Hagmann 3eebd4b4b0 tests: Introduce tests with pytest
Relates #1097
2024-02-10 13:58:20 -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 8b1463c8f4 ui: update label and tooltip for divert-gkeys setting 2024-02-10 09:15:27 -05:00
Peter F. Patel-Schneider 26e0153fce ui: update label and tooltip for divert-gkeys setting 2024-02-10 09:15: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
Matthaiks c92433b6a2
po: Update Polish translation (#2252) 2024-02-09 15:28:52 -05:00
Peter F. Patel-Schneider 4c7f3fe230
release 1.1.11rc1 2024-02-09 14:13:58 -05:00
Peter F. Patel-Schneider e8ef9a176d release 1.1.11rc1 2024-02-09 14:02:32 -05:00
Peter F. Patel-Schneider c8fc6990b5 device: remove dependency on webcolors 2024-02-09 13:45:41 -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 3328a6085f device: add settings for LED Zone control 2024-02-09 08:36:36 -05:00
Peter F. Patel-Schneider 15e14c2d48 device: add structures for LED control 2024-02-09 08:36:36 -05:00
Peter F. Patel-Schneider 532077d239 ui: add setting to change LED control between firmware and software 2024-02-09 08:36:36 -05:00
Peter F. Patel-Schneider 1bf9384069 docs: document profiles 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider 246f3cf798 device: handle v4 of profiles data 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider 599a274410 device: better handing of unknown values in profiles 2024-02-07 18:48:22 -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 88f549f66c device: read profiles from ROM if none in Flash 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 0548bde44f ui: handle onboard profiles notifications 2024-02-07 18:48:22 -05:00
Peter F. Patel-Schneider 42c65e1e4d ui: upgrade onboard profiles setting to allow profile selection 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 fbad827d57 device: remove extra debugging for backlight 2024-02-06 12:49:08 -05:00
Peter F. Patel-Schneider 9c4bbec5e2 ui: handle backlight notification 2024-02-06 12:49:08 -05:00
Peter F. Patel-Schneider 72c5860a1e device: support backlight levels and duration 2024-02-06 12:49:08 -05:00
Peter F. Patel-Schneider 0f8e9b3c0f device: support bug in backlight on MX Keys S 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 097736478d devices: override name of Candy Companion Chip 2024-02-04 14:20:12 -05:00
Anton Soroko e34bbd5e8e
po: Update RU language translation (#2242)
* refresh ru.po pointers

* format po/ru.po to see changes w/o changed spaces

* Update translation in po/ru.po
2024-02-03 13:09:29 -05:00
Anton Soroko be41a2ac34
po: Mention language pack for Gnome in i18n.md (#2241)
* mention language pack for Gnome in i18n.md

* i18n.md: Poedit and Lokalize
2024-02-03 13:07:23 -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
Anton Soroko 5392eebaef
release: Add stable branch to release.sh (#2236)
* Add stable branch to release.sh

To be used in PPA builds.

* do not update stable branch if prerelease

---------

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2024-01-31 08:25:07 -05:00
Anton Soroko c4a64f3ade
release: fix changelog parsing in release.sh after d57af51316 (#2235) 2024-01-30 14:50:43 -05:00
Anton Soroko ac231a0627
docs: Update installation.md with new udev rules location (#2234)
location was changed in 
cf71736920
2024-01-30 14:47:38 -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 86fa3757f3 docs: add descriptions of G305 and MX Keys S 2024-01-30 08:02:25 -05:00
Peter F. Patel-Schneider 0db84f5aa4 rules: write empty file if there are no rules to save 2024-01-28 15:36:28 -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 67b883ac28 docs: add descriptions of M650 and PRO X 2 2024-01-20 11:23:01 -05:00
Peter F. Patel-Schneider 05ec439ec0 udev: report hidraw node in debugging messages 2024-01-20 11:23:01 -05:00
Peter F. Patel-Schneider 9b32a1b195 device: add names for new Logitech features 2024-01-20 11:23:01 -05:00
txelu 23bf4dec5d
po: Spanish translation reviewed (#2209) 2023-12-28 18:24:37 -05:00
Peter F. Patel-Schneider 864065c0a5 docs: add file for G915 2023-12-24 23:59:34 -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
Peter F. Patel-Schneider 94e9cfce8e docs: add files for MX Anywhere 2S and G915 2023-12-24 23:59:34 -05:00
Peter F. Patel-Schneider 9350300fd8 device: remove incorrect feature for M325 mice 2023-12-14 08:50:02 -05:00
Clement Cheung 4b2bb921b1 device: add K845 keyboard 2023-12-05 15:15:51 -05:00
Peter F. Patel-Schneider fa7606e242 rules: style fix 2023-11-28 16:45: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 d9e5e33947 device: correctly enumerate devices on receiver 2023-11-23 11:18:08 -05:00
Peter F. Patel-Schneider bfa3c922c2 docs: add wording about Logitech reusing model numbers 2023-11-22 16:12:04 -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 b2eb039e2d device: catch errors when pinging to try to put device online 2023-11-19 12:04:02 -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 ffd66e74c2 rules: fix test for device equality 2023-11-08 10:05:53 -05:00
Peter F. Patel-Schneider e71ed8ac94 docs: add note about other GTK system packages 2023-11-04 13:30:03 -04:00
Peter F. Patel-Schneider 620cc82956 docs: add instructions for pipx 2023-11-04 13:29:38 -04:00
FiveYellowMice 636bb07d1f NamedInt: return False on comparison with None 2023-11-04 13:27:50 -04:00
Peter F. Patel-Schneider 7706882a27 device: add support for MK550 2023-11-03 19:20:59 -04:00
psykose cf71736920 dist: install .rules to correct place by default
these only have meaning when they end up in a directory scanned by udev,
so $prefix/lib/udev/rules.d will be correct when installed to /usr. this
changes it from /usr/share/solaar/udev-rules.d which is ignored. it does
not affect installing as a user (e.g. pip install --user)
2023-10-21 15:19:51 -04:00
Peter F. Patel-Schneider 0b6b98e0a7 device: add connection request failed error to expected ping responses 2023-10-07 11:36:00 -04:00
Peter F. Patel-Schneider b50b88be06 ui: update codename when device status changes 2023-10-06 16:17:47 -04:00
MalteKlasen bf6cc123a4
doc: fix typos (#2152) 2023-10-06 16:17:07 -04:00
daviddavid 98c169bffb Update French translation (for release 1.1.10)
- by David Geiger <david.david@mageialinux-online.org>
2023-09-25 14:11:58 -04:00
Peter F. Patel-Schneider 09938ebd05 release 1.1.10 2023-09-23 13:07:45 -04:00
Svenum 902815ed93
pointer to NixOS flake package 2023-09-23 13:01:40 -04:00
Peter F. Patel-Schneider 5d6d675b4a release 1.1.10.rc3 2023-09-17 11:25:24 -04:00
Peter F. Patel-Schneider 38d5f8962c release 1.1.10rc2 2023-09-17 11:15:43 -04:00
Peter F. Patel-Schneider 485596cbf3 tools: permit BT devices for hidconsole with hidpp 2023-09-17 10:39:48 -04:00
Peter F. Patel-Schneider c77b2a413f device: add descriptor for Logitech MX Revolution Mouse M-RCL 124 2023-09-17 10:39:48 -04:00
Peter F. Patel-Schneider 37e303163c device: allow return device 00 for BT device ff 2023-09-17 10:39:48 -04:00
Peter F. Patel-Schneider 8537708ec2 device: improve determination of short or long messages 2023-09-17 10:39:48 -04:00
Peter F. Patel-Schneider a373a7d439 device: add descriptor for G500s 2023-09-16 10:35:26 -04:00
Peter F. Patel-Schneider 253930d628 tools: fix bug in scan-registers 2023-09-16 10:35:26 -04:00
Peter F. Patel-Schneider 90a0408bd6 rules: add single depress and release options for rule mouse click action 2023-09-16 10:28:56 -04:00
Peter F. Patel-Schneider fc38862e8b rules: add rule condition for hostname 2023-09-16 10:28:56 -04:00
Peter F. Patel-Schneider d3649b8011 tools: update keysym generation to current list of keysyms 2023-09-14 16:56:02 -04:00
Peter F. Patel-Schneider 8dd8c8b76f tools: allow device 0 in hidconsole 2023-08-12 14:51:31 -04:00
akay 21da0a16af Update Arch repository name and link
`community` was merged into `extra`
2023-08-12 14:51:10 -04:00
Peter F. Patel-Schneider 12f9c013f1 doc: install recent version before opening issues 2023-08-03 06:45:37 -04:00
Peter F. Patel-Schneider d7bd55bdf1 device: upgrade messages when no supported device found 2023-08-02 20:34:27 -04:00
Swapnil Devesh 0e8e052629
Documentation update to mention the gnome extension to get rules working under Wayland (#2103)
* Documentation update to mention the gnome extension to get rules working under Wayland

* Updates

* Updates
2023-08-01 07:20:52 -04:00
Carl George 65b9005d97 Remove udev-acl tag from udev rules
This was only needed for Ubuntu releases that are all now EOL.
2023-07-28 08:26:11 -04:00
Swapnil Devesh 91f1894e8b
Add support for process condition under wayland using solaar-gnome-extension (#2101)
* Add support for process condition under wayland using solaar-gnome-extension

* Fix typo

* Improvements

* Rename dbus extension

* Final fixes

* Fix style checks

* More styling fixes

* More fixes

* More fixes

---------

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2023-07-26 06:53:57 -04:00
Error504TimeOut 4160b0e74f Updated German Translation 2023-07-22 20:42:23 -04:00
Peter Dave Hello bee1b1dd39 po: update pot-file 2023-06-30 13:52:11 -04:00
Peter Dave Hello c721074d34 po: Update zh_TW Traditional Chinese locale 2023-06-30 13:50:52 -04:00
Peter F. Patel-Schneider c86d4be0fe hidapi: retry open several times with short wait to allow for delay in setting up permissions 2023-06-29 14:13:57 -04:00
daviddavid 444fd4aaf6 Update French translation
- by David Geiger <david.david@mageialinux-online.org>
2023-06-17 05:32:13 -04:00
daviddavid 640ebad4da Update French translation for 1.1.9 release
- by David Geiger <david.david@mageialinux-online.org>
2023-06-16 10:50:08 -04:00
Anderson Silva bf8c2b3d3d Update about.py
Update copyright date in about page to reflect current year (2023)
2023-05-30 15:32:52 -04:00
Peter F. Patel-Schneider 099e825298 device: add new ID for G733 Headset 2023-05-30 15:30:55 -04:00
Peter F. Patel-Schneider 0a91160a67 misc: restore tools/clean.sh 2023-05-19 09:38:53 -04:00
Peter F. Patel-Schneider d56c7d5a06 device: add bluetooth keyboard C714 2023-05-19 07:14:10 -04:00
Peter F. Patel-Schneider fd9653fa33 tools: update scan-registers.sh to fix a bug and scan pairing registers 2023-05-19 07:14:10 -04:00
Peter F. Patel-Schneider 1447b15ef4 device: remove assertion on last byte of ping responses 2023-05-19 07:14:10 -04:00
Peter F. Patel-Schneider 18492418e6 ui: add symbolic version of solaar icon 2023-05-19 07:12:19 -04:00
Peter F. Patel-Schneider 05e9441d3b docs: add description of several devices 2023-05-19 07:12:19 -04:00
Vladimir Kotal fb3675e91f
device: add MX Vertical mouse (#2053) 2023-04-18 13:19:02 -04:00
Peter F. Patel-Schneider 5b1d542d79 device: when finding name or codename ping if not known to be online 2023-04-18 07:00:50 -04:00
Peter F. Patel-Schneider 46a06f3870 device: fix bug in decoding G keys notification 2023-04-13 09:59:11 -04:00
John Veness b30d868eb5 docs: Standardise URLs and fix wording in i18n.md 2023-04-06 09:42:52 -04:00
John Veness 6b94412044
docs: Fix wording in installation.md (#2040) 2023-04-06 09:25:44 -04:00
John Veness ed27eadbab
docs: Fix link and wording in devices.md (#2039)
Made the URL link appear as a link, escaped some <>s, and made some other wording improvements
2023-04-06 08:10:07 -04:00
John Veness 73ed6511d8
docs: Add missing word in usage.md (#2038) 2023-04-06 06:36:47 -04:00
Peter F. Patel-Schneider bacc2c6c7a ui: put version in initial INFO logging message 2023-04-05 11:55:53 -04:00
Peter F. Patel-Schneider 4a9b46679c ui: rearrange code in tray.py 2023-04-05 11:55:53 -04:00
Peter F. Patel-Schneider dd7ec7e0bc release 1.1.9 2023-04-05 11:16:42 -04:00
Peter F. Patel-Schneider 3a563a18a6 device: add descriptior for EX110 keyboard 2023-04-05 11:12:56 -04:00
Peter F. Patel-Schneider 96b38bd6e3 release 1.1.9rc2 2023-04-05 11:12:56 -04:00
I7L0 dc4eb96f36
device: Add support for G535 wireless gaming headset (#2034) 2023-04-05 09:53:06 -04:00
John Veness 7aa770ee9e
docs: Fix punctuation and language in rules.md (#2032)
* Fix punctuation and language in rules.md

Fixed a few cases of backquote mistakes, unescaped <>, and misc language typos.

Took the liberty to unitalicise the third paragraph. Obviously it's important, but an entire paragraph in italics is hard to read.

I noticed there were two slightly different paragraphs about Setting conditions, which I assume is a mistake. I don't know which is better than the other, so I simply moved them next to each other for ease of comparison and manual merging/editing.

* Fixed erroneous backquote in rules.md

Fixed a ` which should have been a <. Error introduced by myself in the first place!
2023-04-04 07:47:47 -04:00
Athanasios Nektarios Karachalios Stagkas 586724d40c
po: updated greek translation (#2030)
Co-authored-by: Καραχάλιος-Στάγκας Αθανάσιος-Νεκτάριος <pyrofani@NasosDebian>
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2023-04-02 19:45:48 -04:00
John Veness a4893ae839
Fix sentences and punctuation in features.md (#2029)
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2023-04-02 19:43:32 -04:00
John Veness f5c5e14c8d
docs: Fix spelling and capitalisation in index.md (#2028)
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2023-04-02 19:41:51 -04:00
John Veness d639127f79 Fix punctuation and wording in capabilities.md
A few minor changes, hopefully self-explanatory.
2023-04-02 13:49:41 -04:00
Matthaiks 63ce2e4485 Update Polish translation 2023-03-09 08:53:43 -05:00
Peter F. Patel-Schneider 078cded603 release 1.1.9rc1 2023-03-09 06:43:35 -05:00
Peter F. Patel-Schneider c6f468db06 docs: add description for LIFT mouse 2023-03-09 06:43:35 -05:00
Peter F. Patel-Schneider 04f2adfd75 ui: remove deprecated GTK code 2023-03-08 20:40:27 -05:00
Peter F. Patel-Schneider ee3f2652ba ui: zero exit code for kill interrupts 2023-03-02 07:57:26 -05:00
Peter F. Patel-Schneider bdde284b38 docs: update information about MX Master 3 for Business 2023-03-02 07:57:26 -05:00
Peter F. Patel-Schneider 55865d13ad rules: add Test condition for battery charging 2023-02-25 19:25:43 -05:00
Peter F. Patel-Schneider 49bb19bde4 doc: add description of G304 Lightspeed Wireless Gaming Mouse 2023-02-21 10:25:30 -05:00
Peter F. Patel-Schneider 4f1ad33e39 device: get wpid for 28Mz devices from udev when enumerating 2023-02-21 10:25:30 -05:00
Peter F. Patel-Schneider 78341f87e9 ui: add editing of Device rule condition 2023-02-18 11:25:25 -05:00
Peter F. Patel-Schneider df746fd7f4 rules: add Device condition 2023-02-18 11:25:25 -05:00
Peter F. Patel-Schneider acc559743e docs: add Logi Pop Keys description 2023-02-18 11:25:25 -05:00
Peter F. Patel-Schneider 57c0c5d4b3 ui: don't show wireless link or battery information when unknown or not present 2023-02-16 07:39:36 -05:00
Peter F. Patel-Schneider dcbf547195 ui: online devices with no battery information probably don't have a battery 2023-02-16 07:39:36 -05:00
Peter F. Patel-Schneider 85c1260ac6 device: add desccriptor for G9x 2023-02-16 07:39:36 -05:00
Peter F. Patel-Schneider d41c607188 receiver: fix bug in determining kind of devices for 27Mz receivers 2023-02-11 12:28:01 -05:00
Peter F. Patel-Schneider 39f6341a8f device: add descriptor for LX7 mouse 2023-02-11 12:28:01 -05:00
Peter F. Patel-Schneider 71e70d5087 doc: update documentation for EX100 receiver 2023-02-11 12:28:01 -05:00
Peter F. Patel-Schneider de308464b0 doc: add description of Illuminated Keyboard with ID C318 2023-02-03 09:34:27 -05:00
Peter F. Patel-Schneider 8c803b415e ui: ignore smooth scroll settings by default 2023-02-03 09:34:27 -05:00
Peter F. Patel-Schneider ff24947321 configuration: fix glitch when changing versions 2023-02-03 09:17:19 -05:00
Peter F. Patel-Schneider 6cbd45a1c0 rules: add more debugging output for rules 2023-02-03 09:12:59 -05:00
Peter F. Patel-Schneider 2890966b3f device: add descriptor for Illuminated Keyboard USB ID C318 2023-01-16 08:44:56 -05:00
Peter F. Patel-Schneider 0905ed5f43 device: clean up pinging code 2023-01-16 08:44:56 -05:00
Peter F. Patel-Schneider 5657c1ac99 device: put initial ping of direct-connected devices inside listener thread 2023-01-16 08:44:56 -05:00
Peter F. Patel-Schneider 79de531858 settings: read and check before write for range settings 2023-01-09 13:22:45 -05:00
Peter F. Patel-Schneider c9f9425b37 doc: update lightspeed receiver descriptions 2023-01-09 13:22:45 -05:00
Peter F. Patel-Schneider 14fd8efc9e ui: mention compatability and non-connection in pairing window 2023-01-09 05:20:16 -05:00
Peter F. Patel-Schneider ef0db31687 ui: improve determination of whether pairing possible 2023-01-09 05:20:16 -05:00
Peter F. Patel-Schneider 6b9c8cffef receiver: count found devices when enumerating them and cut off when all found 2023-01-09 05:20:16 -05:00
Matt Broadway 351e2268cd
config: remove derived fields from config file when Solaar version changes
* renamed variables

* Restructured configuration loading and ignore config generated by other versions

This fixes an issue where newer solaar versions may have better support for a
device which are not utilised because it is reading a configuration file
generated by an earlier version before support was added.

* fixed formatting

* discard only absent and battery

* discard name property as well

* do not discard name
2023-01-03 17:06:04 -05:00
Peter F. Patel-Schneider a51bcfb376 device: allow device descriptors without name and codename 2023-01-03 15:46:24 -05:00
Matt Broadway f8a6396cdf
ui: Filter and escape technical detail fields (#1953)
Since the values for the 'technical details' fields are arbitrary
some characters need to be filtered out for them to display properly.
markup characters such as < or > are now escaped and null characters
are removed.

Empty fields are no longer displayed in technical details.
2023-01-02 15:07:26 -05:00
Peter F. Patel-Schneider ab4226e292 settings: add setting for ADC power management 2023-01-02 11:37:32 -05:00
Peter F. Patel-Schneider 7c12d0ccd2 docs: add description of G535 and N545 2022-12-31 12:23:23 -05:00
Peter F. Patel-Schneider 3974f1eb4e device: correctly determine whether to ping with a long HID++ message 2022-12-31 12:23:23 -05:00
vulpes2 eacbfbd178
device: add description for K470 keyboard from the MK470 combo (#1945) 2022-12-25 20:11:48 -05:00
Peter F. Patel-Schneider f9353022a9 docs: add setting value for mouse gestures 2022-12-21 08:39:42 -05:00
Danfro 2d76d770f2
po: update German translation (#1940)
* update German translation
2022-12-18 18:22:28 -05:00
daviddavid a9511f1783 Update French translation for 1.1.8 release
- by David Geiger <david.david@mageialinux-online.org>
2022-12-18 13:16:06 -05:00
Peter F. Patel-Schneider acd8fc77ca tools: remove unnecessary clean.sh 2022-12-17 13:30:23 -05:00
Peter F. Patel-Schneider 727e964a77 tools: remove non-working monitor.py 2022-12-17 13:30:23 -05:00
Peter F. Patel-Schneider 36e136b841 ui: retry adding devices if permissions are wrong 2022-12-17 13:28:11 -05:00
Peter F. Patel-Schneider fc1b72faa1 ui: better handling of IO errors at device creation 2022-12-17 13:28:11 -05:00
Peter F. Patel-Schneider 7215022089 ui: improve error pop-up for errors when creating devices 2022-12-17 13:28:11 -05:00
Peter F. Patel-Schneider 9d278edc82 ui: add KeyIsDown to list of conditions 2022-12-17 13:21:52 -05:00
Peter F. Patel-Schneider ceb174dc50 ui: allow editing of KeyIsDown conditions 2022-12-17 13:21:52 -05:00
Peter F. Patel-Schneider 2bda897e55 docs: document KeyIsDown rule condition 2022-12-17 13:21:52 -05:00
Peter F. Patel-Schneider bfe4993e54 rules: add KeyIsDown condition 2022-12-17 13:21:52 -05:00
Peter F. Patel-Schneider 79d3a60027 device: clean up device creation 2022-12-17 13:21:27 -05:00
Peter F. Patel-Schneider e301551dde receiver: clean up receiver creation 2022-12-17 13:21:27 -05:00
Peter F. Patel-Schneider 141721bc37 release 1.1.8 2022-12-17 13:06:23 -05:00
Peter F. Patel-Schneider bd370c07e7 docs: add description of G903 2022-12-17 13:06:23 -05:00
Matthaiks 4e7b6b3cd9 po: update Polish translation 2022-12-12 08:44:53 -05:00
Peter F. Patel-Schneider 408090ad38 release 1.1.8rc3 2022-12-12 07:50:21 -05:00
Peter F. Patel-Schneider 3c9f2f616c docs: document parameter for thumb wheel rule tests 2022-12-11 17:27:37 -05:00
Peter F. Patel-Schneider d6872422fd ui: allow editing of rules with parameters 2022-12-11 17:27:37 -05:00
Peter F. Patel-Schneider 39ae8d4b32 rules: add argument to thumb_wheel rules 2022-12-11 17:27:37 -05:00
Peter F. Patel-Schneider a14be19a4b po: fix name of Serbian translation file 2022-12-10 12:37:45 -05:00
Matthaiks a861b06db8
Update Polish translation (#1920)
* po: update Polish translation

* Update solaar.desktop
2022-12-10 12:34:56 -05:00
Peter F. Patel-Schneider bebd9c6e17 release 1.1.8rc2 2022-12-10 08:51:29 -05:00
Peter F. Patel-Schneider 4c5f583607 release 1.1.8rc1 2022-12-10 08:42:56 -05:00
Peter F. Patel-Schneider 773dac56b6 solaar: improve handling of wheel notifications 2022-12-09 06:59:37 -05:00
Peter F. Patel-Schneider 99f9c8762e settings: only record changes of scroll wheel ratchet 2022-12-09 06:59:37 -05:00
Peter F. Patel-Schneider f3a0b85e2b settings: device errors don't eliminiate setting 2022-12-06 14:20:59 -05:00
Peter F. Patel-Schneider fe901fe3c2 device: more robust access to keyword exception fields 2022-12-06 14:20:59 -05:00
Peter F. Patel-Schneider 7b6b11ac73 device: add support for config change feature 2022-12-05 16:44:52 -05:00
Peter F. Patel-Schneider beb9dfdab8 solaar: clean up gtk code 2022-12-05 16:42:56 -05:00
Peter F. Patel-Schneider 7874886a61 docs: add known issue with other device controllers 2022-12-05 09:49:09 -05:00
Peter F. Patel-Schneider a1b006b502 docs: update mouse gestures rules documentation 2022-12-01 21:07:03 -05:00
ejsc1 84fa4e0e69
dist: update flake8 version 2022-11-30 16:53:02 -05:00
Peter F. Patel-Schneider e1e843346c solaar: fix tyop in ping_all 2022-11-30 15:21:59 -05:00
Peter F. Patel-Schneider f4b25b2594 dist: get Ubuntu version from dpkg-parsechangelog 2022-11-28 11:42:05 -05:00
Peter F. Patel-Schneider 4a9319a4c0 dist: get Ubuntu version from dpkg-parsechangelog 2022-11-28 11:27:07 -05:00
Peter F. Patel-Schneider c2b4d5a8c8 dist: get Ubuntu version from dpkg-parsechangelog 2022-11-28 06:25:43 -05:00
Peter F. Patel-Schneider 4e6f59c2ad dist: get Ubuntu version from dpkg-parsechangelog 2022-11-27 09:41:02 -05:00
Peter F. Patel-Schneider 9b868c8869 dist: get Ubuntu version from dpkg-parsechangelog 2022-11-27 00:02:37 -05:00
ejsc1 0692dd1911
misc: update .pre-commit-config.yaml (#1891)
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-11-26 22:41:33 -05:00
ejsc1 5656f90cdb
misc: update yapf version
* misc: update yapf version v2

* Update .pre-commit-config.yaml

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-11-26 22:37:32 -05:00
ejsc1 0c7a9dd0a7
misc: update isort to current version
* Update .pre-commit-config.yaml

* Update solaar

* Update udev.py

* Update __init__.py

* Update gtk.py

* Update i18n.py

* Update listener.py

* Update icons.py

* Update notify.py

* Update hidconsole

* Update gtk.py

* Update icons.py

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-11-26 13:58:46 -05:00
Peter F. Patel-Schneider b73030a0f1 dist: get Ubuntu version from dpkg-parsechangelog 2022-11-26 12:26:05 -05:00
Peter F. Patel-Schneider a6461d6a6e dist: print Ubuntu PPA environment 2022-11-25 05:25:43 -05:00
Peter F. Patel-Schneider 0547b1895a dist: get commit from Ubuntu PPA directory name if no git information 2022-11-24 12:48:19 -05:00
ejsc1 934b486b13
dist: update pre-commit versions and python version
* Update checks.yml

* Create .python-version

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-11-23 14:20:56 -05:00
Peter F. Patel-Schneider 8765089d43 dist: use separate data files for version and commit information 2022-11-23 14:05:03 -05:00
ejsc1 fe65ce936f Update about.py (Spanish)
Added by translation made to the Solaar Project.
2022-11-21 16:44:36 -05:00
Peter F. Patel-Schneider b5b6152e06 dist: use git describe to get git version information 2022-11-20 19:04:31 -05:00
Peter F. Patel-Schneider 91b9a3a472 dist: fix flake8 URL 2022-11-20 16:18:37 -05:00
Peter F. Patel-Schneider 17c30a22bb docs: update installation instructions 2022-11-19 16:15:13 -05:00
Peter F. Patel-Schneider 49c7e5cc44 dist: add 8-character commit hash to version information 2022-11-19 16:15:13 -05:00
ejsc1 d61d507a2b
dist: update solaar.desktop (#1857)
Added spanish language.
2022-11-19 14:20:52 -05:00
Peter F. Patel-Schneider 0a2f57f51a dist: get release in setup.py by reading lib/solaar/__init__.py 2022-11-19 11:03:32 -05:00
Peter F. Patel-Schneider c7ff89c817 docs: remove version number from doc/_config.yml 2022-11-19 09:47:31 -05:00
ejsc1 74b2c36edf Update es.po
Change \n in line 1324
2022-11-18 08:13:19 -05:00
ejsc1 8716dc7511
misc: Update solaar.desktop (#1847)
Added Spanish language in the comment of Name=Solaar
2022-11-17 15:08:12 -05:00
ejsc1 14765414ca
po: Update es.po (#1846)
The Spanish translation of the Solaar project is being updated.
2022-11-17 15:05:09 -05:00
Peter F. Patel-Schneider 9c361c4cf6 docs: update documentation on several devices 2022-11-16 10:35:37 -05:00
Peter F. Patel-Schneider 7dc466fdf4 docs: update documentation on several devices 2022-11-15 15:29:48 -05:00
Peter F. Patel-Schneider 4a0a47e4f7 receiver: clarify status of C542 receiver 2022-11-14 16:51:38 -05:00
Peter F. Patel-Schneider 106959d33a doc: update devices directory 2022-11-14 16:51:38 -05:00
Peter F. Patel-Schneider a04be16aec receiver: show name of disconnecting receiver or device in disconnect warning 2022-11-08 22:03:25 -05:00
Peter F. Patel-Schneider 7a6d673503 docs: add description of several devices 2022-11-08 21:43:38 -05:00
bigwoof 00acf99026 Fixed typo in capcbilities.md
mous -> mouse
2022-11-08 21:42:22 -05:00
Peter F. Patel-Schneider 691227170f ui: reduce standard size of rule editor window 2022-11-06 16:21:50 -05:00
Peter F. Patel-Schneider e15b58fdaa install: remove unnecessary dependency on typing_extensions 2022-11-05 10:47:35 -04:00
Peter F. Patel-Schneider a14a89781e release 1.1.7 2022-11-03 07:22:00 -04:00
Peter F. Patel-Schneider e699209370 install: add depdendency on typing_extensions 2022-11-03 07:22:00 -04:00
Peter F. Patel-Schneider 178ef1eab9 doc: add Wireless All-in-One Keyboard TK820 2022-11-03 07:22:00 -04:00
Peter F. Patel-Schneider f539ac064e release 1.1.7rc2 2022-10-30 12:17:00 -04:00
Peter F. Patel-Schneider b08e5c70ec relese 1.1.7rc2 2022-10-30 12:17:00 -04:00
Peter F. Patel-Schneider b5f6a509c9 cli: don't defer saves in cli and don't require gtk in cli 2022-10-30 12:09:30 -04:00
gogogogi 5e4ec6822d Update hr.po 2022-10-28 07:26:23 -04:00
muzena cfedf7ae16 Update Croatian translation 2022-10-28 07:26:23 -04:00
Peter F. Patel-Schneider 925172d030 hidapi: be more permissive when recognizing HID++ report descriptors 2022-10-27 11:11:19 -04:00
Matthaiks d744a24d5c po: update Polish translation 2022-10-27 08:15:32 -04:00
Peter F. Patel-Schneider 6bbf83a293 release 1.1.7rc1 2022-10-26 21:09:30 -04:00
Peter F. Patel-Schneider 5d807f9752 settings: set minimum ratchet speed to 1, not 0 2022-10-26 20:56:09 -04:00
Peter F. Patel-Schneider 5bf999b841 device: switch scroll ratcheting setting in response to scroll ratchet key notification 2022-10-26 20:56:09 -04:00
Peter F. Patel-Schneider 76c5b3e813 settings: add setting to turn scroll ratchet on and off 2022-10-26 20:56:09 -04:00
Peter F. Patel-Schneider 5cd3ac60c5 ui: eliminate visual glitch when updating range settings 2022-10-26 08:08:58 -04:00
Peter F. Patel-Schneider 8d0795af53 solaar: make hid-parser an optional dependency 2022-10-25 10:51:23 -04:00
Peter F. Patel-Schneider 9ce0fd7060 release 1.1.6 2022-10-24 19:58:39 -04:00
Peter F. Patel-Schneider 98655c1048 docs: mention that fn-swap is saved on some devices 2022-10-24 19:58:39 -04:00
Peter F. Patel-Schneider 51a917e6ac docs: add Dell-branded mouse and keyboard 2022-10-21 16:48:07 -04:00
Peter F. Patel-Schneider d6847a6ce4 ui: only update remaining pairings after sucessful pairing 2022-10-21 16:48:07 -04:00
Peter F. Patel-Schneider 9e5eb5853e listener: check for presence of status attribute when resuming 2022-10-21 16:48:07 -04:00
muzena b05f4111d5 Update Croatian translation 2022-10-21 16:36:56 -04:00
Matthaiks c6b8c0bd27 po: update Polish translation 2022-10-13 17:47:38 -04:00
Peter F. Patel-Schneider b67a6030a4 1.1.6rc4 2022-10-13 16:38:38 -04:00
Peter F. Patel-Schneider a11fa3ae5e 1.1.6rc3 2022-10-13 16:29:31 -04:00
Peter F. Patel-Schneider 049dfcecbc release 1.1.6rc2 2022-10-13 16:20:53 -04:00
Peter F. Patel-Schneider cb22bc63e1 docs: update cloning instruction to also clone submodule 2022-10-13 16:14:30 -04:00
Peter F. Patel-Schneider 2462d1aad7 receiver: allow for unknown receivers 2022-10-13 16:14:30 -04:00
Peter F. Patel-Schneider 51ec36fef4 receiver: rationalize receiver information structure 2022-10-13 16:14:30 -04:00
Peter F. Patel-Schneider d1572b0c02 hidapi: rationalize DeviceInfo structure 2022-10-13 16:14:30 -04:00
Peter F. Patel-Schneider 3e90c3bc8a hidapi: process hid report descriptors to identify devices 2022-10-13 16:14:30 -04:00
Peter F. Patel-Schneider afada652e8 receiver: add Dell receiver C535 2022-10-13 16:14:30 -04:00
Peter F. Patel-Schneider 5b66dc5796 docs: update description of Marathon Mouse M705 2022-10-13 16:00:15 -04:00
Peter F. Patel-Schneider 67c1d7e778 settings: don't add non-existant key in raw xy processing 2022-10-13 16:00:15 -04:00
Peter F. Patel-Schneider 255c315ce1 docs: add Dell receiver and several devices 2022-10-13 16:00:15 -04:00
Peter F. Patel-Schneider 6a022f38ec devices: add special keys from MX Mechanical Mini 2022-10-13 16:00:15 -04:00
Peter F. Patel-Schneider 6b1e8f8a99 device: fix processing of HID++ 1.0 battery reports 2022-10-13 07:57:57 -04:00
Peter F. Patel-Schneider 130aa20bb1 solaar: handle exceptions processing configuration file 2022-10-11 12:53:46 -04:00
Peter F. Patel-Schneider 8a3cbc5378 devices: add Logitech PRO Gaming Keyboard 2022-10-06 22:00:38 -04:00
Peter F. Patel-Schneider be81013704 solaar: fix bad entries in divert-keys when found 2022-10-06 22:00:38 -04:00
Peter F. Patel-Schneider 193e280e87 solaar: correctly convert old-style diversions to new style and remove old ones 2022-10-06 22:00:38 -04:00
Peter F. Patel-Schneider 55cc8ed5dc settings: add optional save argument to write_key_value methods 2022-10-06 22:00:38 -04:00
Peter F. Patel-Schneider a97070e60e configure: remove debugging print statement 2022-09-30 01:28:12 -04:00
Peter F. Patel-Schneider 333a5083c1 solaar: use device name if device modelId is zeroes 2022-09-27 16:46:02 -04:00
Peter F. Patel-Schneider 87d13ddc5c docs: update G733 description 2022-09-27 16:46:02 -04:00
Peter F. Patel-Schneider a44a1c89de settings: clean up code in DivertKeys setting 2022-09-26 09:37:14 -04:00
Peter F. Patel-Schneider 0ce2fe8302 receiver: don't show normal DJ messages in debug log 2022-09-26 09:37:14 -04:00
Peter F. Patel-Schneider 6233cdf1f0 rules: update documentation for Later rule action 2022-09-26 09:36:46 -04:00
Peter F. Patel-Schneider 9a89ef30d3 rules: fix bug causing repeated later execution 2022-09-26 09:36:46 -04:00
Peter F. Patel-Schneider aa5e75fa18 ui: add Later action to rules editor 2022-09-26 09:36:46 -04:00
Peter F. Patel-Schneider 619223e8be rules: add Later action 2022-09-26 09:36:46 -04:00
Peter F. Patel-Schneider 7031f5338f device: correctly record battery feature when ADC MEASUREMENT produces error 2022-09-25 12:22:36 -04:00
Peter F. Patel-Schneider 3a6b479e8b cli: print feature call errors in solaar show instead of terminating 2022-09-25 12:22:36 -04:00
Peter F. Patel-Schneider b2f9df965a device: use ADC notifications to set device inactive and active 2022-09-25 12:22:36 -04:00
Peter F. Patel-Schneider cdf3957180 device: add one to feature count to count ROOT feature 2022-09-25 12:22:36 -04:00
Peter F. Patel-Schneider 3a0a9e04b0 docs: update description for G502 and add description for G733 headset 2022-09-25 12:22:36 -04:00
Peter F. Patel-Schneider 7663e204bb rules: don't check modifiers for KeyPress actions that are not clicks 2022-09-20 21:03:28 -04:00
Peter F. Patel-Schneider 500ae07363 docs: update Marathon Mouse M705 101B description 2022-09-20 21:03:28 -04:00
Peter F. Patel-Schneider 295cfe2846 docs: augment comments about what Solaar cannot do 2022-09-20 21:03:28 -04:00
Peter F. Patel-Schneider 4f061595e9 receiver: fix bug in printing closed threaded handle 2022-09-15 22:13:17 -04:00
Peter F. Patel-Schneider a1aa584b7e receiver: use only product records to determine whether receivers can unpair 2022-09-15 10:30:54 -04:00
Peter F. Patel-Schneider 5ed4c05db8 device: add conditional delay to apply all to get around race with Linux driver 2022-09-15 09:51:24 -04:00
Peter F. Patel-Schneider f7898cd994 docs: add description of Marathon Mouse M705 2022-09-15 09:51:24 -04:00
Peter F. Patel-Schneider 35672619f0 release 1.1.5 2022-09-14 19:03:59 -04:00
Peter F. Patel-Schneider 13cc244499 docs: add several device descriptions 2022-09-14 19:03:59 -04:00
Peter F. Patel-Schneider afaeb7fffb device: add G213 Prodigy Gaming Keyboard 2022-09-13 07:55:31 -04:00
gogogogi 4345f68292
po: Update Croatian translation (#1759) 2022-09-13 07:18:50 -04:00
Rongrong 48c43dcec1 po: update zh_CN translation 2022-09-10 14:11:46 -04:00
Matthaiks 05725a4523 po: update Polish translation 2022-09-10 14:08:46 -04:00
Rongrong ccff54609f chore: clean a redundant space in a UI label 2022-09-10 10:18:16 -04:00
Peter F. Patel-Schneider ee1bd06f64 release 1.1.5rc1 2022-09-10 09:41:31 -04:00
Osman Karagöz 1cfe5eff71
po: Turkish translate completed (#1752) 2022-09-09 06:38:22 -04:00
Peter F. Patel-Schneider 3580da62d9 docs: move old device descriptions to new locations and fix up 2022-09-07 11:42:10 -04:00
Peter F. Patel-Schneider 27a46b2e62 settings: increase minimum stopped time betweeen mouse movements 2022-09-07 11:34:46 -04:00
Peter F. Patel-Schneider 002ca8bdcb rules: fix bug with non-recognized empty mouse movement 2022-09-07 11:34:46 -04:00
Matt Alexander 518cf9777c
docs: fix typos in Solaar options documentation 2022-09-06 18:23:08 -04:00
Peter F. Patel-Schneider 5082ac9745 ui: allow config panel to scroll 2022-09-04 12:05:53 -04:00
Peter F. Patel-Schneider 14587c4aed doc: descriptions for K360 4004 and MX Master 4071 2022-09-04 12:05:53 -04:00
Peter F. Patel-Schneider 4a8cd92824 doc: descriptions for Lightspeed Receiver C541 and G915 WIRELESS RGB Mechanical Gaming Keyboard 407E 2022-09-04 12:05:53 -04:00
Peter F. Patel-Schneider a6669da179 ui: change security tooltip for unencrypted wireless connections 2022-09-01 10:21:45 -04:00
John Erling Blad acbd0ecd2f
po: Norwegian Bokmal 2022-08-31 18:08:15 -04:00
Peter F. Patel-Schneider bb8ed32ba7 doc: add known issue for key presses and changing hosts 2022-08-31 11:25:03 -04:00
Peter F. Patel-Schneider 0e306e7506 docs: add known issue about diverted keys 2022-08-31 11:04:00 -04:00
Peter F. Patel-Schneider 8b3fb3cc23 docs: state that the Solaar GUI should run continously 2022-08-31 11:04:00 -04:00
Peter F. Patel-Schneider f39aebb089 cli: don't apply settings in solaar config 2022-08-30 19:29:41 -04:00
Peter F. Patel-Schneider 61caa94d75 settings: move rawXY patch to new code for both sliding dpi and mouse gestures 2022-08-29 11:38:12 -04:00
Peter F. Patel-Schneider a3e2552ee0 ui: use device list in Active condition 2022-08-28 09:52:33 -04:00
Peter F. Patel-Schneider 20ac8db787 ui: add description of rule components to rule editor 2022-08-28 09:52:33 -04:00
Peter F. Patel-Schneider d7a7f1e637 docs: add information on enhancement requests to add new devices 2022-08-25 14:41:44 -04:00
Peter F. Patel-Schneider 72dbf1c32f settings: ignore first movement for mouse gestures when reprog controls version is 5 or more 2022-08-25 09:55:56 -04:00
Peter F. Patel-Schneider f1d69ede2c ui: add Active condition to rule editor 2022-08-23 09:18:57 -04:00
Peter F. Patel-Schneider 1708b6edf7 docs: document Active rule condition 2022-08-23 09:18:57 -04:00
Peter F. Patel-Schneider 9f8882acd8 rules: add rule condition to test whether a device is active 2022-08-23 09:18:57 -04:00
Peter F. Patel-Schneider f6764fcc87 docs: update ERGO M575 Trackball 4096 description 2022-08-23 08:29:15 -04:00
Peter F. Patel-Schneider f884930c74 docs: add Wireless Mobile Mouse MX Anywhere 2S 406A description 2022-08-23 08:29:15 -04:00
Peter F. Patel-Schneider 0b7b037e11 cli: terminate iteration over receiver devices when all have been found 2022-08-23 08:29:15 -04:00
Peter F. Patel-Schneider 7ab7bf6c1a rules: downgrade Set prolem messages from error to warning 2022-08-23 08:29:15 -04:00
Peter F. Patel-Schneider e3cc516cb3 ui: log informational messages and above to a temporary file 2022-08-22 19:32:57 -04:00
Peter F. Patel-Schneider 7bf187b7ca docs: add device information for ERGO M575 Trackball 2022-08-21 06:08:40 -04:00
Peter F. Patel-Schneider 95cbaeaba3 ui: don't produce warnings when editing rules in rule editor 2022-08-21 06:08:40 -04:00
Peter F. Patel-Schneider e164291e7a rules: save rules file even if there are no rules to save 2022-08-21 06:08:40 -04:00
Peter F. Patel-Schneider 590fad92d0 docs: device documentation for MX Keys Keyboard and Wireless Mouse Pebble M350 2022-08-20 20:12:48 -04:00
Peter F. Patel-Schneider ca13e06519 device: get extended pairing information early and allow for unknown WPID 2022-08-20 20:12:48 -04:00
Peter F. Patel-Schneider 2fbaa4a3aa receiver: return null values if no pairing information available 2022-08-20 20:12:48 -04:00
Peter F. Patel-Schneider 4059b377b4 receiver: use last_id as maximum device number not max_devices 2022-08-20 20:12:48 -04:00
Peter F. Patel-Schneider a36a6297f3 cli: show more registers in solaar probe 2022-08-20 20:12:48 -04:00
Peter F. Patel-Schneider fd64fa3810 docs: reflect change from json to yaml in capabilities documention 2022-08-20 13:21:58 -04:00
Peter F. Patel-Schneider 76afec5c82
cli: show features versions in solaar show (#1709) 2022-08-20 12:34:15 -04:00
Peter F. Patel-Schneider d4d4574b3f device: don't use field that may require communication with device in equality test 2022-08-20 08:49:16 -04:00
Peter F. Patel-Schneider 58dde18f3c device: fix exception when removing device not in instance list 2022-08-20 08:49:16 -04:00
shoffmeister 4a970b5b2e
po: Use German word Gestentaste in translation
This matches the German language Logitech marketing material.
2022-08-20 08:45:39 -04:00
Peter F. Patel-Schneider 921bf1370f docs: update device documentation for MX Keys Mini and MX Master 3S 2022-08-18 10:34:56 -04:00
Peter F. Patel-Schneider 3b3d80e5d0 docs: update device directory documentation 2022-08-18 10:10:10 -04:00
Peter F. Patel-Schneider bae39fbf3d docs: remove superceeded device documentation files 2022-08-17 15:08:30 -04:00
Peter F. Patel-Schneider eac916b57c docs: update device documentation files 2022-08-17 14:49:50 -04:00
Peter F. Patel-Schneider 030ead9a1f docs: new conventions for device documentation files 2022-08-17 14:49:50 -04:00
Renato 327b7eb348
po: Added Serbian translation (#1687)
* po: AddSerbian translation
2022-08-10 12:13:35 -04:00
Peter F. Patel-Schneider 5b87ed31da device: add desccriptor for G935 headset 2022-08-10 12:11:48 -04:00
Ben Webb bad8a06cee device: add G502 Proteus Spectrum Optical Mouse 2022-08-09 10:23:31 -04:00
Peter F. Patel-Schneider e72c637667 device: keep track of feature versions 2022-08-07 09:42:40 -04:00
Further 3f350ef4db
po: update zh_TW translation (#1681) 2022-07-28 17:31:48 -04:00
Peter F. Patel-Schneider a6f08b91aa rules: require gtk 3.0 2022-07-26 19:04:07 -04:00
Davide Cavalca 2229d64a7c
rules: Fix circular import (#1673) 2022-07-26 14:30:27 -04:00
Peter F. Patel-Schneider f291321f8b rules: find devices using method in Device 2022-07-26 09:28:17 -04:00
Peter F. Patel-Schneider 218f7c9620 device: keep track of devices in list 2022-07-26 09:28:17 -04:00
Rongrong ac7bf547e1 po: update zh_CN translation 2022-07-26 08:27:13 -04:00
Peter F. Patel-Schneider ddd3ef72d3 settings: convert old-style mouse gestures and dpi sliding settings to new style 2022-07-25 16:26:21 -04:00
Peter F. Patel-Schneider 4349f4e154 docs: document changed Smart Shift and Mouse Gestures processing 2022-07-23 06:44:57 -04:00
Peter F. Patel-Schneider cacf94b6f7 settings: allow multiple keys for mouse gestures and dpi sliding 2022-07-23 06:44:57 -04:00
Erich Ritz 2bb344d4e3 Fix release date in io.github.pwr_solaar.solaar.metainfo.xml
Fix release date for 1.1.4: month should be "07" instead of "77".
2022-07-18 10:32:36 -04:00
Peter F. Patel-Schneider c8f3baf261 cli: explicitly save configuration at end of solaar config if no GUI running 2022-07-17 09:41:41 -04:00
Peter F. Patel-Schneider e51b98e1fe configuration: defer configuration file writes for up to 5 seconds 2022-07-17 09:41:41 -04:00
Peter F. Patel-Schneider 159bcfa173 device: use correct Solaar functions for unified and voltage battery functions 2022-07-15 13:53:54 -04:00
Peter F. Patel-Schneider ceaaaa917e settings: defensive check for missing keys array in mouse gestures setting 2022-07-10 11:08:28 -04:00
Peter F. Patel-Schneider eabf71e120 device: compute approximate charge level for adc measurement feature 2022-07-10 11:08:28 -04:00
Peter F. Patel-Schneider 2fd8068791 device: fix bugs in battery notification processing 2022-07-10 11:08:28 -04:00
Peter F. Patel-Schneider adf5a07919 ui: better presentation of battery information 2022-07-10 11:08:28 -04:00
Peter F. Patel-Schneider 4c126f417d device: add support for ADC MEASUREMENT battery feature 2022-07-10 11:08:28 -04:00
Peter F. Patel-Schneider 83eb836177 device: regularize and improve battery status gathering and reporting 2022-07-10 11:08:28 -04:00
Peter F. Patel-Schneider d362a24f17 doc: add information on how to find divertable key names in solaar show output 2022-07-08 06:37:16 -04:00
Peter F. Patel-Schneider 4c54261f91 device: better warnings for feature call errors with reprogrammable key and gesture settings 2022-07-07 22:05:03 -04:00
Haochen Tong 1449a47263 ui: increase entry size for ChoiceControlBig 2022-07-07 16:13:52 -04:00
Peter F. Patel-Schneider 20ffb31e1d release 1.1.4 2022-07-04 09:16:32 -04:00
gogogogi 06abbf4807
po: Update Croatian translation
* Update Croatian translation

* Update hr.po
2022-07-01 14:54:28 -04:00
gogogogi f74a100569
po: Update Croatian translation
* Update Croatian translation

* Update hr.po
2022-06-30 17:27:06 -04:00
Peter F. Patel-Schneider 40ade296a5 release 1.1.4rc2 2022-06-29 14:16:53 -04:00
Peter F. Patel-Schneider abb99a8d8e settings: handle unusual values for persistent remappable action 2022-06-29 09:56:14 -04:00
Peter F. Patel-Schneider c741b372e1 settings: remove unused class variables 2022-06-29 09:56:14 -04:00
Peter F. Patel-Schneider 2658fbba5a device: fix no-output values for persistent key mappings 2022-06-26 18:26:21 -04:00
Peter F. Patel-Schneider 34685852aa doc: improve documentation on library needed for system tray integration 2022-06-24 09:43:30 -04:00
Peter F. Patel-Schneider 8941d2cfde ui: remove blank lines from system tray popup 2022-06-24 09:43:30 -04:00
Matthaiks f7f798fc8d po: update Polish translation 2022-06-22 11:49:39 -04:00
Peter F. Patel-Schneider ea790ae656 release 1.1.4rc1 2022-06-22 07:26:43 -04:00
Peter F. Patel-Schneider 97c65d05e2 ui: add depress and release KeyPress options to rule editor 2022-06-21 20:23:22 -04:00
Peter F. Patel-Schneider c8ba397e0e rules: add depress and release options to KeyPress rule action 2022-06-21 20:23:22 -04:00
Peter F. Patel-Schneider cc0ddb8df5 receiver: only close existing devices for receiver 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider 6b77de813f settings: correctly import pack 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider 5dc9be0a04 settings: differentiate debug messages for different setting types 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider 12217d6fa5 ui: implement packed range setting in config panel 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider c9810e606e ui: only produce warning for unimplemented display of setting 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider ec0e304fdc settings: add sidetone and equalizer settings for headsets 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider 777a7138c1 settings: add packed ranges setting 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider f1e2a0c449 receiver: use built-ins for conversions between int and byte string 2022-06-21 18:39:37 -04:00
Peter F. Patel-Schneider db9c065821 rules: don't add HI_RES wheel ecodes to evdev device codes 2022-06-16 09:16:57 -04:00
Peter F. Patel-Schneider 0d248c02ba settings: handle null key in persistent remappable actions when device does not respond 2022-05-28 10:11:18 -04:00
Peter F. Patel-Schneider 42faf0c3a0 device: consult polling rate feature for polling rate 2022-05-28 09:58:05 -04:00
Peter F. Patel-Schneider 15d383ad30 device: don't open second handle for devices 2022-05-28 09:58:05 -04:00
Peter F. Patel-Schneider 1b4a631597 receiver: close device handles when receiver is removed 2022-05-28 09:58:05 -04:00
Peter F. Patel-Schneider 50f0b6fc06 receiver: add ILLUMINATION feature number 2022-05-28 09:58:05 -04:00
Peter F. Patel-Schneider a40b9efdca rules: add and document alternative udev rule that gives write permission to /dev/uinput 2022-05-24 09:15:15 -04:00
Peter F. Patel-Schneider 0f68ef5a43 rules: use keys with only group 0 mapping from other keyboard groups 2022-05-23 10:43:57 -04:00
Deniz b3ebdb3786 more translation 2022-05-23 07:40:50 -04:00
Peter F. Patel-Schneider a5ff1c21cb ui: put battery information in tray menu labels 2022-05-18 18:24:35 -04:00
Peter F. Patel-Schneider 1c596a8124 rules: only one warning per inaccessible key for KeyPress action 2022-05-11 12:35:04 -04:00
Peter F. Patel-Schneider b717872557 device: add G502 Gaming Mouse 2022-05-11 09:18:09 -04:00
Peter F. Patel-Schneider 97344c4660 rules: better determination of keycodes and handle keysym level 2022-05-08 07:26:07 -04:00
Stephen Kitt 2b4e272331 Move the metainfo XML declaration to the top
The metainfo file is no longer a valid XML file; the XML declaration
must be the first line in the file. The file can be checked with
appstreamcli validate.

This moves the declaration back to the top of the file.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2022-05-05 13:13:16 -04:00
Peter F. Patel-Schneider dd1b3dc573 doc: upgrade documentation on KeyPress rule action 2022-05-04 10:59:16 -04:00
Peter F. Patel-Schneider b5e910916c solaar: defensive measure for partly set up receiver when notifications start 2022-05-04 10:54:03 -04:00
Peter F. Patel-Schneider 97dca3d8f3 device: clear out fields for empty persistent remappable action 2022-04-30 08:10:52 -04:00
Peter F. Patel-Schneider afa91b57c8 config: fix message generation when device is offline 2022-04-29 14:22:38 -04:00
Peter F. Patel-Schneider 15efb887f4 misc: update bug report form 2022-04-29 14:18:59 -04:00
Peter F. Patel-Schneider 3413e8f196 docs: update docs on mouse gestures and sliding dpi 2022-04-29 14:18:59 -04:00
Peter F. Patel-Schneider 85bcfe7310 device: fix bug in feature lookup 2022-04-29 07:24:26 -04:00
Peter F. Patel-Schneider 13df79d7af docs: update information on rules under Wayland 2022-04-28 10:24:24 -04:00
Peter F. Patel-Schneider 5a103927ec settings: better ordering of settings 2022-04-27 19:34:09 -04:00
Sören Beye 4c46b1fcc2 device: add G533 headset 2022-04-27 12:05:31 -04:00
Peter F. Patel-Schneider 0c4e4fcf7f solaar: only create configuration entries for off-line devices if they have a serial number 2022-04-26 09:03:20 -04:00
Peter F. Patel-Schneider fb74e3b657 settings: store None in persister for non-persisting settings 2022-04-26 09:03:20 -04:00
Peter F. Patel-Schneider 055c8776cc settings: keep trying settings that have worked 2022-04-26 09:03:20 -04:00
Peter F. Patel-Schneider 4459ea5342 device: improve device features handling 2022-04-26 09:03:20 -04:00
Peter F. Patel-Schneider 74304a98c7 release 1.1.3 2022-04-25 09:05:50 -04:00
Peter F. Patel-Schneider 5a3ffe04e8 release 1.1.3rc3 2022-04-21 07:32:52 -04:00
Rongrong 8e61ada15b
po: update zh_CN translation (#1575)
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-04-20 18:02:56 -04:00
Danfro 94803d237d
dist: remove README file and changing the wording of i18n.md
* remove README file and changing the wording of i18n.md

* add missing the

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-04-20 18:00:40 -04:00
Danfro 2b360febec fix a typo and suggest new wording for contribution section 2022-04-20 17:58:06 -04:00
Peter F. Patel-Schneider fcddd94d7d common: add alternative way to initialize NamedInts and lower python dependency to 3.6 2022-04-20 17:14:08 -04:00
Danfro 041aed3b42 update German translation 2022-04-20 16:47:11 -04:00
Peter F. Patel-Schneider 9ed76b24fb rules: fix bug in xtest mouse scrolling 2022-04-18 19:24:57 -04:00
Matthaiks dc12547c00 po: update Polish translation 2022-04-15 11:08:22 -04:00
Peter F. Patel-Schneider 6f1bf3d7d5 release 1.1.3rc2 2022-04-15 09:56:45 -04:00
Peter F. Patel-Schneider 9dfc69d336 settings: allow mouse gestures setting for non-mice (e.g., trackballs) 2022-04-15 09:21:08 -04:00
Peter F. Patel-Schneider 80c09002a8 ui: print message when there is another Solaar process running 2022-04-15 09:21:08 -04:00
Peter F. Patel-Schneider e3bba623a4 settings: downgrade info message about detecting features to debug message 2022-04-15 09:21:08 -04:00
Peter F. Patel-Schneider 3ca97cccd1 settings: fix determination of whether to read before writing boolean setting 2022-04-15 09:21:08 -04:00
Peter F. Patel-Schneider 39ec9337a2 rules: add recent diversion features to default list in rules UI 2022-04-15 09:13:46 -04:00
Peter F. Patel-Schneider cef531c7be settings: add diversion setting for hires scroll wheel and fix information about lowres scroll setting 2022-04-15 09:13:46 -04:00
Peter F. Patel-Schneider ffb9b2710b device: use isDevice, not kind, to distinguish between devices and receivers 2022-04-15 09:11:56 -04:00
Kian-Meng Ang 15b92a0f40
misc: Fix typos 2022-04-12 17:18:11 -04:00
OlesyaGerasimenko fc8a5577a3
po: update Russian translation
* Update Russian translation

* Update Russian translation
2022-04-12 07:09:46 -04:00
Matthaiks 7cc3a527e5 po: update Polish translation 2022-04-11 17:52:02 -04:00
331 changed files with 76357 additions and 37305 deletions

22
.coveragerc Normal file
View File

@ -0,0 +1,22 @@
[run]
branch = True
source =
hid_parser
hidapi
keysyms
logitech_receiver
solaar
omit =
*/tests/*
*/setup.py
*/__main__.py
[report]
exclude_lines =
pragma: no cover
if __name__ == '__main__':
if typing.TYPE_CHECKING
fail_under = 40

View File

@ -9,7 +9,8 @@ assignees: ''
**Information** **Information**
<!-- Make sure that your issue is not one of the known issues in the Solaar documentation at https://pwr-solaar.github.io/Solaar/ --> <!-- Make sure that your issue is not one of the known issues in the Solaar documentation at https://pwr-solaar.github.io/Solaar/ -->
<!-- Do not bother opening an issue for a version older than 1.1.0. Update to the latest version and see if your issue persists. --> <!-- Do not bother opening an issue for a version older than 1.1.8. Upgrade to the latest version and see if your issue persists. -->
<!-- If you are not running the current version of Solaar, strongly consider upgrading to the newest version. -->
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository): - Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository):
- Distribution: - Distribution:
- Kernel version (ex. `uname -srmo`): `KERNEL VERSION HERE` - Kernel version (ex. `uname -srmo`): `KERNEL VERSION HERE`
@ -18,10 +19,28 @@ assignees: ''
<details> <details>
``` ```
OUTPUT HERE SOLAAR SHOW OUTPUT HERE
``` ```
</details> </details>
- Contents of `~/.config/solaar/config.yaml` (or `~/.config/solaar/config.json` if `~/.config/solaar/config.yaml` not present):
<details>
```
CONTENTS HERE
```
</details>
- Errors or warrnings from Solaar:
<!-- Under normal operation Solaar keeps a log of warning and error messages in ~/.tmp
while it is running as a file starting with 'Solaar'.
If this file is not available or does not have useful information you can
run Solaar as `solaar -dd`, after killing any running Solaar processes to
have Solaar log informational, warning, and error messages to stdout. -->
**Describe the bug** **Describe the bug**
A clear and concise description of what the bug is. A clear and concise description of what the bug is.

View File

@ -8,7 +8,7 @@ assignees: ''
--- ---
**Information** **Information**
<!-- Please update to Solaar from this repository before asking for a new feature. --> <!-- The version of Solaar in this repository has more features than released vesions. Update to this version before asking for a new feature. -->
- Solaar version (`solaar --version` and `git describe --tags`): - Solaar version (`solaar --version` and `git describe --tags`):
- Distribution: - Distribution:
- Kernel version (ex. `uname -srmo`): - Kernel version (ex. `uname -srmo`):

View File

@ -7,10 +7,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Setup Python - name: Set up Python
uses: actions/setup-python@v2 uses: actions/setup-python@v5
- name: Run pre-commit - name: Run pre-commit
uses: pre-commit/action@v2.0.0 uses: pre-commit/action@v3.0.0

52
.github/workflows/gh-pages.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: Deploy to GitHub Pages
on:
push:
branches:
- master
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: 'pages'
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
run: |
pip install mkdocs mkdocs-rtd-dropdown mkdocs-mermaid2-plugin mkdocstrings[python]
- name: Build and deploy
run: |
mkdocs build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'site'
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

90
.github/workflows/tests.yml vendored Normal file
View File

@ -0,0 +1,90 @@
name: tests
on: [push, pull_request]
jobs:
ubuntu-tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.13]
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Ubuntu dependencies for python 3.8
if: matrix.python-version == '3.8'
run: |
make install_apt
- name: Install Ubuntu dependencies for python 3.13
if: matrix.python-version == '3.13'
run: |
make install_apt_python3.13
- name: Install Python dependencies
run: |
make install_pip PIP_ARGS='.["test"]'
- name: Run tests on Ubuntu
run: |
make test
- name: Upload coverage to Codecov
if: github.ref == 'refs/heads/master'
uses: codecov/codecov-action@v4.5.0
with:
directory: ./coverage/reports/
env_vars: OS, PYTHON
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
token: ${{ secrets.CODECOV_TOKEN }}
macos-tests:
runs-on: macos-latest
strategy:
matrix:
python-version: [3.8, 3.13]
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up macOS dependencies
run: |
make install_brew
- name: Add Homebrew's library directory to dyld search path
run: |
echo "DYLD_FALLBACK_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_FALLBACK_LIBRARY_PATH" >> $GITHUB_ENV
- name: Install Python dependencies
run: |
make install_pip PIP_ARGS='.["test"]'
- name: Run tests on macOS
run: |
pytest --cov --cov-report=xml
- name: Upload coverage to Codecov
if: github.ref == 'refs/heads/master'
uses: codecov/codecov-action@v4.5.0
with:
directory: ./coverage/reports/
env_vars: OS, PYTHON
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
token: ${{ secrets.CODECOV_TOKEN }}

12
.gitignore vendored
View File

@ -6,14 +6,26 @@ __pycache__/
/lib/Solaar.egg-info/ /lib/Solaar.egg-info/
/lib/solaar.egg-info/ /lib/solaar.egg-info/
/lib/solaar/commit
/build/ /build/
/sdist/ /sdist/
/dist/ /dist/
/deb_dist/ /deb_dist/
/MANIFEST /MANIFEST
.coverage
/htmlcov/
/docs/captures/ /docs/captures/
/share/logitech_icons/ /share/logitech_icons/
/share/locale/ /share/locale/
/po/*.po~ /po/*.po~
/.idea/
.DS_Store
._*
Pipfile
Pipfile.lock

View File

@ -1,6 +1,6 @@
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.1.0 rev: v4.3.0
hooks: hooks:
- id: check-ast - id: check-ast
- id: check-builtin-literals - id: check-builtin-literals
@ -8,19 +8,13 @@ repos:
- id: check-yaml - id: check-yaml
- id: check-toml - id: check-toml
- id: debug-statements - id: debug-statements
- id: double-quote-string-fixer
- id: end-of-file-fixer - id: end-of-file-fixer
- id: trailing-whitespace - id: trailing-whitespace
- repo: https://github.com/pre-commit/mirrors-yapf - repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.30.0 rev: v0.2.2
hooks: hooks:
- id: yapf - id: ruff
- repo: https://github.com/pre-commit/mirrors-isort name: ruff lint
rev: v4.3.21 args: [--fix, --exit-non-zero-on-fix]
hooks: - id: ruff-format
- id: isort name: ruff format
- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.3
hooks:
- id: flake8
additional_dependencies: ['flake8-bugbear']

1
.python-version Normal file
View File

@ -0,0 +1 @@
3.11

939
CHANGELOG.md Normal file
View File

@ -0,0 +1,939 @@
# 1.1.15rc1
* Center labels and remove buggy entry resizing logic
* Add shape keys from Key POP Icon
* Device and Action rule conditions match on codename and name
* Fix listing hidpp10 devices - bytes vs string concatenation (#2856)
* Add present flag, unset when internal error occurs, set when notification appears
* Pause setting up features when error occurs; use ADC message to signal connection and disconnection
* Fix listing of hidpp10 peripherals
* Complete DEVICE_FEATURES to DeviceFeature transition for hidpp10 devices
* Fix NOTIFICATION_FLAG to NotificationFlag transition leftovers
* Fix github workflow stopping all matrix jobs when one of them fails
* Fix ubuntu github CI
* Update index.md
* Python documentation appears to be broken so don't set it up
* Improve documentation on onboard profiles
* Use correct LOD values for extended adjustable dpi
* Better support RGB Effects - not readable
* Fix crash when asking for help about config
* Fix error when updating ChoiceControlBig box
* Add uninstallation docs
* Handle unknown power switch locations again
* Correctly handle selection of [empty] in rule editor
* Handle `HIDError` in `hidapi.hidapi_impl._match()` (#2804)
* Give ghost devices a path
* Guard against typeerror when setting the value of a control box
* Recover from errors in ping
* Replace spaces by underscores when looking up features
* Rewrote string concatenation/format with f strings
* Fix logo not showing in about dialog box
* Make typing-extensions dependency mandatory
* Properly ignore unsupported locale
* hidapi: skip unsupported devices and handle exception on open
* Ignore macOS junk files and pipenv config
* Fix ui desktop notifications test
* hidpp20: Remove dependency to NamedInts
* Estimate accurate battery level for some rechargable devices (#2745)
* Upgrade desktop notifications tests to take notifications availability into account
* Update tests to run on Python 3.13
* Remove outdated logger enabled checks
* Introduce GTK signal types
* Introduce error types
* Remove alias for SupportedFeature
* Refactor process_device_notification
* Refactor process_receiver_notification
* Refactor receiver event handling
* Introduce custom logger
* Refactor notifications
* Rename variable to full name notification
* Test notifications
* Test extraction of serial and max. devices
* Refactor extraction of serial and max. devices
* macOS: Fix int.from_bytes, int.to_bytes for show.py
* macOS: Remove udev rule warning
* macOS: Add support for Bluetooth devices
* Add back and forward mouseclick actions
* Speedup lookup of known receivers
* Refactor device filtering
* Reorder private functions and variable definitions
* Turn filter_products_of_interest into a public function
* Improve tests of known receivers
* Refactor: Remove NamedInts and move enums where used
* Add docstrings and type hints
* Enforce rules on RuleComponentUI subclasses
* Simplify settings UI class
* Remove diversion alias
* Refactor: Convert Kind to IntEnum
* Split up huge settings module
* Remove Python 2 specific path handling
* Delete logging temp file on exit
* Update Swedish translation
# 1.1.14
* Handle fake feature enums in show
* Fix battery entries in config.yaml
* Add ratchet setting for smart shift enhanced devices
* Refactor Gesture into enum
* Replace ERROR NamedInts by IntEnum (#2645)
* Refactor hidpp20 to use enum
* Update Polish, Swedish, Norwegian Nynorsk (nn), and Norwegian Bokmål (nb) translations
* Use IntEnum for firmware and cidgroup constances
* Change pairing error values to intenums
* Fix initialization bug for PackedRangeControl
* Add tests for feature class, process_notification, and key_is_down
* Check all bits for extended report rate
* Add type hints
* Improve about dialog
* Reduce dependencies
* Refactor code
* Improve testing
* Allow unknown keys in Key rule conditions
* Improve documentation for cli actions
* Cycle sw_id to better guard against duplication of messages
* Handle error return on root feature
* Clean up documentation
* Improve github interactions
* Add information about Onboard Profiles overriding some settings
* Add wording to README.md that Solaar is not a device driver
* Clean up imports
* Handle unknown device kinds
* Fix broken links to Solaar logo
* Use mkdocs for public documentation
* Clean up setup.py
* Remove Dead links in the AppStream file
* Update about.py
* Remove check on driver
* Improve base module
* Remove unnecessary receiver info 'hid_driver'
* Convert HIDPPNotification to dataclass
* Be defensive when converting battery status to string
* Automatically detect packages in /lib
* Clean up locale code
* Improve rules documentation
* Refactor creation of devices
* Add headings to structure rules.md
* Unify imports in logitech package
* Don't ping device when getting name or codename
* Use dataclasses and enums where useful
* Introduce Device protocol and type hints
* Add typing_extensions dependency
* Move hidpp10 independent functions to module level
* Fix macOS compatibility and reenable CI tests
* Unify imports in hidapi package
* Move screenshots into dedicated folder and add high-level graph of components
* Update French and Chinese translations
* Drop support for end-of-life Python 3.7
# 1.1.13
* Update Polish and Russian translations.
* Fix bug in suspend and resume callback
* Add choices universe for backlight setting
* Add simplify diversion.py and add unit tests
* Get and use current host number for K375sFnSwap because of bug in firmware of MX Keys S
* Fix bug with logo in about window
* Don't ping device just to get logging information
* Optimize write for per-key lighting
* Add and initialize per-key lighting to a special no-change value
* Remove some Python 2 compatibility code
* Update French translation
* Refactor rule loading for testability
# 1.1.12
* Check for existence of keys file before opening
* Perform translation for all translatable strings.
* Add included hid_parser to packages installed
* Improve label and description for LED zone settings
* Add message about Onboard Profiles to LED Zone settings
* Initialize device registers to empty list
* Use bluez dbus signals to disconnect and connect bluetooth devices
* Handle a different signal for onboard profiles directory in ROM
* Introduce small delay in getting pairing information to let receiver settle after pairing
* Improve testing for settings_templates, settings, hidpp20, and device and fix small bugs found
* Add extended adjustable DPI setting
* Improve and extend infrastructure for testing setting_templates
* Update Greek, Polish, Russian, and Traditional Chinese translations
* Implement and test per-key lighting
* Refactor and test pair_window in GUI
* Handle situation when read of a setting fails in GUI
* Permit continuing when a read during pushing fails
* Fix bug in LEDZoneSetting when effect is not implemented
* Add tests for LEDEffect structures in hidpp20
* Handle BRIGHTNESS_CONTROL notifications
* Add settings for BRIGHTNESS_CONTROL and RGB_EFFECTS features
* Fix small bugs found from testing in settings
* Use f-strings for more exceptions and log message
* Tests for setting_templates
* Simple change in settings to improve testability
* Use feature_request from the device everywhere in hidpp20
* Fix bug in backlight 2 durations
* Replace deprecated code constructs
* Set up test data and classes to help test HID++ interactions
* Use pytest to test code for logitech_receiver modules
* Align init methods for all receiver classes
* Start refactoring of code base
* Allow sub-second delays in Later
* Fix bug in setting configuration cookie due to bad documentation
* Use ruff for code styling and linting
* Upgrade string formating to f-string
* Document battery-icons=solaar option
* Tell devices to delay device sending first messages until configuration is done
* Optimize some functions in FeaturesArray
* Fix bug in creating features array
* Fix bug in building battery line in show
* Refactor diversion_rules
* Fix bug in determining tray icon
* Fix bug in getting friendly name
* Move status information to Device and Receiver objects
* Add tests for get_kind_from_index and base product information
* Update EX100 documentation
* Use object attributes instead of dictionary in status objects
* Create subclasses of receiver for different variants
* Add requirement for CONFIG_HIDRAW to documentation
* Add some low-level tests for some hidpp20 functions, profiles, and lighting and some hidpp10 tests
* Fix app name casing in UI
* Add missing receiver type for Lightspeed receivers
* Add new device types
* Refactor device and receiver instantiation
* Simplify naming of distribution files
* Clean up some logging code
* Remove duplicated code to read register
* Introduce Hidpp20 and Hidpp10 class
* Remove unnecessary calls of del
* Fix bug when reading BACKLIGHT setting from device
* Replace invalid hidpp10 and hidpp20 usages
* Use only timer thread to save config.yaml
* Improve README
* Copy newer version of hid_parser
* Reorder code in settings
* Update installation documentation
* Add missing license blocks
* Clean up listener and notifications code
* Add locks to prevent multiple persisters for device
* Clean up configuration, device, and receiver code
* Move battery constants common to HID++ 1.0 and 2.0 to common
* Move mapping of device kind into hidpp20
* Move pairing information gathering to receiver
* update contributors
* Expand allowable profile numbers
* Clean up __init__ in logitech_receiver
* Modify pre-commit args to make ruff change files
* Fix bug in hidpp20 get host names
* Use ruff for formatting and linting
* Fix bug in rule Set action
* Add notify module to logitech_receiver
* Implement setting_changed callback and pass in to new devices and receivers
* Add callback to call when changing a setting
* Move exceptions, hidpp20 and hidpp10 constants into new modules
* Streamline status code
* Upgrade debugging in udev
* Fix deprecated GitHub actions
* Extend makefile and tests
* Improve features array
* Move ui_async to common.py
* Improve module imports
* Add tests of common module
# 1.1.11
* Rename light icons and install them in correct place
* Setup macOS tests using GitHub action (#2284)
* Better checking for setting in record_setting
* Fix invalid func name set logo name
* Simplify installation of udev rules
* Add document on implementation
* Tidy up scrolling appearance in configuration panel
* Correctly handle profile button with no action
* Don't unlock setting when changed by external means
* Refactor code to record change to setting
* Add GitHub action for tests
* Introduce tests with pytest
* Simplify logger instantiation
* Update label and tooltip for divert-gkeys setting
* Don't lock setting when an error occurs
* Catch assertion errors when reading setting values from devices
* Support LED Zone control feature
* Dump and load device profiles
* Select among profiles.
* Support backlight levels and duration
* Use "Report Rate" instead of "Polling" for movement report rate
* Support extended report rate setting
* Add stable branch to release.sh (#2236)
* Fix changelog parsing in release.sh
* Update installation.md with new udev rules location
* Downgrade assertion on missing notification flag to warning
* Write empty file if there are no rules to save
* Be defensive in device error messages
* Add descriptions of M650, PRO X 2, G915, MX Anywhere 2S, G305, and MX Keys S
* Report hidraw node in debugging messages
* Add names for new Logitech features
* Update Spanish, French, and Polish translations
* Defend against lightspeed receivers that contact devices for basic information
* Remove incorrect feature for M325 mice
* Add K845 keyboard
* Add partial support for macOS and minimal support for Windows
* Correctly enumerate devices on receiver
* Add wording in documentation about Logitech reusing model numbers
* Better handling and installation of icons
* Catch errors when pinging to try to put device online
* Be more cautious when creating log messages to avoid exceptions
* Correctly handle NoSuchDevice exception when pinging device
* Fix test in rules for device equality
* Add installation instructions for pipx and add not about other GTK system packages
* Fix bug in NamedInt
* Add support for MK550
* Install udev rule files to correct placces
* Expand expected ping responses
* Update codename when device status changes
# 1.1.10
* Add information about NixOS flake package
* Permit bluetooth devices in hidconsole
* Add descriptor for Logitech MX Revolution Mouse M-RCL 124
* Improve determination for short and long messages
* Add descriptor for G500s
* Fix bug in scan-registers
* Add single depress and release options for rule mouse click action
* Add rule condition for hostname
* Update keysym generation to current list of keysyms
* Allow device 0 in hidconsole
* Upgrade messages when no supported device found
* Documentation update for the gnome extension for better Solaar rule support
* Remove udev-acl tag from udev rules
* Add support for process condition in Wayland
* Update French, Chinese, and German translations
* Add G733 Headset
* Restore tools/clean.sh
* Add Bluetooth Keyboard C714
* Update several device descriptions
* Update scan-registers.sh
* Remove assertion on last byte of ping responses
* Add symbolic version of solaar icon
* Fix bug when finding name or codename
* Update documentation
* Put version in initial INFO logging message
# 1.1.9
* Add descriptors for G535 wireless gaming headset and wireless keyboard EX110
* Update Greek translation
* Fix minor issues in documentation
* Remove some deprecated GTK code
* Use zero exit code for kill interrupts
* Add rule Test condition for battery charging
* Get wpid for 28Mz devices from udev when enumerating
* Add Device condition to rules
* Don't show wireless link or battery information when unknown or not present
* Add desccriptor for G9x and LX7 mice
* Fix bug in determining kind of devices for 27Mz receivers
* Set initial lock status of smooth scrolling features to ignore
* Fix glitch in configuration file update when changing versions
* Add more debugging output for rules
* Clean up pinging code
* Put initial ping of direct-connected devices inside listener thread
* Read and check before write of range settings
* Improve pairing determination
* Cut off determination of receiver devices when all have been found
* Remove derived configuration fields when Solaar version changes
* Allow device descriptors without name and codename
* Filter and escape technical detail fields
* Add setting for ADC power managemen
* Correctly determine whether to ping with a long HID++ message
* Add description for K470 keyboard from the MK470 combo (#1945)
* Add setting value for mouse gestures
* Update German and French translations
* Remove old clean.sh and monitor.py tools
* Retry opening device if permissions error encountered
* Better handlling of IO errors at device creation
* Add KeyIsDown rule condition to check whether a diverted key is down
* Clean up device and receiver creation
# 1.1.8
* Add parameter to thumb wheel rule conditions
* Rename Serbian translation file
* Update Polish translation
* Improve handling of wheel notifications
* Only record changes of scroll wheel ratchet
* Don't mark setting as absent if there are device errors
* More robust access to keyword exception fields
* Add support for config change feature
* Clean up GTK code
* Update documentation on mouse gestures and known issues
* Get commit information from git describe and dpkg-parsechangelog
* Update pre-commit tools to current versions
* Update installation instructions
* Add 8-character commit hash to version information
* Update solaar.desktop (#1857)
* Get release in setup.py by reading lib/solaar/__init__.py
* Remove version number from docs/_config.yml
* Update solaar.desktop
* Update es.po
* Clarify status of C542 receiver
* Update devices directory
* Add description of several devices
* Show name of disconnecting receiver or device in disconnect warning
* Reduce standard size of rule editor window
* Remove unnecessary dependency on typing_extensions
# 1.1.7
* Add dependency on typing_extension to setup.py
* Don't defer saves in CLI and don't require Gtk in CLI
* Be more permissive in recognizing HID++ report descriptors
* Update Polish and Croatian translations
* Switch scroll ratcheting in response to scroll ratchet button notification
* Add setting to turn scroll ratchet on and off
* Eliminate visual glitch when updating range setting
* Make hid-parser an optional dependency
# 1.1.6
* Only update remaining pairings after successful pairing
* Check for presence of status attribute when resuming
* Update Polish and Croation translations
* Don't add non-existant key in raw xy processing
* Add special keys from MX Mechanical Mini
* Fix processing of HID++ 1.0 battery reports
* Use report descriptors to determine suitable devices
* Handle exceptions when processing configuration file
* Add Logitech PRO Gaming Keyboard
* Fix bad entries in divert-keys when found
* Correctly convert old-style diversions to new style and remove old ones
* Add optional save argument to write_key_value methods
* Use device name in configuration entries if device modelId is zeroes
* Don't show normal DJ messages in debug log
* Add Later rule action
* Correctly record battery feature when ADC produces error
* Print feature call errors in solaar show instead of terminating
* Use ADC notifications to set device inactive and active
* Add one to feature count to count ROOT feature
* Don't check modifiers for KeyPress actions that are not clicks
* Augment comments on what Solaar cannot do
* Fix bug in printing closed handle
* Use only product records to determine which receivers unpair
* Add conditional delay to get around race with Linux HID++ driver
# 1.1.5
* Add G213 Prodigy Gaming Keyboard
* Update Turkish, Croation, and zh_CN translations
* Move old device descriptions to new locations and clean up
* Increase minimum stopped time between mouse movements
* Fix bug with non-recognized empty mouse movement
* Allow config panel to scroll
* Add descriptions for K360 4004, MX Master 4017, Lightspeed C541, and G915 407D
* Change security tooltip for unencrypted wireless connections
* Add Norwegian Bokmal translation
* Update documentation on continuously running GUI, diverted keys, and changing hosts
* Solaar config no longer applies settings
* Add description of rule components to rule editor
* Ignore first movement for mouse gestures when reprog controls version is 5 or more
* Add Active rule condition to test whether a device is active
* Terminate iteration over receiver devices when all have been found
* Downgrade Set prolem messages from error to warning
* Log informational messages and above to a temporary file
* Don't produce warnings when editing rules in rule editor
* Fix bug that didn't save rules file if there were no rules
* Allow devices with connection number larger than max_devices
* Show more registers in solaar probe
* Show feature versions in solaar show
* Fix problems with deleting devices on exit
* Update German translation
* Update device documentation directory
* Add descriptors for G502 Proteus Spectrum Optical Mouse and G935 headset
* Record feature versions
* Add Serbian translation
* Fix circular import in rules
* Keep track of devices and use in rules
* Update zh_CN and zh_TW translations
* Convert old-style mouse gestures and sliding dpi settings to new style
* Allow multiple keys for mouse gestures and sliding dpi
* Defer saving configuration file for a while to cut down on the number if times it is saved
* Use correct functions for unified battery and battery voltage features.
* Add defensive check for missing keys array in mouse gestures setting
* Better presentation of battery information
* Add support for ADC MEASUREMENT battery feature
* Add information on how to find divertable key names in solaar show output
* Better warnings for feature call errors with reprogrammable key and gesture settings
* Increase entry size for ChoiceControlBig
# 1.1.4
* Update Croatian translation
* Handle unanticipated values for persistent remappable action as default
* Improve system tray interface documentation
* Remove blank lines from system tray popup
* Update Polish translation
* Add depress and release options to KeyPress rule action
* Only close existing devices for receiver
* Differentiate debug messages for different setting types
* Implement packed range setting in config panel
* Only produce warning for unimplemented display of setting
* Add sidetone and equalizer settings for headsets
* Add packed ranges setting
* Use built-ins for conversions between int and byte string
* Don't add HI_RES wheel ecodes to evdev device codes
* Handle null key in persistent remappable actions when device does not respond
* Consult polling rate feature for polling rate
* Eliminate extra file handles
* Close file handles for receiver-connected devices
* Access to more keys in KeyPress rule action when in other keyboard groups
* Update Turkish translation
* Put battery levels in tray menu labels
* Reduce warnings for inaccessible keys in KeyPress rule action
* Better determination of keycodes and insert needed shifts in KeyPress actions.
* Be careful when processing notifications for partly set up devices.
* Clear out fields for empty persistent remappable action.
* Fix message generation when device is offline.
* Fix bug in feature lookup.
* Add support for G533 Headset and G502 Gaming Mouse
* Improve device features handling.
* Keep trying settings that have worked in the past.
* Store None in persisters for non-persisting settings.
* Only create configuration entries for off-line devices if they have a serial number.
# 1.1.3
* Update documentation files
* Lower remove python 3.7 constructs and lower python dependency to 3.6
* Fix bug in xtest mouse scrolling
* Allow mouse gesture setting for non-mice, e.g., trackballs
* Print message when there is another Solaar process running
* Fix determination of whether to force read before writing boolean setting
* Add recent diversion features to default list in rules UI
* Add setting to divert hires scroll wheel
* Don't use device kind to determine how to handle notifications
* Update Polish, Russian, and zh_CN translations
* Remove pggettext so as to not require Python 3.8
* Remove Python 2 unicode support
* Store keys in configuration file as int instead of str
* Use yaml for configuration file instead of json.
* Remove process-dependent rules from built-in rules.
* Handle situation where GTK application cannot be set up in CLI.
* Remove obsolete upower signals.
* Appinfo/metadata fixes including using correct APP_ID.
* Fix bugs in solaar config.
* Add full set of mouse buttons in persistent remappable actions setting.
* Improve rule behaviour under Wayland and when Xtest or X11 not available.
* Fix up and document dependencies (evdev, Python, ...).
# 1.1.2
* Update documentation on supported devices and translations
* Include evdev as a dependency
* Try to use uinput for fake input if XTest extension not available
* Add Nano receiver C542 for M190 mice
* Broaden range of HID++ Bluetooth devices
* Add setting to divert gestures
* Rule editor can edit all rule components
* Configuration via solaar config takes effect in Solaar UI if it is running
* Add setting to disable Onboard Profiles and decouple from Polling Rate setting
* Add setting for PERSISTENT_REMAPPABLE_ACTION, common keyboard and mouse cases only
* Split Test rule condition into Test and TestBytes and support in rule editor
* Fix bug in speed-change setting
* Support Backlight3 feature
* Ensure that settings are pushed in resume
* Update German, Polish, and zh_CN translations
* Determine device number for direct-connected devices from protocol
* fix bug in add and delete button actions in rule editor
* dispose of no-op notifications quickly
* add rule condition for checking device settings
* use local file for conversion from key names to keysyms
* get keyboard group and use to get correct keycodes (X11 only)
* improve how rules work under Wayland
* add settings for M-Key LEDs and MR-Key LED
* fix bug in unpacking M and MR key notification
* add G815 keyboard and MX518 mouse
* add new special keys for recent keyboards
* track M and MR keys for use in rules
* make sure that device is online when searching for devices in solaar show
* don't check for device kind in dpi sliding setting
* fix problem with devices that report 0 DPI
* handle missing divert-setting in action RW for settings
* add id property (unitId or serial) and don't use ? for unknown serial
* fix contains for NamedInts and eliminate use of has_element
* check for xtest and disable modifier checking if not available
* improve determination of gesture information
* add Set rules to rule GUI
* add gesture params to Set rules
* hide system tray when there are no devices to control
* add G733 headset, G9 mouse, G502 Hero mouse
* Use greyscale solaar icon in tray when using symbolic icons
* Fix bugs in solaar config
* Use classes for settings to hep with modularity
* Accept '~' and Toggle for toggling boolean settings in cli and rules
* handle errors when writing to devices
* refactor config_panel.py to use classes for widgets
* add rules action to set Solaar settings
* decrease amount of logging at each debug level
* don't stretch toggles in settings
* use key structure for key remapping setting
* optimize ReprogrammableKey implementation
* keep track of settings that are absent from device
* add G512 keyboard and G402 mouse
* reformat descriptors.py
* use feature numbers for reprogrammable key versions
* don't use new_from_icon_set in menu as it is deprecated
# 1.1.1
* Keep left pane in Solaar main window the same size
* Fix crash when checking a process condition when X11 not running
* Add version number to output of solaar show
* Fix crash when pinging a device with unknown protocol
* Display battery percentage estimates from battery voltage
* Add minimal support for Logitech PRO X Wireless Gaming Headset
* Push settings when device requests software reconfiguration
* Fix read for key/button diversion setting
* Add modalias information to Solaar metainfo
* Don't do on-screen notifications when devices are powered on
* Add setting to switch crown between smooth and ratchet scrolling
* Add write_prefix_bytes argument to Boolean validator
* Update Russian and Spanish translations
* New shell script tools to help determine capabilities of receivers
* Add special keys for MX Keys for Business and MX Keys Mini
* Improve tray menu ordering
* Add --tray-icon-size option to get around bugs in some tray implementations
# 1.1.0
* Fix bug when adding receiver to tray menu
* Add Catalan translation.
* Add toggle command to solaar config to toggle boolean settings
* Don't select windows with no PID when looking for focus window
* Catch errors when applying settings so that other settings are not affected
* Add support for Bolt receivers and devices, including pairing
* Revise method for creating system tray menu
* Remove obsolete code (mostly Python 2 compatibility code)
* Add support for PRO X Wireless Mouse, G914 TKL keyboard
* Ignore more notifications that come to a device listener
* Handle more device connection protocols
* Update usage and rules documentation
* Change emojis to text in documentation
* Pare down device documentation so as not to require frequent updates
* Add information about M500S mouse
* Reimplement MOUSE GESTURE and DPI SLIDING settings
* Add setting for DPI CHANGE button to switch sensitivity
* Use file name instead of icon name for tray to avoid XFCE bug
* Update documentation on implemented features and mouse gestures
* Update Polish, Japanese, and Spanish translations
* Make Quit and About strings more translatable
# 1.0.7
* Don't use time_ns so as not to require Python 3.7
* Correctly determine setting box in change_click method
* Handle fake Nano connection notifications
* Lock on actual handle, not just on handle number
* Mark Nano receiver C52F as not unpairing
* Upgrade pairing/unpairing documentation
* Don't signal status change when battery changes from None to None.
* Add Japanese translation
* Use first word of name for code name if no other code name available.
* Better determination of when to add SW ID.
* Check for more HID++ feature request failing.
* Fix bug with new_fn_inversion setting.
* Use correct device number for directly connected devices
* Add debug message when candidate device found
* Update Polish, Taiwanese, and Brazilian Portuguese translations
* Add MouseProcess a rule condition like Process but for the window under the mouse
* Add parameters for binary settings to support prefixes
* Add locks to serialize requests to devices
* Fix bug when reprog key requests returns None
* Fix bug for empty process name and class
* Rules can now trigger on both pressing and releasing a diverted key
* Upgrade mouse gestures to allow sequences of movements
* Fix gkeys diversion faked read
* Add support for Logitech g pro x superlight receiver
* Convert HID++ 2.0 device kinds to enhanced HID++ 1.0 device kinds
* Update about window, bug report templates, and supported kernels.
# 1.0.6
* Update sliding DPI to look for suitable keys
* Add mouse gestures that can trigger rules
* Complain if receivers do not support connection notification
* In polling rate setting, only modify onboard profiles when actually writing polling rate
* Add ability to ignore settings.
* Use symbols for receiver sub-registers
* Add support for wired G700
* Do not set attention icon
* Replace deprecated GTK stock menu icons
* Better handling of icons in tray and tray menus
* Receiver c52e does not unpair
* Match active WM_CLASS as well as active process name in rules
* Correctly set icon theme value when regular battery icons are not available
* Handle exception when device is not available when device is being added
* Perform initial activation of devices in listener threads
* Keep track of serial numbers in the configuration file
* Don't update settings for non-active devices
* Set the current host name if not stored on the device
* Add setting for SMART SHIFT ENHANCED feature
* Don't unnecessarily use long messages for HID++ 1.0 commands
* Correctly select choices in solaar config and use 1-origin addressing
* Add quirk for G915 TKL keyboard because its host mode interferes with its Fn keys
* Show command outputs both saved and on-device settings
* Update documentation
* Fix bug in hidconsole
* Update French translation
# 1.0.5
* Update documentation on devices forgetting settings.
* Improve help messages
* Fix bug in finding receiver to pair
* Solaar config command can set keyed settings.
* Add setting for polling rate
* Use long HID++ messages for all 2.0 requests
* Update German, Italian, and Polish translations
* Solaar config command no longer selects paired but unconnected devices
* Show HID++ 1.0 remaining pairings value in solaar show for devices that support it
* Add option to not use battery icons in system tray.
* Update Polish and Dutch translation.
* Add Czech translation.
* Remove information on SUSE package as it is very old.
* Turn GKEY notifications into Gn key keypresses that can trigger rules.
* Push device settings to devices after suspend when device is immediately active.
* Reduce unnecessary saving of configuration file.
* Better handling of disconnected devices.
* Implement GUI to edit rules.
* Implement rule-base processing of HID++ feature notifications (depends on X11).
* Add settings for diversion of crown and remappable keys.
* Access widgets by name instead of by index.
* Implement UNIFIED_BATTERY feature and use in battery reports.
* Add a clickable lock icon that determines where each setting can be changed.
# 1.0.4
* Update pt_BR translation
* Support USB and BT connected devices that are not in descriptors.py
* Use FRIENDLY NAME for codename if needed and available.
* Extract manufacturer and product ID from Udev HID information.
* Add Bluetooth and USB product IDs to device descriptors records.
* Support Bluetooth-connected devices.
* Add model ID and unit ID to device identification.
* Support changing DPI by pressing DPI Switch button and sliding horizontally
* Add device-specific notification handlers.
* Add MX Vertical USB information.
* Udev rule adds seat permissions for all Logitech devices.
* Support USB-connected devices in GUI.
* Make probe and config work for USB-connected devices.
* Improve strings and display for settings.
* Correctly handle non-unifying connection notifications.
* Update GUI strings for several settings.
* Better support for EX100 and devices that connect to it.
* Partial support for feature GESTURE_2.
* Simplify interface for settings.
* Use DJ connection notifications to set device active status
* Udev rule sets seat write permissions for hidraw nodes for device as well as receivers.
* Handle USB devices that use HID++ protocol in CLI.
* Use device hidraw nodes where possible.
* Handle receivers with serial numbers that don't provide number of pairings.
* Ignore exceptions when setting locale.
* Correctly discover settings that share a name.
* Don't show pop-up notifications at startup.
* Keep battery voltage updated in GUI.
* Add Portuguese translation.
* Update several translations.
* Add Lightspeed receivers c545 and c541.
* Reimplement REPROG_CONTROLS data structure.
# 1.0.3
* Clean up documentation files.
* Update documentation on installation.
* Update Swedish and French translations.
* Add Norwegian Nynorsk and Danish translations.
* Fix bug handling DJ pairing notifications.
* Add Norwegian Bokmål translation.
* Remove deprecated solaar-cli application.
* Don't install udev or autostart files from python (or pip).
* Solaar needs Python 3.6+ and probably needs kernel 5.2+
* Handle exceptions on dynamic settings when device is not connected.
* Fix infinite loop on some low-level write errors
* Add support for EX100 keyboard/mouse and receiver (046d:c517)
* Add two settings for THUMB_WHEEL feature - inversion and reporting via HID++
* Update German translation
* Use REPORT RATE feature when available to determine polling rate.
* Improve config command speed when not printing all settings
* Improve config command handling and checking of arguments
* Add setting for CHANGE_HOST feature
* Add argument to settings for values that are not to persist
* Add argument to settings to not wait for reply when writing a value to device
* Add argument to not wait for reply from request to device
* Add settings for MULTIPLATFORM and DUALPLATFORM features
* Remove Logitech documents from documentation directory
* Change config command to not read all settings when only printing or showing one
* Display hosts info in 'solaar show' if device supports it
* Remove non-working smooth-scroll from M510 v1
* Add yapf and flake8 code style checks
* Fix feature k375s Fn inversion
* Update controls (keys and buttons) and tasks (actions)
* Improved way to specify feature settings.
* Don't abort on device notifications with unexpected device numbers, just warn.
* Keep track of non-features so as not to ask device multiple times.
* Implement KEYBOARD DISABLE KEYS feature.
* Don't create notifications for DJ device activity reports.
* Update a few special keys and actions.
* Add keyed choice settings in configuration panel.
* Support remappable keys from reprogrammable keys v4 feature.
* Add setting class for keyed choice.
* Only check for features once per device.
* Use settings interface to show feature values in `solaar show` if no special code for feature.
* Remove maximum window size.
* Process battery voltage notifications.
* Display battery voltage information in main window if regular battery information not available.
* Show next battery level where available.
* Update list of implemented features and provide information on how to implement features.
* Add c53d as a Lightspeed receiver.
# 1.0.2
* Add usage document
* Don't produce error dialog for inaccessible receivers with access control lists.
* Add option --battery-icons=symbolic to use symbolic icons if available.
* Update French translation
* Update installation documentation
* Remove packaging directory tree as it is not maintained
* Pip installs udev rule and solaar autostart when doing install without --user flag
* Use Solaar icon instead of a missing battery icon
* Use only standard icons for battery levels. Symbolic icons do not change to white in dark themes because of problems external to Solaar.
* Better reporting of battery levels when charging for some devices.
* Add information on K600 TV, M350 WIPD 4080, and MX Keys
* Remove assertion requiring receivers to still be in window when they are updated.
* Augment long description of Solaar showing up in repositories.
* Update installation directions.
* Install udev rule as well as autostart file when doing system install.
* Add support for Ayatana AppIndicator.
* Use setuptools icon directory on system installs when not using pip.
* Add receiver C517 and several older devices.
* Improved translations for polish.
* Bypass bug in appindicator when solaar is file in current directory.
* Don't check that device kind matches feature kind.
* Better determination of icons for battery levels.
* Use Ayatana AppIndicator if available.
* Improve error reporting when required system packages are not install.
* Better tooltip description
* Add release script to help when creating releases
* Look up tray icon filenames to get around a bug in libappindicator.
* Make the default behavior be to show the main window at startup.
* Support c537 nano receiver
* Add logind signals for suspend/resume.
* Remove solaar-gnome3 package
* Ignore features for devices that don't follow feature specification
* Add probe command to command-line interface to dump receiver registers
* Don't terminate on malformed or unknown messages
* Create fewer internal notifications for messages from devices
* Add a button to the main window to terminate (quit) Solaar
* Set up nano receivers as receivers with no unpairing and with re-pairing
* Set up c534 as receiver with max 2 pairings, no unpairing, re-pairing
* Better support receivers that do not unpair or when pairing replace existing pairings
* Add information about receiver pairing to receiver data structure
* Better support devices that only allow a limited number of total re-pairings
* Add --window option to control main window visibility and tray usage
* Ignore receiver if USB id is not retrieved
* Fix bug with double deleting when devices are disconnected
* Determine some receiver information from data structure for USB ids
* Treat battery level of 0 as unknown
* Fix bug on devices with no serial number
* Drop support for python2, and use python3 throughout
* Fix bug in remembering features discovered from device reports
* Show icons in main window device list
* Count offline devices when determining whether pairing is possible
* Update French, Dutch, German, and Croatian translations
* Better icons for battery levels
* Support DPI, Backlight 2, Battery Voltage features
* Support M585, M590, M330, MX Master 2s and 3, new M310, new K800, craft keyboard
* Documentation improvements
* Clean up directory structure and remove unused files
# 1.0.1
* Updated the repo url.
* Fixed typo which was crashing the application.
* Improved the HID write routine which was causing issues on some devices.
* Fix non-unifying receivers in Linux 5.2.
* Add new Lightspeed receiver (used in the G305)
# 1.0.0
* Too many to track...
# 0.9.3
* Merged solaar-cli functionality into main solaar.
* Scrolling over the systray icon switches between multiple peripherals.
* Swedish translation courtesy of Daniel Zippert and Emelie Snecker
* French translation courtesy of Papoteur, David Geiger and Damien Lallement.
* Fixed some untranslated strings.
# 0.9.2
* Added support for hand detection on the K800.
* Added support for V550 and V450 Nano.
* Fixed side-scrolling with the M705 Marathon.
* Fixed identification of the T650 Touchpad.
* Added internationalization support and romanian translation.
* Polish translation courtesy of Adrian Piotrowicz.
# 0.9.1
* When devices report a battery alert, only show the alert once.
* Make sure devices in the window tree are sorted by registration index.
* Added an autostart .desktop file.
* Replaced single-instance code with GtkApplication.
* Fixed identification of the M505 mouse.
* Fixed an occasional windowing layout bug with the C52F Nano Receiver.
# 0.9.0
* New single-window UI.
* Performance MX leds show the current battery charge.
* Support the VX Nano mouse.
* Faster and more accurate detection of devices.
* If upower is accessible through DBus, handle suspend/resume.
* Replaced Solaar icons with SVGs.
* Running solaar-cli in parallel with solaar is now less likely to cause issues.
* Bugfixes to saving and applying device settings.
* Properly handle ^C when running in console.
# 0.8.9
* Improved support for gnome-shell/Unity.
* Persist devices settings between runs.
* Fixed reading of MK700 keyboard battery status.
* Use battery icons from the current theme instead of custom ones.
* Debian/Ubuntu packages now depend on an icon theme, to make sure
no missing icons appear in the application window.
* Fixed missing icons under Kubuntu.
* Many more bug-fixes and reliability improvements.
# 0.8.8
* Partial support for some Nano receivers.
* Improved support for some devices: M510, K800, Performance MX.
* Improved battery support for some HID++ 1.0 devices.
* Properly handle device loss on computer sleep/wake.
* Better handling of receiver adding and removal at runtime.
* Removed a few more unhelpful notifications.
* Incipient support for multiple connected receivers.
* More Python 3 fixes.
# 0.8.7
* Don't show the "device disconnected" notification, it can be annoying and
not very useful.
* More robust detection of systray icon visibility.
# 0.8.6
* Ensure the Gtk application is single-instance.
* Fix identifying available dpi values.
* Fixed locating application icons when installed in a custom prefix.
* Fixed some icon names for the oxygen theme.
* Python 3 fixes.

View File

@ -1 +0,0 @@
ChangeLog.md

View File

@ -1,430 +0,0 @@
# 1.1.3rc1
* Remove pggettext so as to not require Python 3.8
* Remove Python 2 unicode support
* Store keys in configuration file as int instead of str
* Use yaml for configuration file instead of json.
* Remove process-dependent rules from built-in rules.
* Handle situation where GTK application cannot be set up in CLI.
* Remove obsolete upower signals.
* Appinfo/metadata fixes including using correct APP_ID.
* Fix bugs in solaar config.
* Add full set of mouse buttons in persistent remappable actions seeting.
* Improve rule behaviour under Wayland and when Xtest or X11 not available.
* Fix up and document dependencies (evdev, Python, ...).
# 1.1.2
* Update documentation on supported devices and translations
* Include evdev as a dependency
* Try to use uinput for fake input if XTest extension not available
* Add Nano receiver C542 for M190 mice
* Broaden range of HID++ Bluetooth devices
* Add setting to divert gestures
* Rule editor can edit all rule components
* Configuation via solaar config takes effect in Solaar UI if it is running
* Add setting to disable Onboard Profiles and decouple from Polling Rate setting
* Add setting for PERSISTENT_REMAPPABLE_ACTION, common keyboard and mouse cases only
* Split Test rule condition into Test and TestBytes and support in rule editor
* Fix bug in speed-change setting
* Support Backlight3 feature
* Ensure that settings are pushed in resume
* Update German, Polish, and zh_CN translations
* Determine device number for direct-connected devices from protocol
* fix bug in add and delete button actions in rule editor
* dispose of no-op notifications quickly
* add rule condition for checking device settings
* use local file for conversion from key names to keysyms
* get keyboard group and use to get correct keycodes (X11 only)
* improve how rules work under Wayland
* add settings for M-Key LEDs and MR-Key LED
* fix bug in unpacking M and MR key notification
* add G815 keyboard and MX518 mouse
* add new special keys for recent keyboards
* track M and MR keys for use in rules
* make sure that device is online when searching for devices in solaar show
* don't check for device kind in dpi sliding setting
* fix problem with devices that report 0 DPI
* handle missing divert-setting in action RW for settings
* add id property (unitId or serial) and don't use ? for unknown serial
* fix contains for NamedInts and eliminate use of has_element
* check for xtest and disable modifier checking if not available
* improve determination of gesture information
* add Set rules to rule GUI
* add gesture params to Set rules
* hide system tray when there are no devices to control
* add G733 headset, G9 mouse, G502 Hero mouse
* Use greyscale solaar icon in tray when using symbolic icons
* Fix bugs in solaar config
* Use classes for settings to hep with modularity
* Accept '~' and Toggle for toggling boolean settings in cli and rules
* handle errors when writing to devices
* refactor config_panel.py to use classes for widgets
* add rules action to set Solaar settings
* decrease amount of logging at each debug level
* don't stretch toggles in settings
* use key structure for key remapping setting
* optimize ReprogrammableKey implementation
* keep track of settings that are absent from device
* add G512 keyboard and G402 mouse
* reformat descriptors.py
* use feature numbers for reprogrammable key versions
* don't use new_from_icon_set in menu as it is deprecated
# 1.1.1
* Keep left pane in Solaar main window the same size
* Fix crash when checking a process condition when X11 not running
* Add version number to output of solaar show
* Fix crash when pinging a device with unknown protocol
* Display battery percentage estimates from battery voltage
* Add minimal support for Logitech PRO X Wireless Gaming Headset
* Push settings when device requests software reconfiguration
* Fix read for key/button diversion setting
* Add modalias information to Solaar metainfo
* Don't do on-screen notifications when devices are powered on
* Add setting to switch crown between smooth and ratchet scrolling
* Add write_prefix_bytes argument to Boolean validator
* Update Russian and Spanish translations
* New shell script tools to help determine capabilities of receivers
* Add special keys for MX Keys for Business and MX Keys Mini
* Improve tray menu ordering
* Add --tray-icon-size option to get around bugs in some tray implementations
# 1.1.0
* Fix bug when adding receiver to tray menu
* Add Catalan translation.
* Add toggle command to solaar config to toggle boolean settings
* Don't select windows with no PID when looking for focus window
* Catch errors when applying settings so that other settings are not affected
* Add support for Bolt receivers and devices, including pairing
* Revise method for creating system tray menu
* Remove obsolete code (mostly Python 2 compatibility code)
* Add support for PRO X Wireless Mouse, G914 TKL keyboard
* Ignore more notifications that come to a device listener
* Handle more device connection protocols
* Update usage and rules documentation
* Change emojis to text in documentation
* Pare down device documentation so as not to require frequent updates
* Add information about M500S mouse
* Reimplement MOUSE GESTURE and DPI SLIDING settings
* Add setting for DPI CHANGE button to switch sensitivity
* Use file name instead of icon name for tray to avoid XFCE bug
* Update documentation on implemented features and mouse gestures
* Update Polish, Japanese, and Spanish translations
* Make Quit and About strings more translatable
# 1.0.7
* Don't use time_ns so as not to require Python 3.7
* Correctly determine setting box in change_click method
* Handle fake Nano connection notifications
* Lock on actual handle, not just on handle number
* Mark Nano receiver C52F as not unpairing
* Upgrade pairing/unpairing documentation
* Don't signal status change when battery changes from None to None.
* Add Japanese translation
* Use first word of name for code name if no other code name available.
* Better determination of when to add SW ID.
* Check for more HID++ feature request failing.
* Fix bug with new_fn_inversion setting.
* Use correct device number for directly connected devices
* Add debug message when candidate device found
* Update Polish, Taiwanese, and Brazilian Portuguese translations
* Add MouseProcess a rule condition like Process but for the window under the mouse
* Add parameters for binary settings to support prefixes
* Add locks to serialize requests to devices
* Fix bug when reprog key requests returns None
* Fix bug for empty process name and class
* Rules can now trigger on both pressing and releasing a diverted key
* Upgrade mouse gestures to allow sequences of movements
* Fix gkeys diversion faked read
* Add support for Logitech g pro x superlight receiver
* Convert HID++ 2.0 device kinds to enhanced HID++ 1.0 device kinds
* Update about window, bug report templates, and supported kernels.
# 1.0.6
* Update sliding DPI to look for suitable keys
* Add mouse gestures that can trigger rules
* Complain if receivers do not support connection notification
* In polling rate setting, only modify onboard profiles when actually writing polling rate
* Add ability to ignore settings.
* Use symbols for receiver sub-registers
* Add support for wired G700
* Do not set attention icon
* Replace deprecated GTK stock menu icons
* Better handling of icons in tray and tray menus
* Receiver c52e does not unpair
* Match active WM_CLASS as well as active process name in rules
* Correctly set icon theme value when regular battery icons are not available
* Handle exception when device is not available when device is being added
* Perform initial activation of devices in listener threads
* Keep track of serial numbers in the configuration file
* Don't update settings for non-active devices
* Set the current host name if not stored on the device
* Add setting for SMART SHIFT ENHANCED feature
* Don't unnecessarily use long messages for HID++ 1.0 commands
* Correctly select choices in solaar config and use 1-origin addressing
* Add quirk for G915 TKL keyboard because its host mode interferes with its Fn keys
* Show command outputs both saved and on-device settings
* Update documentation
* Fix bug in hidconsole
* Update French translation
# 1.0.5
* Update documentation on devices forgetting settings.
* Improve help messages
* Fix bug in finding receiver to pair
* Solaar config command can set keyed settings.
* Add setting for polling rate
* Use long HID++ messages for all 2.0 requests
* Update German, Italian, and Polish translations
* Solaar config command no longer selects paired but unconnected devices
* Show HID++ 1.0 remaining pairings value in solaar show for devices that support it
* Add option to not use battery icons in system tray.
* Update Polish and Dutch translation.
* Add Czech translation.
* Remove information on SUSE package as it is very old.
* Turn GKEY notifications into Gn key keypresses that can trigger rules.
* Push device settings to devices after suspend when device is immediately active.
* Reduce unnecessary saving of configuration file.
* Better handling of disconnected devices.
* Implement GUI to edit rules.
* Implement rule-base processing of HID++ feature notifications (depends on X11).
* Add settings for diversion of crown and remappable keys.
* Access widgets by name instead of by index.
* Implement UNIFIED_BATTERY feature and use in battery reports.
* Add a clickable lock icon that determines where each setting can be changed.
# 1.0.4
* Update pt_BR translation
* Support USB and BT connected devices that are not in descriptors.py
* Use FRIENDLY NAME for codename if needed and available.
* Extract manufacturer and product ID from Udev HID information.
* Add Bluetooth and USB product IDs to device descriptors records.
* Support Bluetooth-connected devices.
* Add model ID and unit ID to device identification.
* Support changing DPI by pressing DPI Switch button and sliding horizontally
* Add device-specific notification handlers.
* Add MX Vertical USB information.
* Udev rule adds seat permissions for all Logitech devices.
* Support USB-connected devices in GUI.
* Make probe and config work for USB-connected devices.
* Improve strings and display for settings.
* Correctly handle non-unifying connection notifications.
* Update GUI strings for several settings.
* Better support for EX100 and devices that connect to it.
* Partial support for feature GESTURE_2.
* Simplify interface for settings.
* Use DJ connection notifications to set device active status
* Udev rule sets seat write permissions for hidraw nodes for device as well as receivers.
* Handle USB devices that use HID++ protocol in CLI.
* Use device hidraw nodes where possible.
* Handle receivers with serial numbers that don't provide number of pairings.
* Ignore exceptions when setting locale.
* Correctly discover settings that share a name.
* Don't show pop-up notifications at startup.
* Keep battery voltage updated in GUI.
* Add Portuguese translation.
* Update several translations.
* Add Lightspeed receivers c545 and c541.
* Reimplement REPROG_CONTROLS data structure.
# 1.0.3
* Clean up documentation files.
* Update documentation on installation.
* Update Swedish and French translations.
* Add Norwegian Nynorsk and Danish translations.
* Fix bug handling DJ pairing notifications.
* Add Norwegian Bokmål translation.
* Remove deprecated solaar-cli application.
* Don't install udev or autostart files from python (or pip).
* Solaar needs Python 3.6+ and probably needs kernel 5.2+
* Handle exceptions on dynamic settings when device is not connected.
* Fix infinite loop on some low-level write errors
* Add support for EX100 keyboard/mouse and receiver (046d:c517)
* Add two settings for THUMB_WHEEL feature - inversion and reporting via HID++
* Update German translation
* Use REPORT RATE feature when available to determine polling rate.
* Improve config command speed when not printing all settings
* Improve config command handling and checking of arguments
* Add setting for CHANGE_HOST feature
* Add argument to settings for values that are not to persist
* Add argument to settings to not wait for reply when writing a value to device
* Add argument to not wait for reply from request to device
* Add settings for MULTIPLATFORM and DUALPLATFORM features
* Remove Logitech documents from documentation directory
* Change config command to not read all settings when only printing or showing one
* Display hosts info in 'solaar show' if device supports it
* Remove non-working smooth-scroll from M510 v1
* Add yapf and flake8 code style checks
* Fix feature k375s Fn inversion
* Update controls (keys and buttons) and tasks (actions)
* Improved way to specify feature settings.
* Don't abort on device notifications with unexpected device numbers, just warn.
* Keep track of non-features so as not to ask device multiple times.
* Implement KEYBOARD DISABLE KEYS feature.
* Don't create notifications for DJ device activity reports.
* Update a few special keys and actions.
* Add keyed choice settings in configuration panel.
* Support remappable keys from reprogrammable keys v4 feature.
* Add setting class for keyed choice.
* Only check for features once per device.
* Use settings interface to show feature values in `solaar show` if no special code for feature.
* Remove maximum window size.
* Process battery voltage notifications.
* Display battery voltage information in main window if regular battery information not available.
* Show next battery level where available.
* Update list of implemented features and provide information on how to implement features.
* Add c53d as a Lightspeed receiver.
# 1.0.2
* Add usage document
* Don't produce error dialog for inaccessible receivers with access control lists.
* Add option --battery-icons=symbolic to use symbolic icons if available.
* Update French translation
* Update installation documentation
* Remove packaging directory tree as it is not maintained
* Pip installs udev rule and solaar autostart when doing install without --user flag
* Use Solaar icon instead of a missing battery icon
* Use only standard icons for battery levels. Symbolic icons do not change to white in dark themes because of problems external to Solaar.
* Better reporting of battery levels when charging for some devices.
* Add information on K600 TV, M350 WIPD 4080, and MX Keys
* Remove assertion requiring receivers to still be in window when they are updated.
* Augment long description of Solaar showing up in repositories.
* Update installation directions.
* Install udev rule as well as autostart file when doing system install.
* Add support for Ayatana AppIndicator.
* Use setuptools icon directory on system installs when not using pip.
* Add receiver C517 and several older devices.
* Improved translations for polish.
* Bypass bug in appindicator when solaar is file in current directory.
* Don't check that device kind matches feature kind.
* Better determination of icons for battery levels.
* Use Ayatana AppIndicator if available.
* Improve error reporting when required system packages are not install.
* Better tooltip description
* Add release script to help when creating releases
* Look up tray icon filenames to get around a bug in libappindicator.
* Make the default behavior be to show the main window at startup.
* Support c537 nano receiver
* Add logind signals for suspend/resume.
* Remove solaar-gnome3 package
* Ignore features for devices that don't follow feature specification
* Add probe command to command-line interface to dump receiver registers
* Don't terminate on malformed or unknown messages
* Create fewer internal notifications for messages from devices
* Add a button to the main window to terminate (quit) Solaar
* Set up nano receivers as receivers with no unpairing and with re-pairing
* Set up c534 as receiver with max 2 pairings, no unpairing, re-pairing
* Better support receivers that do not unpair or when pairing replace existing pairings
* Add information about receiver pairing to receiver data structure
* Better support devices that only allow a limited number of total re-pairings
* Add --window option to control main window visibility and tray usage
* Ignore receiver if USB id is not retrieved
* Fix bug with double deleting when devices are disconnected
* Determine some receiver information from data structure for USB ids
* Treat battery level of 0 as unknown
* Fix bug on devices with no serial number
* Drop support for python2, and use python3 throughout
* Fix bug in remembering features discovered from device reports
* Show icons in main window device list
* Count offline devices when determining whether pairing is possible
* Update French, Dutch, German, and Croatian translations
* Better icons for battery levels
* Support DPI, Backlight 2, Battery Voltage features
* Support M585, M590, M330, MX Master 2s and 3, new M310, new K800, craft keyboard
* Documentation improvements
* Clean up directory structure and remove unused files
# 1.0.1
* Updated the repo url.
* Fixed typo which was crashing the application.
* Improved the HID write routine which was causing issues on some devices.
* Fix non-unifying receivers in Linux 5.2.
* Add new Lightspeed receiver (used in the G305)
# 1.0.0
* Too many to track...
# 0.9.3
* Merged solaar-cli functionality into main solaar.
* Scrolling over the systray icon switches between multiple peripherals.
* Swedish translation courtesy of Daniel Zippert and Emelie Snecker
* French translation courtesy of Papoteur, David Geiger and Damien Lallement.
* Fixed some untranslated strings.
# 0.9.2
* Added support for hand detection on the K800.
* Added support for V550 and V450 Nano.
* Fixed side-scrolling with the M705 Marathon.
* Fixed identification of the T650 Touchpad.
* Added internationalization support and romanian translation.
* Polish translation courtesy of Adrian Piotrowicz.
# 0.9.1
* When devices report a battery alert, only show the alert once.
* Make sure devices in the window tree are sorted by registration index.
* Added an autostart .desktop file.
* Replaced single-instance code with GtkApplication.
* Fixed identification of the M505 mouse.
* Fixed an occasional windowing layout bug with the C52F Nano Receiver.
# 0.9.0
* New single-window UI.
* Performance MX leds show the current battery charge.
* Support the VX Nano mouse.
* Faster and more accurate detection of devices.
* If upower is accessible through DBus, handle suspend/resume.
* Replaced Solaar icons with SVGs.
* Running solaar-cli in parallel with solaar is now less likely to cause issues.
* Bugfixes to saving and applying device settings.
* Properly handle ^C when running in console.
# 0.8.9
* Improved support for gnome-shell/Unity.
* Persist devices settings between runs.
* Fixed reading of MK700 keyboard battery status.
* Use battery icons from the current theme instead of custom ones.
* Debian/Ubuntu packages now depend on an icon theme, to make sure
no missing icons appear in the application window.
* Fixed missing icons under Kubuntu.
* Many more bug-fixes and reliability improvements.
# 0.8.8
* Partial support for some Nano receivers.
* Improved support for some devices: M510, K800, Performance MX.
* Improved battery support for some HID++ 1.0 devices.
* Properly handle device loss on computer sleep/wake.
* Better handling of receiver adding and removal at runtime.
* Removed a few more unhelpful notifications.
* Incipient support for multiple connected receivers.
* More Python 3 fixes.
# 0.8.7
* Don't show the "device disconnected" notification, it can be annoying and
not very useful.
* More robust detection of systray icon visibility.
# 0.8.6
* Ensure the Gtk application is single-instance.
* Fix identifying available dpi values.
* Fixed locating application icons when installed in a custom prefix.
* Fixed some icon names for the oxygen theme.
* Python 3 fixes.

View File

@ -1,3 +1,3 @@
include COPYRIGHT COPYING README.md ChangeLog.md include COPYRIGHT LICENSE.txt README.md CHANGELOG.md lib/solaar/version lib/solaar/commit
recursive-include rules.d * recursive-include rules.d *
recursive-include share/locale * recursive-include share/locale *

74
Makefile Normal file
View File

@ -0,0 +1,74 @@
UDEV_RULE_FILE = 42-logitech-unify-permissions.rules
UDEV_RULES_SOURCE := rules.d/$(UDEV_RULE_FILE)
UDEV_RULES_SOURCE_UINPUT := rules.d-uinput/$(UDEV_RULE_FILE)
UDEV_RULES_DEST := /etc/udev/rules.d/
PIP_ARGS ?= .
.PHONY: install_ubuntu install_macos
.PHONY: install_apt install_brew install_pip
.PHONY: install_udev install_udev_uinput reload_udev uninstall_udev
.PHONY: format lint test
install_ubuntu: install_apt install_udev_uinput install_pip
install_macos: install_brew install_pip
install_apt:
@echo "Installing Solaar dependencies via apt"
sudo apt update
sudo apt install libdbus-1-dev libglib2.0-dev libgtk-3-dev libgirepository1.0-dev
install_apt_python3.13:
@echo "Installing Solaar dependencies via apt"
sudo apt update
sudo apt install libdbus-1-dev libglib2.0-dev libgtk-3-dev libgirepository-2.0-dev gobject-introspection
install_dnf:
@echo "Installing Solaar dependencies via dn"
sudo dnf install gtk3 python3-gobject python3-dbus python3-pyudev python3-psutil python3-xlib python3-yaml
install_brew:
@echo "Installing Solaar dependencies via brew"
brew update
brew install hidapi gtk+3 pygobject3 gobject-introspection
install_pip:
@echo "Installing Solaar via pip"
python -m pip install --upgrade pip
pip install $(PIP_ARGS)
install_pipx:
@echo "Installing Solaar via pipx"
pipx install --system-site-packages $(PIP_ARGS)
install_udev:
@echo "Copying Solaar udev rule to $(UDEV_RULES_DEST)"
sudo cp $(UDEV_RULES_SOURCE) $(UDEV_RULES_DEST)
make reload_udev
install_udev_uinput:
@echo "Copying Solaar udev rule (uinput) to $(UDEV_RULES_DEST)"
sudo cp $(UDEV_RULES_SOURCE_UINPUT) $(UDEV_RULES_DEST)
make reload_udev
reload_udev:
@echo "Reloading udev rules"
sudo udevadm control --reload-rules
uninstall_udev:
@echo "Removing Solaar udev rules from $(UDEV_RULES_DEST)"
sudo rm -f $(UDEV_RULES_DEST)/$(UDEV_RULE_FILE)
make reload_udev
format:
@echo "Formatting Solaar code"
ruff format .
lint:
@echo "Linting Solaar code"
ruff check . --fix
test:
@echo "Running Solaar tests"
pytest --cov --cov-report=xml

1
README
View File

@ -1 +0,0 @@
README.md

View File

@ -1 +0,0 @@
docs/index.md

67
README.md Normal file
View File

@ -0,0 +1,67 @@
# <img src="https://pwr-solaar.github.io/Solaar/img/solaar.svg" width="60px"/> 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.
<a href="https://pwr-solaar.github.io/Solaar/index">More Information</a> -
<a href="https://pwr-solaar.github.io/Solaar/usage">Usage</a> -
<a href="https://pwr-solaar.github.io/Solaar/capabilities">Capabilities</a> -
<a href="https://pwr-solaar.github.io/Solaar/rules">Rules</a> -
<a href="https://pwr-solaar.github.io/Solaar/installation">Manual Installation</a>
[![codecov](https://codecov.io/gh/pwr-Solaar/Solaar/graph/badge.svg?token=D7YWFEWID6)](https://codecov.io/gh/pwr-Solaar/Solaar)
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2+-blue.svg)](../LICENSE.txt)
<p align="center">
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-main-window-multiple.png" width="54%"/>
&#160;
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-main-window-receiver.png" width="43%"/>
</p>
<p align="center">
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-main-window-back-divert.png" width="49%"/>
&#160;
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-rule-editor.png" width="48%"/>
</p>
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
<a href="https://pwr-solaar.github.io/Solaar/index">the main Solaar documentation page.</a> -
## 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:
- Arch solaar package in the [extra repository][arch]
- Ubuntu/Kubuntu package in [Solaar stable ppa][ppa stable]
- NixOS Flake package in [Svenum/Solaar-Flake][nix flake]
Solaar is available from some other repositories
but may be several versions behind the current version:
- a [Debian package][debian], courtesy of Stephen Kitt
- a Ubuntu package is available from [universe repository][ubuntu universe repository]
- a [Gentoo package][gentoo], courtesy of Carlos Silva and Tim Harder
- a [Mageia package][mageia], courtesy of David Geiger
[ppa stable]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/stable
[arch]: https://www.archlinux.org/packages/extra/any/solaar/
[gentoo]: https://packages.gentoo.org/packages/app-misc/solaar
[mageia]: http://mageia.madb.org/package/show/release/cauldron/application/0/name/solaar
[ubuntu universe repository]: http://packages.ubuntu.com/search?keywords=solaar&searchon=names&suite=all&section=all
[nix flake]: https://github.com/Svenum/Solaar-Flake
[debian]: https://packages.debian.org/search?keywords=solaar&searchon=names&suite=all&section=all

View File

@ -7,8 +7,9 @@ candidates (ex. `1.0.0rc1`). Release candidates must have a `rcX` suffix.
Release routine: Release routine:
- Update `ChangeLog.md`, `setup.py`, `lib/solaar/__init__.py`, `docs/_config.yml` to the new release - Update version in `lib/solaar/version`
- Add the new release to `share/solaar/io.github.pwr_solaar.solaar.metainfo.xml` - Add release changes to `CHANGELOG.md`
- Add release information to `share/solaar/io.github.pwr_solaar.solaar.metainfo.xml`
- Create a commit that starts with `release VERSION` - Create a commit that starts with `release VERSION`
- Push commit to Solaar repository - Push commit to Solaar repository
- Invoke `./release.sh` - Invoke `./release.sh`

View File

@ -1,11 +1,107 @@
# Notes on Major Changes in Releases # Notes on Major Changes in Releases
## Version 1.1.15
* Device and Action rule conditions match on device codename and name
* Solaar supports configuration of Bluetooth devices on macOS.
## Version 1.1.13
* Solaar will drop support for Python 3.7 immediately after version 1.1.13.
* Version 1.1.12 does not push settings to many devices after a resume resulting in the device reverting to its default behaviour. This is fixed in 1.1.13.
## Version 1.1.12
* Solaar now processes DBus disconnection and connection messages from Bluez and re-initializes devices when they reconnect, to handle to a change introduced in Bluez 5.73. The HID++ driver does not re-initialize devices, which causes problems with smooth scrolling. Until the issue is resolved having Scroll Wheel Resolution set to true (and not ignored) may be helpful.
* The credits for translations have not been kept up to date. Translators who are not listed can update docs/i18n.ml and lib/solaar/ui/about.py.
* Solaar now has settings for features BRIGHTNESS_CONTROL, RGB_EFFECTS, and PER_KEY_LIGHTING features. The names of keys in the Per-key Lighting setting are for the standard US keyboard. Users who wish to modify these names should look at the section Keyboard Key Names and Locations in `https://pwr-solaar.github.io/Solaar/capabilities`
* A unit test test suite is being constructed using pytest.
* The Solaar code for communicating with receivers and devices has been significantly modified to improve testability and organization. Errors may have been introduced for uncommon hardware.
* The Later rule action uses precision timing for delays of less than one second.
* Solaar now indentifies supported devices by whether they support the HID protocols that Solaar needs. If a device does not show up at all when running Solaar, it almost certainly cannot be supported by Solaar.
## Version 1.1.11
* Solaar can dump device profiles in YAMLfor devices that support profiles and load profiles back from an edited file. See [the capabilities page](https://pwr-solaar.github.io/Solaar/capabilities) for more information.
* Solaar has settings for each LED Zone that a device supports under feature Color LED Effects.
* Solaar has settings for extended report rate, backlight levels, durations, and profile selection.
* Solaar now partly works in MacOS. Please open new issues for problems. Solaar may work in Windows. Please open new issues for problems. See https://github.com/pwr-Solaar/Solaar/pull/1971 for more information. Fixing problems in MacOS or Windows may take considerable time.
* Solaar works better when the Python package hid-parser is available. Distriubtions should try have this package installed.
## Version 1.1.10
* The mouse click rule action can now just simulate depressing or releasing the button.
* There is a new rule condition to check the hostname.
## Version 1.1.9
* Solaar now exits with at 0 exit code when killed.
* Two Solaar settings can interfere with the implementation of smooth scrolling in modern Linux HID++ drivers. These settings are initially set to ignore so that this interference does not happen.
* The Device rule condition checks for the device that produced a notification.
* The KeyIsDown rule condition checks whether a *diverted* rule key is down.
## Version 1.1.8
* The thumb wheel rule conditions take an optional parameter that checks for total signed thumb wheel movement.
## Version 1.1.7
* Solaar responds to scroll wheel ratchet notifications by changing its scroll wheel ratcheting.
* Solaar processing of report descriptors is optional, depending on whether the package hid-parser is available.
## Version 1.1.6
* Solaar requires Python version 3.7.
* Solaar uses report descriptors to recognize unknown devices that use HID++.
* The Later rule action takes an integer delay in seconds and one or more rule components. The action immediately completes while also scheduling the rule components for later exection.
## Version 1.1.5
* The Active rule condition takes the serial number or unitID of a device and checks whether the device is active. A device is active if it is connected (via a receiver, USB or Bluetooth), not turned off, and not in a power-saving state. This condition can be used to check whether changing a setting on the device will have any effect, as devices respond to messages only when active.
* Solaar logs warnings and errors to a file in the user's temporary file directory. This file is deleted when Solaar exists normally. If Solaar is run with `-dd` or `-ddd` informational messages are also logged in the file.
* If the first element of a Mouse Gesture rule condition is a key or button name then that name must be the same as the name of the key or button that initiated the mouse gesture.
* The Sliding DPI and Mouse Gestures are now set up using the Key/Button Diversion setting. Changing a key or button to Sliding DPI makes it initiate the sliding DPI changing. Changing a key or button to Mouse Gestures makes it initiate a mouse gesture. There can be multiple keys or buttons for sliding DPI and multiple keys or buttons for mouse gestures.
* Solaar waits a few seconds to save settings changes to its configuration file. If you interrupt Solaar soon after changing a setting the change might not be saved.
## Version 1.1.4
* There are settings for sidetone and equalizer gains for headsets.
* The KeyPress action can now either deppress, release, or click (default) keys.
* The KeyPress action now inserts shift and level 3 keypresses if simulating a key symbol requires one or both of them. So producing a "B" no longer requires adding a shift keysymbol.
## Version 1.1.3 ## Version 1.1.3
* Solaar uses yaml for configuration files, converting the json configuration file to yaml if necessary. * Solaar uses yaml for configuration files, converting the json configuration file to yaml if necessary.
* Solaar rules work better under Wayland but still cannot access the current process nor the current keyboard modifiers. * Solaar rules work better under Wayland but still cannot access the current process nor the current keyboard modifiers.
* Solaar uses uinput for simulating input in Wayland. See https://pwr-solaar.github.io/Solaar/rules for instructions on setting up uinput correctly.
## Version 1.1.2 ## Version 1.1.2
* Solaar now depends on Python evdev. It can be installed if needed via `pip install --user evdev` or, in most distributions, by installing the python3-evdev package. * Solaar now depends on Python evdev. It can be installed if needed via `pip install --user evdev` or, in most distributions, by installing the python3-evdev package.

View File

@ -21,35 +21,22 @@
def init_paths(): def init_paths():
"""Make the app work in the source tree.""" """Make the app work in the source tree."""
import os.path
import sys import sys
import os.path as _path
# Python 2 need conversion from utf-8 filenames root = os.path.join(os.path.realpath(sys.path[0]), "..")
# Python 3 might have problems converting back to UTF-8 in case of Unicode surrogates prefix = os.path.normpath(root)
try: src_lib = os.path.join(prefix, "lib")
decoded_path = sys.path[0] share_lib = os.path.join(prefix, "share", "solaar", "lib")
sys.path[0].encode(sys.getfilesystemencoding())
except UnicodeError:
sys.stderr.write(
'ERROR: Solaar cannot recognize encoding of filesystem path, '
'this may happen because non UTF-8 characters in the pathname.\n'
)
sys.exit(1)
prefix = _path.normpath(_path.join(_path.realpath(decoded_path), '..'))
src_lib = _path.join(prefix, 'lib')
share_lib = _path.join(prefix, 'share', 'solaar', 'lib')
for location in src_lib, share_lib: for location in src_lib, share_lib:
init_py = _path.join(location, 'solaar', '__init__.py') init_py = os.path.join(location, "solaar", "__init__.py")
# print ("sys.path[0]: checking", init_py) if os.path.exists(init_py):
if _path.exists(init_py):
# print ("sys.path[0]: found", location, "replacing", sys.path[0])
sys.path[0] = location sys.path[0] = location
break break
if __name__ == '__main__': if __name__ == "__main__":
init_paths() init_paths()
import solaar.gtk import solaar.gtk
solaar.gtk.main() solaar.gtk.main()

View File

@ -1,10 +0,0 @@
title: Solaar
description: Linux Device Manager for Logitech Unifying Receivers and Devices.
tagline: Linux Device Manager for Logitech Unifying Receivers and Devices.
owner: pwr-Solaar
owner_url: https://github.com/pwr-Solaar
repository: pwr-Solaar/Solaar
version: 1.1.3rc1
show_downloads: false
encoding: utf-8
theme: jekyll-theme-slate

View File

@ -1,53 +0,0 @@
<!DOCTYPE html>
<html lang="{{ site.lang | default: "en-US" }}">
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,maximum-scale=2">
<link rel="stylesheet" type="text/css" media="screen" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicon.png" />
{% seo %}
</head>
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
{% if site.github.is_project_page %}
<a id="forkme_banner" href="{{ site.github.repository_url }}">View on GitHub</a>
{% endif %}
<h1 id="project_title">
<img src="{{ site.baseurl }}/assets/solaar.svg" style="margin-bottom: -10px; width: 48px; height: 48px; border: 0; box-shadow: none;" />
{{ site.title | default: site.github.repository_name }}</h1>
<h2 id="project_tagline">{{ site.description | default: site.github.project_tagline }}</h2>
{% if site.show_downloads %}
<section id="downloads">
<a class="zip_download_link" href="{{ site.github.zip_url }}">Download this project as a .zip file</a>
<a class="tar_download_link" href="{{ site.github.tar_url }}">Download this project as a tar.gz file</a>
</section>
{% endif %}
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
{{ content }}
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
{% if site.github.is_project_page %}
<p class="copyright">{{ site.title | default: site.github.repository_name }} maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
{% endif %}
<p>Published with <a href="https://pages.github.com">GitHub Pages</a></p>
</footer>
</div>
</body>
</html>

View File

@ -1,47 +0,0 @@
<!DOCTYPE html>
<html lang="{{ site.lang | default: "en-US" }}">
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,maximum-scale=2">
<link rel="stylesheet" type="text/css" media="screen" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicon.png" />
{% seo %}
</head>
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
{% if site.github.is_project_page %}
<a id="forkme_banner" href="{{ site.github.repository_url }}">View on GitHub</a>
{% endif %}
<h1 id="project_title">
<a href="{{ site.baseurl }}" style="color: #fff;">
<img src="{{ site.baseurl }}/assets/solaar.svg" style="margin-bottom: -10px; width: 48px; height: 48px; border: 0; box-shadow: none;" />
{{ site.title | default: site.github.repository_name }}</h1>
</a>
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
{{ content }}
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
{% if site.github.is_project_page %}
<p class="copyright">{{ site.title | default: site.github.repository_name }} maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
{% endif %}
<p>Published with <a href="https://pages.github.com">GitHub Pages</a></p>
</footer>
</div>
</body>
</html>

View File

@ -51,7 +51,7 @@ connect via a USB cable or via bluetooth can be determined by their USB or
Bluetooth product ID. Bluetooth product ID.
# Pairing and Unpairing ## Pairing and Unpairing
Solaar is able to pair and unpair devices with Solaar is able to pair and unpair devices with
receivers as supported by the device and receiver. receivers as supported by the device and receiver.
@ -80,7 +80,7 @@ that they were bought with.
## Device Settings ## Device Settings
Solaar can display quite a few changeable settings of receivers and devices. Solaar can display quite a few changeable settings of receivers and devices.
For a list of HID++ features and their support see [the features page](features). For a list of HID++ features and their support see [the features page](features.md).
Solaar does not do much beyond using the HID++ protocol to change the Solaar does not do much beyond using the HID++ protocol to change the
behavior of receivers and devices via changing their settings. behavior of receivers and devices via changing their settings.
@ -96,20 +96,21 @@ until an unlocked lock appears (with tooltop "Changes allowed").
Solaar keeps track of most of the changeable settings of a device. Solaar keeps track of most of the changeable settings of a device.
Devices forget most changed settings when the device is turned off Devices forget most changed settings when the device is turned off
or goes into a power-saving mode. or goes into a power-saving mode.
The exceptions include the setting to change the host the device is connected to Exceptions include the setting to change the host the device is connected to,
and the setting to persistently change what a key or button does. the setting to persistently change what a key or button does,
and, for some devices, the fn-swap setting.
When Solaar starts, it restores on-line devices to their previously-known state When Solaar starts, it restores on-line devices to their previously-known state
for the unexceptionable settings and while running it restores except for host connection and persistent key and button changes and while running Solaar restores
devices to their previously-known state when the device itself comes on line. devices to their previously-known state when the device itself comes on line.
Setting information is stored in the file `~/.config/solaar/config.json`. Setting information is stored in the file `~/.config/solaar/config.yaml`.
Updating of a setting can be turned off in the Solaar GUI by clicking on the icon Updating of a setting can be turned off in the Solaar GUI by clicking on the icon
at the right-hand edge of the setting until a red icon appears (with tooltip at the right-hand edge of the setting until a red icon appears (with tooltip
"Ignore this setting" ). "Ignore this setting").
Solaar keeps track of settings independently on each computer. Solaar keeps track of settings independently on each computer.
As a result if a device is switched between different computers As a result if a device is switched between different computers
Solaar may apply different settings for it on the different computers Solaar may apply different settings for it on the different computers.
Querying a device for its current state can require quite a few HID++ Querying a device for its current state can require quite a few HID++
interactions. These interactions can temporarily slow down the device, so interactions. These interactions can temporarily slow down the device, so
@ -138,13 +139,9 @@ Solaar can process HID++ Notifications from devices to, for example,
change the speed of some thumb wheels. These notifications are only sent change the speed of some thumb wheels. These notifications are only sent
for actions that are set in Solaar to their HID++ setting (also known as diverted). for actions that are set in Solaar to their HID++ setting (also known as diverted).
For more information on this capability of Solaar see For more information on this capability of Solaar see
[the rules page](https://pwr-solaar.github.io/Solaar/rules). As much of rule processing [the rules page](https://pwr-solaar.github.io/Solaar/rules).
depends on X11, this capability is only when running under X11.
Users can edit rules using a GUI by clicking on the `Edit Rule` button in the Solaar main window.
Solaar rules is an experimental feature. Significant changes might be made in response to problems.
Users can edit rules using a GUI by clicking on the `Rule Editor` button in the Solaar main window.
### Sliding DPI ### Sliding DPI
@ -153,13 +150,14 @@ the sensitivity (DPI) of the mouse by pressing the button and moving the mouse l
Other mice (such as the MX Master 3) don't have a button specific for this purpose Other mice (such as the MX Master 3) don't have a button specific for this purpose
but have buttons that can be used for it. but have buttons that can be used for it.
The DPI Sliding Adjustment setting assigns a button for this purpose. The `Key/Button Diversion` setting can assign buttons to adjust sensitivity by setting the value for the button to `Sliding DPI`.
Pressing the button, if the button is diverted, causes the mouse pointer to stop moving. This capability is only present if the device supports changing the DPI in this way.
Pressing a button when it is set to `Sliding DPI` causes the mouse pointer to stop moving.
When the button is released a new Sensitivity (DPI) value is applied to the mouse, When the button is released a new Sensitivity (DPI) value is applied to the mouse,
depending on how far right or left the mouse is moved. If the mouse is moved only a little bit depending on how far right or left the mouse is moved. If the mouse is moved only a little bit
the previous value that was set is applied to the mouse. the previous value that was set is applied to the mouse.
Notifications from Solaar are displayed while the mouse button is done Notifications from Solaar are displayed showing the setting that will be applied.
showing the setting that will be applied.
### Mouse Gestures ### Mouse Gestures
@ -167,17 +165,115 @@ Some mice (such as the MX Master 3) have a button that is supposed to be used to
create up/down/left/right mouse gestures. Other mice (such as the MX Vertical) don't create up/down/left/right mouse gestures. Other mice (such as the MX Vertical) don't
have a button specific for this purpose but have buttons that can be used for it. have a button specific for this purpose but have buttons that can be used for it.
The Mouse Gestures setting assigns a button for this purpose. The `Key/Button Diversion` setting can assign buttons to initiate mouse gestures by setting the value for the button to `Mouse Gestures`.
Pressing the button, if the button is diverted, causes the mouse pointer to stop moving. This capability is only present if the device can support it.
When the button is released a MOUSE_GESTURE notification with the total mouse movement
while the button was pressed is sent to the Solaar rule system.
MOUSE_GESTURE notifications trigger mouse gesture conditions in Solaar rules. Pressing a button when it is set to `Mouse Gestures` causes the mouse pointer to stop moving.
For more information on mouse gesture rules conditions see When the button is released a `MOUSE_GESTURE` notification with the mouse movements and diverted key presses
is sent to the Solaar rule system so that rules can detect these notifications.
For more information on Mouse Gestures rule conditions see
[the rules page](https://pwr-solaar.github.io/Solaar/rules). [the rules page](https://pwr-solaar.github.io/Solaar/rules).
Mouse gestures is an experimental feature. ### Keyboard Key Names and Locations
Significant changes might be made to it in the future.
Solaar uses the standard Logitech names for keyboard keys. Some Logitech keyboards have different icons on some of their keys and have different functionality than suggested by these names.
Solaar is uses the standard US keyboard layout. This currently only matters for the `Per-key Lighting` setting. Users who want to have the key names for this setting reflect the keyboard layout that they use can create and edit `~/.config/solaar/keys.yaml` which contains a YAML dictionary of key names and locations. For example, switching the `Y` and `Z` keys can be done as:
Z: 25
Y: 26
This is an experimental feature and may be modified or even eliminated.
### Onboard Profiles
Some mice store one or more profiles onboard. An onboard profile controls certain aspects of the behavior of the mouse, including the rate at which the mouse reports movement, the resolution of the the movement reports, what the mouse buttons do, LED effects, and maybe more. Solaar has a setting that switches between profiles or disables all profiles.
When an onboard profile is active it may not be possible to change the aspects that the profile controls. This is often seen for the Report Rate setting. For some devices it is possible to make changes to the Sensitivity setting and to LED settings. These changes are likely to only be temporary and may be overridden when the device reconnects or when Solaar is restarted. This is in keeping with the intent of Onboard Profiles as controlling the device behavior. To make the changes to these settings permanent it is necessary to disable onboard profiles. Alternatively, multiple profiles can be set up as described below and these settings controlled by switching between the profiles.
Solaar can dump the entire set of profiles into a YAML file and can load the entire set of profiles from a file. Users can edit the file to effect changes to the profiles.
A profile file has some bookkeeping information, including profile version and the name of the device, and a sequence of profiles.
Each profile has the following fields:
- enabled: Whether the profile is enabled.
- sector: Where the profile is stored in device memory. Sectors greater than 0xFF are in ROM and cannot be written (use the low byte as the sector to write to Flash).
- name: A memonic name for the profile.
- report_rate: A report rate in milliseconds from 1 to 8.
- resolutions: A sequence of five sensor resolutions in DPI.
- resolution_default_index: The index of the default sensor resolution (0 to 4).
- resolution_shift_index: The index of the sensor resolution used when the DPI Shift button is pressed (0 to 4).
- buttons: The action for each button on the mouse in normal mode.
- gbuttons: The action for each button on the mouse in G-Shift mode.
- angle_snap: Enable angle snapping for devices.
- red, blue, green: Color indicator for the profile.
- lighting: Lighting information for logo and side LEDs in normal mode, then for power saving mode.
- ps_timeout: Delay in ms to go into power saving mode.
- po_timeout: Delay in ms to go from power saving mode to fully off.
- power_mode: Unknown purpose.
- write count: Unknown purpose.
Missing or unused parts of a profile are often a sequence of 0xFF bytes.
Button actions can either perform a function (behavior: 9) or send a button click or key press (behaviour: 8).
Functions are:
- 0: No Action - do nothing
- 1: Tilt Left
- 2: Tilt Right
- 3: Next DPI - change device resolution to the next DPI
- 4: Previous DPI - change device resolution to the previous DPI
- 5: Cycle DPI - change device resolution to the next DPI considered as a cycle
- 6: Default_DPI - change device resolution to the default resolution
- 7: Shift_DPI - change device resolution to the shift resolution
- 8: Next Profile - change to the next enabled profile
- 9: Previous Profile - change to the previous enabled profile
- 10: Cycle Profile - change to the next enabled profile considered as a cycle
- 11: G-Shift - change all buttons to their G-Shift state
- 12: Battery Status - show battery status on the device LEDs
- 13: Profile Select - select the n'th enabled profile
- 14: Mode Switch
- 15: Host Button - switch between hosts (unverified)
- 16: Scroll Down
- 17: Scroll Up
Some devices might not be able to perform all functions.
Buttons can send (type):
- 0: Don't send anything.
- 1: A button click (value) as a 16-bit bitmap, i.e., 1 is left click, 2 is right, 4 is middle, etc.
- 2: An 8-bit USB HID keycode (value) plus an 8-bit modifier bitmap (modifiers), i.e., 0 for no modifiers, 1 for control, 2 for shift, etc.
- 3: A 16-bit HID Consumer keycode (value).
See USB_HID_KEYCODES and HID_CONSUMERCODES in lib/logitech_receiver/special_keys.py for values to use for keycodes.
Buttons can also execute macros but Solaar does not provide any support for macros.
Lighting information is a sequence of lighting effects, with the first usually for the logo LEDs and the second usually for the side LEDs.
The fields possible in an effect are:
- ID: The kind of effect:
- color: A color parameter for the effect as a 24-bit RGB value.
- intensity: How intense to make the color (1%-100%), 0 for the default (usually 100%).
- speed: How fast to pulse in ms (one byte).
- ramp: How to change to the color (0=default, 1=ramp up/down, 2=no ramping).
- period: How fast to perform the effect in ms (two bytes).
- form: The form of the breathe effect.
- bytes: The raw bytes of other effects.
The possible effects and the fields the use are:
- 0x0: Disable - No fields.
- 0x1: Fixed color - color, whether to ramp.
- 0x2: Pulse a color - color, speed.
- 0x3 Cycle through the spectrum - period, intensity, form.
- 0x8; A boot effect - No fields.
- 0x9: A demo effect - NO fields.
- 0xa: breathe a color (like pulse) - color, period.
- 0xb: Ripple - color, period.
- null: An unknown effect.
Only effects supported by the device can be used.
To set up profiles, first run `solaar profiles <device name>`, which will output a YAML dump of the profiles on the device. Then store the YAML dump into a file and edit the file to make changes. Finally run `solaar profiles <device name> <file name>` to load the profiles back onto the device. Profiles are stored in flash memory and persist when the device is inactive or turned off. When loading profiles Solaar is careful to only write the flash memory sectors that need to be changed. Solaar also checks for correct profile version and device name before loading a profile into a device.
Keep a copy of the initial dump of profiles so that it can be loaded back to the device if problems are encountered with the edited profiles. The safest changes are to take an unused or unenabled profile sector and create a new profile in it, likely mostly copying parts of another profile.
## System Tray ## System Tray
@ -187,7 +283,7 @@ This allows users to close Solaar and reopen from the tray.
This aspect of Solaar depends on having an active system tray which may This aspect of Solaar depends on having an active system tray which may
require some special setup when using Gnome, particularly under Wayland. require some special setup when using Gnome, particularly under Wayland.
If you are running gnome, you most likely need the If you are running Gnome, you most likely need the
`gnome-shell-extension-appindicator` package installed. `gnome-shell-extension-appindicator` package installed.
In Fedora, this can be done by running In Fedora, this can be done by running
``` ```
@ -204,7 +300,7 @@ You may have to log out and log in again before the system tray shows up.
For many devices, Solaar shows the approximate battery level via icons that For many devices, Solaar shows the approximate battery level via icons that
show up in both the main window and the system tray. In previous versions show up in both the main window and the system tray. In previous versions
several heuristics to determine which icon names to use for this purpose, several heuristics determined which icon names to use for this purpose,
but as more and more battery icon schemes have been developed this has but as more and more battery icon schemes have been developed this has
become impossible to do well. Solaar now uses the eleven standard become impossible to do well. Solaar now uses the eleven standard
battery icon names `battery-{full,good,low,critical,empty}[-charging]` and battery icon names `battery-{full,good,low,critical,empty}[-charging]` and

View File

@ -11,46 +11,39 @@ Solaar supports most Logitech Nano, Unifying, and Bolt receivers.
Solaar supports some Lightspeed receivers. Solaar supports some Lightspeed receivers.
See the receiver table below for the list of currently supported receivers. See the receiver table below for the list of currently supported receivers.
Solaar supports most recent and many older Logitech devices Solaar supports all Logitech devices (keyboards, mice, trackballs, touchpads, and headsets)
(keyboards, mice, trackballs, and touchpads)
that can connect to supported receivers. that can connect to supported receivers.
Solaar supports many recent Logitech devices that can connect via a USB cable, Solaar supports all Logitech devices that can connect via a USB cable or via Bluetooth,
but some such Logitech devices are not suited for use in Solaar because they do not use the HID++ protocol. as long as the device uses the HID++ protocol.
One example is the MX518 Gaming Mouse.
Solaar supports most recent Logitech devices that can connect via Bluetooth.
The device tables below provide a list of some of the devices that Solaar supports,
giving their product name, WPID product number, and HID++ protocol information..
The tables concentrate on older devices that have explicit support information in Solaar.
The best way to determine whether Solaar supports a device is to run Solaar while the device is connected. The best way to determine whether Solaar supports a device is to run Solaar while the device is connected.
If the device is supported, it will show up in the Solaar main window. If the device is supported, it will show up in the Solaar main window.
If it is not, and there is no issue about the device in the Solaar GitHub repository,
open an enhancement issue requesting that it be supported.
## Adding new receivers and devices The directory <https://github.com/pwr-Solaar/Solaar/tree/master/docs/devices> contains edited output
of `solaar show` on many devices and can be used to see what Solaar can do with the device.
## Supporting old devices
Some old Logitech devices use an old version of HID++.
For Solaar to support these devices well, Solaar needs some information about them.
If you have an old Logitech device that shows up in Solaar but has no settings
and you feel that Solaar should be able to do more with the device you can
open an enhancement request for Solaar to better support the device.
## Adding new receivers
Adding a new receiver requires knowing whether the receiver is a regular Adding a new receiver requires knowing whether the receiver is a regular
Unifying receiver, a Nano receiver, a Bolt receiver, or a Lightspeed receiver. Add a line to Unifying receiver, a Nano receiver, a Bolt receiver, or a Lightspeed receiver.
`../lib/logitech_receiver/base_usb.py` defining the receiver as one of these. This can generally be found using `lsusb`.
To add a new receiver to the Solaar code
add a line to `../lib/logitech_receiver/base_usb.py` defining the receiver as one of these.
If the receiver has an unusual number of pairing slots, then this also needs If the receiver has an unusual number of pairing slots, then this also needs
to be specified. Then add the receiver to the tuple of receivers (ALL). to be specified. Then add the receiver to the tuple of receivers (ALL).
Most new devices do not need to be known to Solaar to work.
The _D function in `../lib/logitech_receiver/descriptors.py` makes a device known to Solaar.
The usual arguments to the _D function are the device's long name, its short name
(codename), and its HID++ protocol version.
Devices that use HID++ 1.0 need a tuple of known registers (registers) and settings (settings).
Settings can be provided for Devices that use HID++ 2.0 or later,
but Solaar can determine these from the device.
If the device can connect to a receiver, provide its wireless product ID (wpid),
If the device can connect via Bluetooth, provide its Bluetooth product ID (btid).
If the device can connect via a USB cable, provide its USB product ID (usbid),
and the interface it uses to send and receiver HID++ messages (interface - default 2).
The use of a non-default USB interface is the main reason for requiring information about
modern devices to be added to Solaar.
### Supported Receivers ### Supported Receivers
| USB ID | Kind | Max Paired Devices | | USB ID | Kind | Max Paired Devices |
@ -81,14 +74,25 @@ modern devices to be added to Solaar.
| 17ef:6042 | Nano | 1 | | 17ef:6042 | Nano | 1 |
Some Nano receivers are only partly supported Some Nano receivers are only partly supported
as they do not fully implement the full HID++ 1.0 protocol. as they do not implement the full HID++ 1.0 protocol.
Some Nano receivers are not supported at all as they do not implement the HID++ protocol. Some Nano receivers are not supported as they do not implement the HID++ protocol at all.
Receivers with USB ID 046d:c542 fall into this category. Receivers with USB ID 046d:c542 fall into this category.
The receiver with USB ID 046d:c517 is an old 27 MHz receiver, supporting only The receiver with USB ID 046d:c517 is an old 27 MHz receiver, supporting only
subset of HID++ 1.0 protocol. Only hardware pairing is supported. a subset of the HID++ 1.0 protocol. Only hardware pairing is supported.
## Supported Devices (Historical Interest Only)
The device tables below provide a list of some of the devices that Solaar supports,
giving their product name, WPID product number, and HID++ protocol information.
The tables concentrate on older devices that have explicit support information in Solaar
and are not being updated for new devices that are supported by Solaar.
Note that Logitech has the annoying habit of reusing Device names (e.g., M185)
so what is important for support is the USB WPID or Bluetooth model ID.
### Keyboards (Unifying) ### Keyboards (Unifying)
| Device | WPID | HID++ | | Device | WPID | HID++ |
@ -155,6 +159,7 @@ subset of HID++ 1.0 protocol. Only hardware pairing is supported.
| MX Master | 4041 | 2.0 | | MX Master | 4041 | 2.0 |
| MX Master 2S | 4069 | 2.0 | | MX Master 2S | 4069 | 2.0 |
| Cube | | 2.0 | | Cube | | 2.0 |
| MX Vertical | 407B | 2.0 |
### Mice (Nano) ### Mice (Nano)
@ -204,6 +209,7 @@ subset of HID++ 1.0 protocol. Only hardware pairing is supported.
| Device | WPID | HID++ | | Device | WPID | HID++ |
|------------------------------|------|-------| |------------------------------|------|-------|
| G604 Wireless Gaming Mouse | 4085 | 4.2 |
| PRO X Superlight Wireless | 4093 | 4.2 | | PRO X Superlight Wireless | 4093 | 4.2 |
### Trackballs (Unifying) ### Trackballs (Unifying)
@ -236,4 +242,4 @@ subset of HID++ 1.0 protocol. Only hardware pairing is supported.
| EX100 keyboard | 0065 | 1.0 | | EX100 keyboard | 0065 | 1.0 |
| EX100 mouse | 003f | 1.0 | | EX100 mouse | 003f | 1.0 |
* The EX100 is an old, preunifying receiver and device set, supporting only part of HID++ 1.0 features * The EX100 is an old, pre-Unifying receiver and device set, supporting only some HID++ 1.0 features

56
docs/devices/00README.txt Normal file
View File

@ -0,0 +1,56 @@
Files in this directory are edited output from `solaar show` providing
information about devices and receivers that Solaar supports. This
directory does not contain information about all devices and receivers that
Solaar supports. Information is generally only added when provided in a
Solaar issue.
Directions for constructing the files are given below. The files
Unifying Receiver C52B.txt
Craft Advanced Keyboard 4066.txt
Craft Advanced Keyboard B350.txt
MX Master 3 Wireless Mouse 4082.txt
MX Master 3 Wireless Mouse B023.txt
are good examples of following the directions below.
File Naming
Logitech device names are often reused so the names of files can't just be
the device name. File names start with the name of the device or receiver
as given in the first line of of output for the device. The file name
continues with a space and the WPID, if the device is connected to a
receiver, or the second half of the USB ID, if the device is connected via
USB or Bluetooth. The WPID or USB ID are in upper case. As devices can
behave differently when connected via a receiver or USB or Bluetooth there
should be a file for each possible connection method.
Files that do not follow this naming convention are retained for historical purposes.
File Contents
Each file should contain the output of `solaar show NAME` where NAME
is enough of the full name of a device or receiver to identify it.
The output of `solaar show` will provide information on all connnected
devices and receivers including their names.
The output of `solaar show NAME` can be edited
to remove serial numbers and variable information such as the current values
of settings.
Passing the style requirements for Solaar documentation may require removing
trailing white space on lines.
For older devices probes of the device registers should be
included but for newer devices this is not necessary.
Unifying receivers can pair with any device that has the Unifying logo.
Bolt receivers can pair with any device that has the Bolt logo.
Nano and Lightspeed receivers can only pair with certain devices,
so the end of their files should state the devices that they have
been seen to be paired with or are part of.
Updating Files
Newer versions of Solaar add support for more settings so it is useful to
provide updated versions of these files if there is information from the
current version of `solaar show NAME` that is not in the existing file.

View File

@ -0,0 +1,97 @@
Solaar version 1.1.4
1: Bluetooth Multi-Device Keyboard K380
Device path : /dev/hidraw5
USB id : 046d:B342
Codename : Keyboard K380
Kind : ?
Protocol : HID++ 4.5
Serial number:
Model ID: B34200000000
Unit ID: 16000000
Firmware: RBK 42.01.B0017
Hardware: 72
Supports 14 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Firmware RBK 42.01.B0017 B342C18DBFDD
Firmware: Hardware 72
Unit ID: 16000000 Model ID: B34200000000 Transport IDs: {'btid': 'B342'}
3: DEVICE NAME {0005}
Name: Bluetooth Multi-Device Keyboard K380
Kind: keyboard
4: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard K380
5: RESET {0020}
6: BATTERY STATUS {1000}
Battery: 20%, discharging, next level 5%.
7: CHANGE HOST {1814}
Change Host : 1:Luay-A
8: HOSTS INFO {1815}
Host 0 (paired): Luay-A
Host 1 (paired): BCM20703A2 Generic UART UHE App
Host 2 (unpaired):
9: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Search:Regular, Multiplatform App Switch:Regular, Multiplatform Home:Regular, Multiplatform Menu:Diverted, Multiplatform Back:Regular, Multiplatform Insert:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular}
Key/Button Diversion : {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Search:Regular, Multiplatform App Switch:Regular, Multiplatform Home:Regular, Multiplatform Menu:Diverted, Multiplatform Back:Regular, Multiplatform Insert:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular}
10: unknown:1E00 {1E00} hidden
11: NEW FN INVERSION {40A2}
Fn-swap: disabled
Fn-swap default: enabled
Swap Fx function (saved): False
Swap Fx function : False
12: LOCK KEY STATE {4220}
13: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Scroll Lock:False, Insert:True, Win:False}
Disable keys : {Caps Lock:False, Scroll Lock:False, Insert:True, Win:False}
Has 16 reprogrammable keys:
0: Multiplatform Home , default: MultiPlatform Home => MultiPlatform Home
is FN, FN sensitive, reprogrammable, divertable, pos:4, group:0, group mask:empty
reporting: default
1: Multiplatform App Switch , default: MultiPlatform App Switch => MultiPlatform App Switch
is FN, FN sensitive, reprogrammable, divertable, pos:5, group:0, group mask:empty
reporting: default
2: Multiplatform Menu , default: MultiPlatform Menu => MultiPlatform Menu
is FN, FN sensitive, reprogrammable, divertable, pos:6, group:0, group mask:empty
reporting: diverted
3: Multiplatform Back , default: MultiPlatform Back => MultiPlatform Back
is FN, FN sensitive, reprogrammable, divertable, pos:7, group:0, group mask:empty
reporting: default
4: Previous , default: Previous => Previous
is FN, FN sensitive, divertable, pos:8, group:0, group mask:empty
reporting: default
5: Play/Pause , default: Play/Pause => Play/Pause
is FN, FN sensitive, divertable, pos:9, group:0, group mask:empty
reporting: default
6: Next , default: Next => Next
is FN, FN sensitive, divertable, pos:10, group:0, group mask:empty
reporting: default
7: Mute , default: Mute => Mute
is FN, FN sensitive, divertable, pos:11, group:0, group mask:empty
reporting: default
8: Volume Down , default: Volume Down => Volume Down
is FN, FN sensitive, divertable, pos:12, group:0, group mask:empty
reporting: default
9: Volume Up , default: Volume Up => Volume Up
is FN, FN sensitive, divertable, pos:0, group:0, group mask:empty
reporting: default
10: Multiplatform Insert , default: Switch Language => Switch Language
FN sensitive, reprogrammable, divertable, pos:0, group:0, group mask:empty
reporting: default
11: Fn Up , default: unknown:0070 => unknown:0070
is FN, divertable, pos:0, group:0, group mask:empty
reporting: default
12: Fn Down , default: unknown:006F => unknown:006F
is FN, divertable, pos:0, group:0, group mask:empty
reporting: default
13: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
reporting: default
14: Search , default: Search Files => Search Files
is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
reporting: default
15: Multiplatform Lock , default: WindowsLock => WindowsLock
is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
reporting: default
Battery: 20%, discharging, next level 5%.

View File

@ -0,0 +1,9 @@
Solaar version 1.1.4
Bolt Receiver
Device path : /dev/hidraw8
USB id : 046d:C548
Serial : 38423638313332394241363434313837
Has 2 paired device(s) out of a maximum of 6.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=252, 2=135

View File

@ -0,0 +1,30 @@
7: Candy companion chip
Device path : /dev/hidraw11
Codename : Candy
Kind : touchpad
Protocol : HID++ 4.2
Serial number: 5B2B9A98
Model ID: 405F00000000
Unit ID: 32314707
Firmware: CC 07.00.B0010
Bootloader: BOT 32.00.B0010
Supports 11 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Firmware CC 07.00.B0010 405F
Firmware: Bootloader BOT 32.00.B0010 405F
Unit ID: 32314707 Model ID: 405F00000000 Transport IDs: {'wpid': '405F'}
3: DEVICE NAME {0005}
Name: Candy companion chip
Kind: touchpad
4: unknown:18A1 {18A1} internal, hidden
5: unknown:1E00 {1E00} hidden
6: unknown:1EB0 {1EB0} internal, hidden
7: DFUCONTROL SIGNED {00C2}
8: unknown:1801 {1801} internal, hidden
9: DEVICE RESET {1802} internal, hidden
10: unknown:1803 {1803} internal, hidden
Battery status unavailable.
Part of the G PowerPlay Wireless Mouse Pad.

View File

@ -0,0 +1,176 @@
Solaar version 1.1.4
2: Craft Advanced Keyboard
Device path : /dev/hidraw4
WPID : 4066
Codename : Craft
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 112C46EA
Model ID: B35040660000
Unit ID: 43DAF041
Bootloader: BOT 41.01.B0015
Firmware: MPK 07.01.B0015
Other:
Other:
The power switch is located on the edge of top right corner.
Supports 38 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 41.01.B0015 0000B6A2C54601
Firmware: Firmware MPK 07.01.B0015 4066B6A2C54601
Firmware: Other
Firmware: Other
Unit ID: 43DAF041 Model ID: B35040660000 Transport IDs: {'btleid': 'B350', 'wpid': '4066'}
3: DEVICE NAME {0005}
Name: Craft Advanced Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard Craft
7: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
8: CHANGE HOST {1814}
Change Host : 1:idefix
9: HOSTS INFO {1815}
Host 0 (paired): idefix
Host 1 (paired): idefix
Host 2 (paired): Galaxy Tab S6
10: BACKLIGHT2 {1982}
Backlight (saved): True
Backlight : True
11: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Calculator:Regular, Show Desktop:Diverted, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Diverted, Host Switch Channel 3:Diverted, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
Key/Button Diversion : {Calculator:Regular, Show Desktop:Diverted, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Diverted, Host Switch Channel 3:Diverted, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
12: PERSISTENT REMAPPABLE ACTION {1C00}
Persistent Key/Button Mapping : {Calculator:AL Calculator, Show Desktop:Meta+D, Lock PC:Meta+L, Screen Capture/Print Screen:SYSRQ, Brightness Down:Brightness Down, Brightness Up:Brightness Up, Mission Control/Task View:Meta+TAB, Dashboard Launchpad/Action Center:Meta+A, Backlight Down:No Output (only as default), Backlight Up:No Output (only as default), Previous Fn:Scan Previous Track, Play/Pause Fn:Play/Pause, Next Fn:Scan Next Track, Mute Fn:Mute, Volume Down Fn:No Output, Volume Up Fn:Volume Up, App Contextual Menu/Right Click:COMPOSE}
13: K375S FN INVERSION {40A3}
Swap Fx function (saved): True
Swap Fx function : True
14: ENCRYPTION {4100}
15: LOCK KEY STATE {4220}
16: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
17: MULTIPLATFORM {4531}
Set OS (saved): Windows
Set OS : Windows
18: CROWN {4600}
Crown smooth scroll (saved): False
Crown smooth scroll : False
Divert crown events (saved): True
Divert crown events : True
19: DFUCONTROL SIGNED {00C2}
20: unknown:1803 {1803} internal, hidden
21: CONFIG DEVICE PROPS {1806} internal, hidden
22: unknown:1813 {1813} internal, hidden
23: OOBSTATE {1805} internal, hidden
24: unknown:1830 {1830} internal, hidden
25: unknown:1890 {1890} internal, hidden
26: unknown:1891 {1891} internal, hidden
27: unknown:1801 {1801} internal, hidden
28: unknown:18A1 {18A1} internal, hidden
29: unknown:9280 {9280} internal, hidden
30: unknown:1A20 {1A20} internal, hidden
31: unknown:1DF3 {1DF3} internal, hidden
32: unknown:1E00 {1E00} hidden
33: unknown:1EB0 {1EB0} internal, hidden
34: unknown:1861 {1861} internal, hidden
35: unknown:18B0 {18B0} internal, hidden
36: unknown:92C0 {92C0} internal, hidden
37: unknown:9203 {9203} internal, hidden
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: diverted
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: diverted
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
5: Mission Control/Task View , default: Mission Control/Task View => Mission Control/Task View
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, group mask:empty
reporting: default
6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
reporting: default
7: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, group mask:empty
reporting: diverted
8: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, group mask:empty
reporting: default
9: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
17: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, pos:0, group:0, group mask:empty
reporting: default
23: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, pos:0, group:0, group mask:empty
reporting: default
Has 17 persistent remappable keys:
0: Brightness Down => Consumer: Brightness Down (remapped)
1: Brightness Up => Consumer: Brightness Up (remapped)
2: Mission Control/Task View => Key: Meta+TAB
3: Dashboard Launchpad/Action Center => Key: Meta+A
4: Show Desktop => Key: Meta+D
5: Backlight Down => None
6: Backlight Up => None
7: Previous Fn => Consumer: Scan Previous Track
8: Play/Pause Fn => Consumer: Play/Pause
9: Next Fn => Consumer: Scan Next Track
10: Mute Fn => Consumer: Mute
11: Volume Down Fn => Key: No Output (remapped)
12: Volume Up Fn => Consumer: Volume Up
13: Calculator => Consumer: AL Calculator
14: Screen Capture/Print Screen => Key: SYSRQ
15: App Contextual Menu/Right Click => Key: COMPOSE
16: Lock PC => Key: Meta+L
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,169 @@
Solaar version 1.1.4
1: Craft Advanced Keyboard
Device path : /dev/hidraw5
USB id : 046d:B350
Codename : Craft
Kind : keyboard
Protocol : HID++ 4.5
Serial number:
Model ID: B35040660000
Unit ID: 43DAF041
Bootloader: BOT 41.01.B0015
Firmware: MPK 07.01.B0015
Other:
Other:
Supports 33 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 41.01.B0015 0000B6A2C54601
Firmware: Firmware MPK 07.01.B0015 B350B6A2C54601
Firmware: Other
Firmware: Other
Unit ID: 43DAF041 Model ID: B35040660000 Transport IDs: {'btleid': 'B350', 'wpid': '4066'}
3: DEVICE NAME {0005}
Name: Craft Advanced Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard Craft
7: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
8: CHANGE HOST {1814}
Change Host : 2:idefix
9: HOSTS INFO {1815}
Host 0 (paired): idefix
Host 1 (paired): idefix
Host 2 (paired): Galaxy Tab S6
10: BACKLIGHT2 {1982}
Backlight (saved): True
Backlight : True
11: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Calculator:Regular, Show Desktop:Diverted, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Diverted, Host Switch Channel 3:Diverted, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
Key/Button Diversion : {Calculator:Regular, Show Desktop:Diverted, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Diverted, Host Switch Channel 3:Diverted, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
12: PERSISTENT REMAPPABLE ACTION {1C00}
Persistent Key/Button Mapping : {Calculator:AL Calculator, Show Desktop:Meta+D, Lock PC:Meta+L, Screen Capture/Print Screen:SYSRQ, Brightness Down:No Output (only as default), Brightness Up:No Output (only as default), Mission Control/Task View:Meta+TAB, Dashboard Launchpad/Action Center:Meta+A, Backlight Down:No Output (only as default), Backlight Up:No Output (only as default), Previous Fn:Scan Previous Track, Play/Pause Fn:Play/Pause, Next Fn:Scan Next Track, Mute Fn:Mute, Volume Down Fn:Volume Down, Volume Up Fn:Volume Up, App Contextual Menu/Right Click:COMPOSE}
13: K375S FN INVERSION {40A3}
Swap Fx function (saved): True
Swap Fx function : True
14: ENCRYPTION {4100}
15: LOCK KEY STATE {4220}
16: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
17: MULTIPLATFORM {4531}
Set OS (saved): Windows
Set OS : Windows
18: CROWN {4600}
Crown smooth scroll (saved): False
Crown smooth scroll : False
Divert crown events (saved): True
Divert crown events : True
19: DFUCONTROL SIGNED {00C2}
20: unknown:1803 {1803} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: unknown:1830 {1830} internal, hidden
23: unknown:1801 {1801} internal, hidden
24: unknown:18A1 {18A1} internal, hidden
25: unknown:1A20 {1A20} internal, hidden
26: unknown:1DF3 {1DF3} internal, hidden
27: unknown:1E00 {1E00} hidden
28: unknown:1EB0 {1EB0} internal, hidden
29: unknown:1861 {1861} internal, hidden
30: unknown:18B0 {18B0} internal, hidden
31: unknown:92C0 {92C0} internal, hidden
32: unknown:9203 {9203} internal, hidden
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: diverted
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: diverted
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
5: Mission Control/Task View , default: Mission Control/Task View => Mission Control/Task View
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, group mask:empty
reporting: default
6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
reporting: default
7: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, group mask:empty
reporting: diverted
8: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, group mask:empty
reporting: default
9: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
17: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, pos:0, group:0, group mask:empty
reporting: default
23: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, pos:0, group:0, group mask:empty
reporting: default
Has 17 persistent remappable keys:
0: Brightness Down => None
1: Brightness Up => None
2: Mission Control/Task View => Key: Meta+TAB
3: Dashboard Launchpad/Action Center => Key: Meta+A
4: Show Desktop => Key: Meta+D
5: Backlight Down => None
6: Backlight Up => None
7: Previous Fn => Consumer: Scan Previous Track
8: Play/Pause Fn => Consumer: Play/Pause
9: Next Fn => Consumer: Scan Next Track
10: Mute Fn => Consumer: Mute
11: Volume Down Fn => Consumer: Volume Down
12: Volume Up Fn => Consumer: Volume Up
13: Calculator => Consumer: AL Calculator
14: Screen Capture/Print Screen => Key: SYSRQ
15: App Contextual Menu/Right Click => Key: COMPOSE
16: Lock PC => Key: Meta+L
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,79 @@
Solaar version 1.1.4
1: ERGO M575 Trackball
Device path : /dev/hidraw5
WPID : 4096
Codename : ERGO M575
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 460DFDC2
Model ID: B02740960000
Unit ID: 460DFDC2
Bootloader: BOT 40.00.B0009
Firmware: MPM 26.00.B0009
Other:
The power switch is located on the base.
Supports 25 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 40.00.B0009 0000ABF1CB8B01
Firmware: Firmware MPM 26.00.B0009 4096ABF1CB8B01
Firmware: Other
Unit ID: 460DFDC2 Model ID: B02740960000 Transport IDs: {'btleid': 'B027', 'wpid': '4096'}
3: DEVICE NAME {0005}
Name: ERGO M575 Trackball
Kind: trackball
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: ERGO M575
7: UNIFIED BATTERY {1004}
8: REPROG CONTROLS V4 {1B04}
DPI Sliding Adjustment (saved): Off
DPI Sliding Adjustment : Off
Mouse Gestures (saved): Off
Mouse Gestures : Off
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular}
9: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 500
Sensitivity (DPI) : 500
10: XY STATS {2250}
11: DFUCONTROL SIGNED {00C2}
12: DEVICE RESET {1802} internal, hidden
13: unknown:1803 {1803} internal, hidden
14: CONFIG DEVICE PROPS {1806} internal, hidden
15: unknown:1812 {1812} internal, hidden
16: OOBSTATE {1805} internal, hidden
17: unknown:1830 {1830} internal, hidden
18: unknown:1890 {1890} internal, hidden
19: unknown:1891 {1891} internal, hidden
20: unknown:18A1 {18A1} internal, hidden
21: unknown:1E00 {1E00} hidden
22: unknown:1EB0 {1EB0} internal, hidden
23: unknown:1861 {1861} internal, hidden
24: unknown:1E22 {1E22} internal, hidden
Has 6 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
4: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
5: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: 85%, discharging.

View File

@ -1,3 +1,128 @@
solaar version 1.1.11-80-gdea496f
EX100 Receiver 27 Mhz
Device path : /dev/hidraw2
USB id : 046d:C517
Serial : None
Has 2 paired device(s) out of a maximum of 4.
Notifications: wireless (0x000100)
1: Wireless Mouse EX100
Device path : /dev/hidraw3
WPID : 003F
Codename : EX100m
Kind : mouse
Protocol : HID++ 1.0
Serial number:
The power switch is located on the (unknown).
Notifications: roller V, mouse extra buttons, battery status, roller H (0x3C0000).
Battery: good, discharging.
3: Wireless Keyboard EX100
Device path : /dev/hidraw6
WPID : 0065
Codename : EX100
Kind : keyboard
Protocol : HID++ 1.0
Serial number:
The power switch is located on the (unknown).
Notifications: keyboard multimedia raw, battery status (0x110000).
Battery: good, discharging.
Register Dump
Notifications 0x00: 0x000100
Connection State 0x02: 0x000100
Device Activity 0xb3: None
Pairing Register 0xb5 0x00: None
Pairing Register 0xb5 0x01: None
Pairing Register 0xb5 0x02: None
Pairing Register 0xb5 0x03: None
Pairing Register 0xb5 0x04: None
Pairing Register 0xb5 0x05: None
Pairing Register 0xb5 0x06: None
Pairing Register 0xb5 0x07: None
Pairing Register 0xb5 0x08: None
Pairing Register 0xb5 0x09: None
Pairing Register 0xb5 0x0a: None
Pairing Register 0xb5 0x0b: None
Pairing Register 0xb5 0x0c: None
Pairing Register 0xb5 0x0d: None
Pairing Register 0xb5 0x0e: None
Pairing Register 0xb5 0x0f: None
Pairing Register 0xb5 0x10: None
Pairing Register 0xb5 0x20: None
Pairing Register 0xb5 0x30: None
Pairing Register 0xb5 0x50: None
Pairing Name 0xb5 0x40: None
Pairing Name 0xb5 0x60 0x1: 0 None
Pairing Name 0xb5 0x60 0x2: 0 None
Pairing Name 0xb5 0x60 0x3: 0 None
Pairing Register 0xb5 0x11: None
Pairing Register 0xb5 0x21: None
Pairing Register 0xb5 0x31: None
Pairing Register 0xb5 0x51: None
Pairing Name 0xb5 0x41: None
Pairing Name 0xb5 0x61 0x1: 0 None
Pairing Name 0xb5 0x61 0x2: 0 None
Pairing Name 0xb5 0x61 0x3: 0 None
Pairing Register 0xb5 0x12: None
Pairing Register 0xb5 0x22: None
Pairing Register 0xb5 0x32: None
Pairing Register 0xb5 0x52: None
Pairing Name 0xb5 0x42: None
Pairing Name 0xb5 0x62 0x1: 0 None
Pairing Name 0xb5 0x62 0x2: 0 None
Pairing Name 0xb5 0x62 0x3: 0 None
Pairing Register 0xb5 0x13: None
Pairing Register 0xb5 0x23: None
Pairing Register 0xb5 0x33: None
Pairing Register 0xb5 0x53: None
Pairing Name 0xb5 0x43: None
Pairing Name 0xb5 0x63 0x1: 0 None
Pairing Name 0xb5 0x63 0x2: 0 None
Pairing Name 0xb5 0x63 0x3: 0 None
Pairing Register 0xb5 0x14: None
Pairing Register 0xb5 0x24: None
Pairing Register 0xb5 0x34: None
Pairing Register 0xb5 0x54: None
Pairing Name 0xb5 0x44: None
Pairing Name 0xb5 0x64 0x1: 0 None
Pairing Name 0xb5 0x64 0x2: 0 None
Pairing Name 0xb5 0x64 0x3: 0 None
Pairing Register 0xb5 0x15: None
Pairing Register 0xb5 0x25: None
Pairing Register 0xb5 0x35: None
Pairing Register 0xb5 0x55: None
Pairing Name 0xb5 0x45: None
Pairing Name 0xb5 0x65 0x1: 0 None
Pairing Name 0xb5 0x65 0x2: 0 None
Pairing Name 0xb5 0x65 0x3: 0 None
Pairing Register 0xb5 0x16: None
Pairing Register 0xb5 0x26: None
Pairing Register 0xb5 0x36: None
Pairing Register 0xb5 0x56: None
Pairing Name 0xb5 0x46: None
Pairing Name 0xb5 0x66 0x1: 0 None
Pairing Name 0xb5 0x66 0x2: 0 None
Pairing Name 0xb5 0x66 0x3: 0 None
Firmware 0xf1 0x00: None
Firmware 0xf1 0x01: None
Firmware 0xf1 0x02: None
Firmware 0xf1 0x03: None
Firmware 0xf1 0x04: None
Register Short 0x00 0x00: 0x000100
Register Long 0x00 0x00: invalid SubID/command
...
Register Long 0x00 0xfe: invalid SubID/command
Register Short 0x01 0x00: 0x000200
Register Long 0x01 0x00: invalid SubID/command
Register Long 0x01 0x01: invalid SubID/command
Register Long 0x01 0x02: invalid SubID/command
...
./scan-registers.sh ff /dev/hidraw4 ./scan-registers.sh ff /dev/hidraw4
# Old notification flags: 000100 # Old notification flags: 000100
>> ( 0.035) [10 FF 8100 000100] '\x10\xff\x81\x00\x00\x01\x00' >> ( 0.035) [10 FF 8100 000100] '\x10\xff\x81\x00\x00\x01\x00'
@ -67,52 +192,7 @@ Fn pressed
>> ( 1652.170) [10 03 0300 000000] '\x10\x03\x03\x00\x00\x00\x00' >> ( 1652.170) [10 03 0300 000000] '\x10\x03\x03\x00\x00\x00\x00'
$ bin/solaar probe
Nano Receiver
Device path : /dev/hidraw3
USB id : 046d:c517
Serial : None
Has 2 paired device(s) out of a maximum of 6.
Notifications: wireless (0x000100)
Register Dump
Notification Register 0x00: 0x000100
Connection State 0x02: 0x000200
Device Activity 0xb3: None
Pairing Register 0xb5 0x00: None
Pairing Register 0xb5 0x10: None
Pairing Register 0xb5 0x20: None
Pairing Register 0xb5 0x30: None
Pairing Name 0xb5 0x40: None
Pairing Register 0xb5 0x01: None
Pairing Register 0xb5 0x11: None
Pairing Register 0xb5 0x21: None
Pairing Register 0xb5 0x31: None
Pairing Name 0xb5 0x41: None
Pairing Register 0xb5 0x02: None
Pairing Register 0xb5 0x12: None
Pairing Register 0xb5 0x22: None
Pairing Register 0xb5 0x32: None
Pairing Name 0xb5 0x42: None
Pairing Register 0xb5 0x03: None
Pairing Register 0xb5 0x13: None
Pairing Register 0xb5 0x23: None
Pairing Register 0xb5 0x33: None
Pairing Name 0xb5 0x43: None
Pairing Register 0xb5 0x04: None
Pairing Register 0xb5 0x14: None
Pairing Register 0xb5 0x24: None
Pairing Register 0xb5 0x34: None
Pairing Name 0xb5 0x44: None
Pairing Register 0xb5 0x05: None
Pairing Register 0xb5 0x15: None
Pairing Register 0xb5 0x25: None
Pairing Register 0xb5 0x35: None
Pairing Name 0xb5 0x45: None
Firmware 0xf1 0x00: None
Firmware 0xf1 0x01: None
Firmware 0xf1 0x02: None
Firmware 0xf1 0x03: None
Firmware 0xf1 0x04: None
Battery status: Battery status:
1.9V critical 1.9V critical

View File

@ -0,0 +1,61 @@
Solaar version 1.1.4rc1
1: G Pro Wireless Gaming Mouse
Device path : /dev/hidraw10
WPID : 4079
Codename : G Pro
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 2 ms (500Hz)
Serial number: 40B217C0
Model ID: 4079C0880000
Unit ID: 40B217C0
Bootloader: BOT 74.02.B0026
Firmware: MPM 15.02.B0026
Other:
The power switch is located on the base.
Supports 28 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 74.02.B0026 AADF85EE714A
Firmware: Firmware MPM 15.02.B0026 407985EE714A
Firmware: Other
Unit ID: 40B217C0 Model ID: 4079C0880000 Transport IDs: {'wpid': '4079', 'usbid': 'C088'}
3: DEVICE NAME {0005}
Name: G Pro Wireless Gaming Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: BATTERY VOLTAGE {1001}
Battery: 3926mV, discharging, 70.
7: COLOR LED EFFECTS {8070}
8: LED CONTROL {1300}
9: ONBOARD PROFILES {8100}
Device Mode: On-Board
Onboard Profiles (saved): Enable
Onboard Profiles : Enable
10: MOUSE BUTTON SPY {8110}
11: REPORT RATE {8060}
Polling Rate (ms): 2
Polling Rate (ms) (saved): 2
Polling Rate (ms) : 2
12: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 1600
Sensitivity (DPI) : 1600
13: DEVICE RESET {1802} internal, hidden
14: unknown:1803 {1803} internal, hidden
15: OOBSTATE {1805} internal, hidden
16: CONFIG DEVICE PROPS {1806} internal, hidden
17: unknown:1811 {1811} internal, hidden
18: unknown:1830 {1830} internal, hidden
19: unknown:1890 {1890} internal, hidden
20: unknown:1891 {1891} internal, hidden
21: unknown:18A1 {18A1} internal, hidden
22: unknown:1801 {1801} internal, hidden
23: unknown:18B1 {18B1} internal, hidden
24: unknown:1DF3 {1DF3} internal, hidden
25: unknown:1E00 {1E00} hidden
26: unknown:1EB0 {1EB0} internal, hidden
27: unknown:1863 {1863} internal, hidden
Battery: 3926mV, discharging, 70.

View File

@ -0,0 +1,40 @@
Solaar version 1.1.5rc1
USB and Bluetooth Devices
1: G213 Prodigy Gaming Keyboard
Device path : /dev/hidraw2
USB id : 046d:C336
Codename : G213
Kind : keyboard
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: C33600000000
Unit ID: 31314709
Firmware: U1 09.00.B0006
Bootloader: BOT 31.00.B0002
Supports 15 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Firmware U1 09.00.B0006 C336
Firmware: Bootloader BOT 31.00.B0002 AAC8
Unit ID: 31314709 Model ID: C33600000000 Transport IDs: {'usbid': 'C336'}
3: KEYBOARD DISABLE BY USAGE {4522} V0
4: DEVICE NAME {0005} V0
Name: Gaming Keyboard G213
Kind: keyboard
5: unknown:1E00 {1E00} V0 hidden
6: KEYBOARD LAYOUT 2 {4540} V0
7: unknown:1EB0 {1EB0} V0 internal, hidden
8: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) : 1
9: DFUCONTROL SIGNED {00C2} V0
10: unknown:1801 {1801} V0 internal, hidden
11: DEVICE RESET {1802} V0 internal, hidden
12: COLOR LED EFFECTS {8070} V5
13: unknown:1821 {1821} V0
14: REPORT HID USAGE {1BC0} V0
Battery: N/A, None.

View File

@ -0,0 +1,59 @@
solaar version 1.1.8
1: G304 Lightspeed Wireless Gaming Mouse
Device path : /dev/hidraw6
WPID : 4074
Codename : G304
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 8 ms (125Hz)
Serial number: B2D05D23
Model ID: 407400000000
Unit ID: EB490C63
Bootloader: BOT 69.02.B0021
Firmware: RQM 68.02.B0021
The power switch is located on the base.
Supports 27 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BOT 69.02.B0021 4074452F3940
Firmware: Firmware RQM 68.02.B0021 4074452F3940
Unit ID: EB490C63 Model ID: 407400000000 Transport IDs: {'wpid': '4074'}
3: DEVICE NAME {0005} V0
Name: G304 Lightspeed Wireless Gaming Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: BATTERY STATUS {1000} V0
Battery: 90%, discharging, next level 50%.
6: COLOR LED EFFECTS {8070} V6
7: ONBOARD PROFILES {8100} V0
Device Mode: Host
Onboard Profiles (saved): Disable
Onboard Profiles : Disable
8: MOUSE BUTTON SPY {8110} V0
9: REPORT RATE {8060} V0
Polling Rate (ms): 8
Polling Rate (ms) (saved): 8
Polling Rate (ms) : 8
10: MODE STATUS {8090} V1
11: DFUCONTROL SIGNED {00C2} V0
12: DEVICE RESET {1802} V0 internal, hidden
13: unknown:1803 {1803} V0 internal, hidden
14: CONFIG DEVICE PROPS {1806} V4 internal, hidden
15: unknown:1811 {1811} V0 internal, hidden
16: OOBSTATE {1805} V0 internal, hidden
17: unknown:1830 {1830} V0 internal, hidden
18: unknown:1890 {1890} V0 internal, hidden
19: unknown:1DF3 {1DF3} V0 internal, hidden
20: unknown:1E00 {1E00} V0 hidden
21: unknown:1EB0 {1EB0} V0 internal, hidden
22: unknown:1861 {1861} V0 internal, hidden
23: unknown:18B1 {18B1} V0 internal, hidden
24: unknown:1E22 {1E22} V0 internal, hidden
25: unknown:1801 {1801} V0 internal, hidden
26: ADJUSTABLE DPI {2201} V1
Sensitivity (DPI) (saved): 2200
Sensitivity (DPI) : 2200
Battery: 90%, discharging, next level 50%.

View File

@ -0,0 +1,58 @@
solaar version 1.1.10
1: G305 Lightspeed Wireless Gaming Mouse
Device path : /dev/hidraw7
WPID : 4074
Codename : G305
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number: ED5E9515
Model ID: 407400000000
Unit ID: F074D567
Bootloader: BOT 69.02.B0021
Firmware: RQM 68.02.B0021
The power switch is located on the base.
Supports 27 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BOT 69.02.B0021 4074452F3940
Firmware: Firmware RQM 68.02.B0021 4074452F3940
Unit ID: F074D567 Model ID: 407400000000 Transport IDs: {'wpid': '4074'}
3: DEVICE NAME {0005} V0
Name: G305 Lightspeed Wireless Gaming Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: BATTERY STATUS {1000} V0
Battery: 50%, discharging, next level 30%.
6: COLOR LED EFFECTS {8070} V6
7: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Onboard Profiles (saved): Enable
Onboard Profiles : Enable
8: MOUSE BUTTON SPY {8110} V0
9: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
10: MODE STATUS {8090} V1
11: DFUCONTROL SIGNED {00C2} V0
12: DEVICE RESET {1802} V0 internal, hidden
13: unknown:1803 {1803} V0 internal, hidden
14: CONFIG DEVICE PROPS {1806} V4 internal, hidden
15: unknown:1811 {1811} V0 internal, hidden
16: OOBSTATE {1805} V0 internal, hidden
17: unknown:1830 {1830} V0 internal, hidden
18: unknown:1890 {1890} V0 internal, hidden
19: unknown:1DF3 {1DF3} V0 internal, hidden
20: unknown:1E00 {1E00} V0 hidden
21: unknown:1EB0 {1EB0} V0 internal, hidden
22: unknown:1861 {1861} V0 internal, hidden
23: unknown:18B1 {18B1} V0 internal, hidden
24: unknown:1E22 {1E22} V0 internal, hidden
25: unknown:1801 {1801} V0 internal, hidden
26: ADJUSTABLE DPI {2201} V1
Sensitivity (DPI) (saved): 1600
Sensitivity (DPI) : 1600
Battery: 50%, discharging, next level 30%.

View File

@ -0,0 +1,49 @@
Solaar version 1.1.5
1: G502 Gaming Mouse
Device path : /dev/hidraw1
USB id : 046d:C07D
Codename : G502
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: 000000000000
Unit ID: 00000000
Firmware: U 88.02.B0017
Bootloader: BOT 14.00.B0007
Hardware: 72
Other:
Supports 19 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: FEATURE INFO {0002} V0
3: DEVICE FW VERSION {0003} V0
Firmware: Firmware U 88.02.B0017
Firmware: Bootloader BOT 14.00.B0007
Firmware: Hardware 72
Firmware: Other
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
4: DEVICE NAME {0005} V0
Name: Tunable FPS Gaming Mouse G502
Kind: mouse
5: LED CONTROL {1300} V0
6: unknown:18A1 {18A1} V0 internal, hidden
7: unknown:1E00 {1E00} V0 hidden
8: unknown:1E20 {1E20} V0
9: unknown:1EB0 {1EB0} V0 internal, hidden
10: ADJUSTABLE DPI {2201} V0
Sensitivity (DPI) : 800
11: ANGLE SNAPPING {2230} V0
12: SURFACE TUNING {2240} V0
13: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) : 1
14: ONBOARD PROFILES {8100} V0
Device Mode: Host
Onboard Profiles : Disable
15: MOUSE BUTTON SPY {8110} V0
16: unknown:1850 {1850} V0 internal, hidden
17: DFUCONTROL UNSIGNED {00C1} V0
18: unknown:1801 {1801} V0 internal, hidden
Battery: N/A, None.

View File

@ -0,0 +1,80 @@
solaar version 1.1.12rc1
1: G502 Gaming Mouse
Device path : /dev/hidraw20
WPID : 407F
Codename : G502
Kind : mouse
Protocol : HID++ 4.2
Report Rate : 1ms
Serial number: DDDAADBC
Model ID: 407FC08D0000
Unit ID: DDDAADBC
1: BOT 92.00.B0008
0: MPM 17.00.B0008
3:
The power switch is located on the base.
Supports 30 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BOT 92.00.B0008 AAEF21F1FA5F
Firmware: Firmware MPM 17.00.B0008 407F21F1FA5F
Firmware: Other
Unit ID: DDDAADBC Model ID: 407FC08D0000 Transport IDs: {'wpid': '407F', 'usbid': 'C08D'}
3: DEVICE NAME {0005} V0
Name: G502 LIGHTSPEED Wireless Gaming Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
Configuration: 11000000000000000000000000000000
6: BATTERY VOLTAGE {1001} V2
Battery: 90% 4166mV , discharging.
7: COLOR LED EFFECTS {8070} V4
LED Control (saved): Device
LED Control : Device
LEDs Primary (saved): !LEDEffectSetting {ID: 1, color: 16711680, intensity: 0, period: 100, ramp: 0, speed: 0}
LEDs Primary : None
LEDs Logo : None
8: LED CONTROL {1300} V0
9: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Onboard Profiles (saved): Profile 1
Onboard Profiles : Profile 1
10: MOUSE BUTTON SPY {8110} V0
11: REPORT RATE {8060} V0
Report Rate: 1ms
Report Rate (saved): 1ms
Report Rate : 1ms
12: ADJUSTABLE DPI {2201} V1
Sensitivity (DPI) (saved): 900
Sensitivity (DPI) : 900
13: DEVICE RESET {1802} V0 internal, hidden
14: unknown:1803 {1803} V0 internal, hidden
15: OOBSTATE {1805} V0 internal, hidden
16: CONFIG DEVICE PROPS {1806} V4 internal, hidden
17: unknown:1811 {1811} V0 internal, hidden
18: unknown:1830 {1830} V0 internal, hidden
19: unknown:1890 {1890} V4 internal, hidden
20: unknown:1891 {1891} V4 internal, hidden
21: unknown:18A1 {18A1} V0 internal, hidden
22: unknown:1801 {1801} V0 internal, hidden
23: unknown:18B1 {18B1} V0 internal, hidden
24: unknown:1DF3 {1DF3} V0 internal, hidden
25: unknown:1E00 {1E00} V0 hidden
26: unknown:1EB0 {1EB0} V0 internal, hidden
27: unknown:1863 {1863} V0 internal, hidden
28: unknown:1E22 {1E22} V0 internal, hidden
29: HIRES WHEEL {2121} V0
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): True
Scroll Wheel Resolution : True
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
Battery: 90% 4166mV , discharging.

View File

@ -0,0 +1,49 @@
solaar version 1.1.9
2: G502 Proteus Spectrum Optical Mouse
Device path : /dev/hidraw4
USB id : 046d:C332
Codename : G502 Proteus Spectrum
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: C33200000000
Unit ID: 31374706
Firmware: U1 03.02.B0012
Bootloader: BOT 14.00.B0007
Supports 20 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: COLOR LED EFFECTS {8070} V3
3: DEVICE FW VERSION {0003} V1
Firmware: Firmware U1 03.02.B0012 C332
Firmware: Bootloader BOT 14.00.B0007 AABF
Unit ID: 31374706 Model ID: C33200000000 Transport IDs: {'usbid': 'C332'}
4: DEVICE NAME {0005} V0
Name: Tunable RGB Gaming Mouse G502
Kind: mouse
5: LED CONTROL {1300} V0
6: unknown:18A1 {18A1} V0 internal, hidden
7: unknown:1E00 {1E00} V0 hidden
8: unknown:1E20 {1E20} V0
9: unknown:1EB0 {1EB0} V0 internal, hidden
10: ADJUSTABLE DPI {2201} V1
Sensitivity (DPI) (saved): 7000
Sensitivity (DPI) : 7000
11: ANGLE SNAPPING {2230} V0
12: SURFACE TUNING {2240} V0
13: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
14: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Onboard Profiles (saved): Enable
Onboard Profiles : Enable
15: MOUSE BUTTON SPY {8110} V0
16: unknown:1850 {1850} V0 internal, hidden
17: DFUCONTROL UNSIGNED {00C1} V0
18: unknown:1801 {1801} V0 internal, hidden
19: DEVICE RESET {1802} V0 internal, hidden
Battery status unavailable.

View File

@ -0,0 +1,44 @@
1: G502 SE Hero Gaming Mouse
Device path : /dev/hidraw7
USB id : 046d:C08B
Codename : G502 Hero
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: C08B00000000
Unit ID: 30324703
Firmware: U1 27.03.B0010
Bootloader: BOT 81.00.B0002
Supports 19 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: COLOR LED EFFECTS {8070}
3: DEVICE FW VERSION {0003}
Firmware: Firmware U1 27.03.B0010 C08B
Firmware: Bootloader BOT 81.00.B0002 AAE6
Unit ID: 30324703 Model ID: C08B00000000 Transport IDs: {'usbid': 'C08B'}
4: DEVICE NAME {0005}
Name: G502 HERO Gaming Mouse
Kind: mouse
5: LED CONTROL {1300}
6: unknown:18A1 {18A1} internal, hidden
7: unknown:1E00 {1E00} hidden
8: unknown:1E22 {1E22} internal, hidden
9: unknown:1EB0 {1EB0} internal, hidden
10: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 2400
Sensitivity (DPI) : 2400
11: REPORT RATE {8060}
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
12: ONBOARD PROFILES {8100}
Device Mode: Host
13: MOUSE BUTTON SPY {8110}
14: DFUCONTROL SIGNED {00C2}
15: unknown:1801 {1801} internal, hidden
16: DEVICE RESET {1802} internal, hidden
17: CONFIG DEVICE PROPS {1806} internal, hidden
18: unknown:18B1 {18B1} internal, hidden
Battery status unavailable.

View File

@ -0,0 +1,62 @@
Solaar version 1.1.7
1: G502 X
Device path : /dev/hidraw2
USB id : 046d:C099
Codename : G502
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: C09900000000
Unit ID: 42004C00
Bootloader: BL1 59.00.B0002
Firmware: U1 60.00.B0009
Supports 22 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 59.00.B0002 AB17
Firmware: Firmware U1 60.00.B0009 C099
Unit ID: 42004C00 Model ID: C09900000000 Transport IDs: {'usbid': 'C099'}
3: DEVICE NAME {0005} V0
Name: G502 X
Kind: mouse
4: RESET {0020} V0
5: DFUCONTROL SIGNED {00C2} V0
6: unknown:1801 {1801} V0 internal, hidden, unknown:000010
7: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
8: OOBSTATE {1805} V0 internal, hidden
9: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
10: unknown:1875 {1875} V0 internal, hidden, unknown:000010
11: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
12: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010
13: unknown:18C0 {18C0} V0 internal, hidden, unknown:000010
14: unknown:1E00 {1E00} V0 hidden
15: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
16: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
17: HIRES WHEEL {2121} V1
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): True
Scroll Wheel Resolution : True
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
18: ADJUSTABLE DPI {2201} V2
Sensitivity (DPI) (saved): 1600
Sensitivity (DPI) : 1600
19: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
20: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Onboard Profiles (saved): Enable
Onboard Profiles : Enable
21: MOUSE BUTTON SPY {8110} V0
Battery status unavailable.

View File

@ -0,0 +1,29 @@
solaar version 1.1.8
USB and Bluetooth Devices
1: G535 Wireless Gaming Headset
Device path : /dev/hidraw2
USB id : 046d:0AC4
Codename : G535
Kind : ?
Protocol : HID++ 4.2
Serial number:
Model ID: 000000000AC4
Unit ID: FFFFFFFF
Firmware: U1 90.00.B0200
Supports 6 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Firmware U1 90.00.B0200 0AC4
Unit ID: FFFFFFFF Model ID: 000000000AC4 Transport IDs: {'btid': '0000', 'btleid': '0000'}
3: DEVICE NAME {0005} V0
Name: G535 Wireless Gaming Headset
Kind: None
4: SIDETONE {8300} V0
Sidetone (saved): 0
Sidetone : 0
5: ADC MEASUREMENT {1F20} V0
Battery: 60% 3920mV , discharging.
Battery: 60% 3920mV , discharging.

View File

@ -0,0 +1,200 @@
This mouse does not use HID++
[root@gpiro device]# lsusb -vv -d 046d:c24a
Bus 003 Device 002: ID 046d:c24a Logitech, Inc. G600 Gaming Mouse
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 32
idVendor 0x046d Logitech, Inc.
idProduct 0xc24a G600 Gaming Mouse
bcdDevice 77.02
iManufacturer 1 Logitech
iProduct 2 Gaming Mouse G600
iSerial 3 385226BFEFD20017
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x003b
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 4 U77.02_B0017
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 67
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 135
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb3/3-2/3-2:1.1/0003:046D:C24A.0007/report_descriptor
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (Keyboard), ; Keyboard (06h, application collection)
Collection (Application),
Report ID (1),
Usage Page (Keyboard), ; Keyboard/keypad (07h)
Usage Minimum (KB Leftcontrol), ; Keyboard left control (E0h, dynamic value)
Usage Maximum (KB Right GUI), ; Keyboard right GUI (E7h, dynamic value)
Logical Minimum (0),
Logical Maximum (1),
Report Size (1),
Report Count (8),
Input (Variable),
Report Size (8),
Report Count (5),
Logical Minimum (0),
Logical Maximum (164),
Usage Minimum (None), ; No event (00h, selector)
Usage Maximum (KB ExSel), ; Keyboard ExSel (A4h, selector)
Input,
End Collection,
Usage Page (FF80h), ; FF80h, vendor-defined
Usage (80h),
Collection (Application),
Report ID (128),
Usage (80h),
Report Size (8),
Report Count (5),
Input (Variable),
Report ID (246),
Usage (F6h),
Report Size (8),
Report Count (7),
Input (Variable),
Report ID (240),
Usage (F0h),
Report Count (3),
Feature (Variable),
Report ID (241),
Usage (F1h),
Report Count (7),
Feature (Variable),
Report ID (242),
Usage (F2h),
Report Count (4),
Feature (Variable),
Report ID (243),
Usage (F3h),
Report Count (153),
Feature (Variable),
Report ID (244),
Usage (F4h),
Report Count (153),
Feature (Variable),
Report ID (245),
Usage (F5h),
Report Count (153),
Feature (Variable),
Report ID (246),
Usage (F6h),
Report Count (7),
Feature (Variable),
Report ID (247),
Usage (F7h),
Report Size (8),
Report Count (31),
Input (Variable),
End Collection
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb3/3-2/3-2:1.0/0003:046D:C24A.0006/report_descriptor
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (Mouse), ; Mouse (02h, application collection)
Collection (Application),
Usage (Pointer), ; Pointer (01h, physical collection)
Collection (Physical),
Usage Page (Button), ; Button (09h)
Usage Minimum (01h),
Usage Maximum (10h),
Logical Minimum (0),
Logical Maximum (1),
Report Size (1),
Report Count (16),
Input (Variable),
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (X), ; X (30h, dynamic value)
Usage (Y), ; Y (31h, dynamic value)
Logical Minimum (-32767),
Logical Maximum (32767),
Report Size (16),
Report Count (2),
Input (Variable, Relative),
Usage (Wheel), ; Wheel (38h, dynamic value)
Report Size (8),
Report Count (1),
Logical Minimum (-127),
Logical Maximum (127),
Input (Variable, Relative),
Usage Page (Consumer), ; Consumer (0Ch)
Usage (AC Pan), ; AC pan (0238h, linear control)
Report Count (1),
Input (Variable, Relative),
End Collection,
End Collection

View File

@ -0,0 +1,84 @@
solaar version 03cfa128
1: G604 Wireless Gaming Mouse
Device path : /dev/hidraw6
WPID : 4085
Codename : G604
Kind : mouse
Protocol : HID++ 4.2
Report Rate : 1ms
Serial number: XXXXXXXX
Model ID: B02440850000
Unit ID: XXXXXXXX
1: BL1 04.01.B0014
0: MPM 21.01.B0014
3:
The power switch is located on the base.
Supports 33 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: 1 BL1 04.01.B0014 0000B01B3067
Firmware: 0 MPM 21.01.B0014 4085B01B3067
Firmware: 3
Unit ID: XXXXXXXX Model ID: B02440850000 Transport IDs: {'btleid': 'B024', 'wpid': '4085'}
3: DEVICE NAME {0005} V0
Name: G604 Wireless Gaming Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
Configuration: 00000000000000000000000000000000
6: BATTERY STATUS {1000} V0
Battery: 30%, BatteryStatus.DISCHARGING, next level 15%.
7: COLOR LED EFFECTS {8070} V4
LED Control (saved): Device
LED Control : Device
LEDs Primary : None
8: LED CONTROL {1300} V0
9: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Onboard Profiles (saved): Profile 1
Onboard Profiles : Profile 1
10: MOUSE BUTTON SPY {8110} V0
11: REPORT RATE {8060} V0
Report Rate: 1ms
Report Rate (saved): 1ms
Report Rate : 1ms
12: ADJUSTABLE DPI {2201} V1
Sensitivity (DPI) (saved): 800
Sensitivity (DPI) : 800
13: DFUCONTROL SIGNED {00C2} V0
14: DEVICE RESET {1802} V0
15: unknown:1803 {0318} V0 internal, hidden
16: OOBSTATE {1805} V0
17: CONFIG DEVICE PROPS {1806} V4
18: unknown:1813 {1318} V0 internal, hidden
19: unknown:1830 {3018} V0 internal, hidden
20: unknown:1890 {9018} V0 internal, hidden
21: unknown:1891 {9118} V0 internal, hidden
22: unknown:1861 {6118} V0 internal, hidden
23: unknown:1801 {0118} V0 internal, hidden
24: unknown:18B1 {B118} V0 internal, hidden
25: unknown:1DF3 {F31D} V0 internal, hidden
26: unknown:1E00 {001E} V0 hidden
27: unknown:1EB0 {B01E} V0 internal, hidden
28: unknown:1E22 {221E} V0 internal, hidden
29: HIRES WHEEL {2121} V0
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): True
Scroll Wheel Resolution : True
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
30: unknown:18C0 {C018} V0 internal, hidden
31: CHANGE HOST {1814} V1
Change Host : 1:host1
32: HOSTS INFO {1815} V1
Host 0 (unpaired): host1
Host 1 (paired):
Battery: 30%, BatteryStatus.DISCHARGING, next level 15%.

View File

@ -0,0 +1,74 @@
Solaar version 1.1.3
1: G613 Wireless Mechanical Gaming Keyboard
Device path : None
WPID : 4065
Codename : G613
Kind : keyboard
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number: 0DBC5FF6
Model ID: B34F40650000
Unit ID: 9AAB3225
Bootloader: BOT 46.00.B0006
Firmware: MPK 05.02.B0021
Other:
Supports 32 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 46.00.B0006 00006E86A7BD
Firmware: Firmware MPK 05.02.B0021 40656E86A7BD
Firmware: Other
Unit ID: 9AAB3225 Model ID: B34F40650000 Transport IDs: {'btleid': 'B34F', 'wpid': '4065'}
3: DEVICE NAME {0005}
Name: G613 Wireless Mechanical Gaming Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: G613
7: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
8: CHANGE HOST {1814}
Change Host : 1:video2
9: HOSTS INFO {1815}
Host 0 (paired): video2
Host 1 (paired): CB73CG2
10: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
Key/Button Diversion : {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
11: REPORT HID USAGE {1BC0}
12: ENCRYPTION {4100}
13: KEYBOARD DISABLE BY USAGE {4522}
14: KEYBOARD LAYOUT 2 {4540}
15: GKEY {8010}
Divert G Keys (saved): True
Divert G Keys : False
16: REPORT RATE {8060}
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
17: DFUCONTROL SIGNED {00C2}
18: DEVICE RESET {1802} internal, hidden
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} internal, hidden
24: unknown:1890 {1890} internal, hidden
25: unknown:1891 {1891} internal, hidden
26: unknown:18A1 {18A1} internal, hidden
27: unknown:1DF3 {1DF3} internal, hidden
28: unknown:1E00 {1E00} hidden
29: unknown:1EB0 {1EB0} internal, hidden
30: unknown:1861 {1861} internal, hidden
31: unknown:18B1 {18B1} internal, hidden
Has 2 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,43 @@
1: G703 Wired/Wireless Gaming Mouse
Codename : G703
Kind : mouse
Wireless PID : 4070
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number: AFE674F7
Firmware: MPM 14.02.B0007
Bootloader: BOT 64.02.B0007
Other:
The power switch is located on the base.
Supports 29 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
3: DEVICE NAME {0005}
4: BATTERY VOLTAGE {1001}
5: unknown:1863 {1863} internal, hidden
6: unknown:18A1 {18A1} internal, hidden
7: unknown:1E00 {1E00} hidden
8: unknown:1E20 {1E20}
9: unknown:1EB0 {1EB0} internal, hidden
10: ADJUSTABLE DPI {2201}
Sensitivity (DPI): 1600
11: ANGLE SNAPPING {2230}
12: SURFACE TUNING {2240}
13: REPORT RATE {8060}
14: ONBOARD PROFILES {8100}
15: MOUSE BUTTON SPY {8110}
16: unknown:1850 {1850} internal, hidden
17: DFUCONTROL SIGNED {00C2}
18: unknown:1801 {1801} internal, hidden
19: DEVICE RESET {1802} internal, hidden
20: unknown:1803 {1803} internal, hidden
21: unknown:1890 {1890} internal, hidden
22: unknown:1811 {1811} internal, hidden
23: LATENCY MONITORING {8111}
24: COLOR LED EFFECTS {8070}
25: unknown:1809 {1809}
26: unknown:1830 {1830} internal, hidden
27: OOBSTATE {1805} internal, hidden
28: CONFIG DEVICE PROPS {1806} internal, hidden
Battery: 3807mV, discharging, average

View File

@ -0,0 +1,32 @@
Solaar version 1.1.5
2: G733 Gaming Headset
Device path : /dev/hidraw2
USB id : 046d:0AB5
Codename : G733 Headset
Kind : headset
Protocol : HID++ 4.2
Serial number:
Model ID: 0AB500000000
Unit ID: FFFFFFFF
Firmware: U1 37.00.B0131
Supports 9 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Firmware U1 37.00.B0131 0AB5
Unit ID: FFFFFFFF Model ID: 0AB500000000 Transport IDs: {'usbid': '0AB5'}
3: DEVICE NAME {0005} V0
Name: G733 Gaming Headset
Kind: None
4: COLOR LED EFFECTS {8070} V0
5: GKEY {8010} V0
Divert G Keys (saved): True
Divert G Keys : False
6: EQUALIZER {8310} V0
7: SIDETONE {8300} V0
Sidetone (saved): 65
Sidetone : 65
8: ADC MEASUREMENT {1F20} V0
Battery status unavailable.
Battery status unavailable.

View File

@ -0,0 +1,42 @@
solaar version 1.1.11
G733 Gaming Headset
Device path : /dev/hidraw3
USB id : 046d:0AFE
Codename : G733 Headset New
Kind : headset
Protocol : HID++ 4.2
Serial number:
Model ID: 0AFE00000000
Unit ID: FFFFFFFF
Firmware: U2 00.06
Supports 9 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Firmware U2 00.06 0AFE
Unit ID: FFFFFFFF Model ID: 0AFE00000000 Transport IDs: {'usbid': '0AFE'}
3: DEVICE NAME {0005} V0
Name: G733 Gaming Headset
Kind: None
4: COLOR LED EFFECTS {8070} V3
LED Control (saved): Device
LED Control : Device
LEDs Logo (saved): !LEDEffectSetting {ID: 0x0}
LEDs Logo : !LEDEffectSetting {ID: 0}
LEDs Primary (saved): !LEDEffectSetting {ID: 0x1, color: 0x0, ramp: 0x0}
LEDs Primary : !LEDEffectSetting {ID: 1, color: 0x10000, ramp: 0x0}
5: GKEY {8010} V0
Divert G and M Keys (saved): False
Divert G and M Keys : False
6: EQUALIZER {8310} V1
Equalizer (saved): {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
Equalizer : {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
7: SIDETONE {8300} V0
Sidetone (saved): 0
Sidetone : 0
8: ADC MEASUREMENT {1F20} V4
Battery: 60% 3867mV , discharging.
Power Management (saved): 0
Power Management : 0
Battery: 60% 3867mV , discharging.

View File

@ -0,0 +1,63 @@
solaar version 1.1.9
1: G815 Mechanical Keyboard
Device path : /dev/hidraw2
USB id : 046d:C33F
Codename : G815
Kind : keyboard
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: C33F00000000
Unit ID: 35304716
Bootloader: BOT 84.00.B0003
Firmware: U1 31.02.B0018
Other:
Other:
Other:
Supports 24 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BOT 84.00.B0003 AAEA
Firmware: Firmware U1 31.02.B0018 C33F
Firmware: Other
Firmware: Other
Firmware: Other
Unit ID: 35304716 Model ID: C33F00000000 Transport IDs: {'usbid': 'C33F'}
3: DEVICE NAME {0005} V0
Name: G815 RGB MECHANICAL GAMING KEYBOARD
Kind: keyboard
4: CONFIG CHANGE {0020} V0
5: DFUCONTROL SIGNED {00C2} V0
6: DFU {00D0} V0
7: REPORT HID USAGE {1BC0} V0
8: KEYBOARD DISABLE BY USAGE {4522} V0
9: KEYBOARD LAYOUT 2 {4540} V0
10: GKEY {8010} V0
Divert G Keys (saved): True
Divert G Keys : False
11: MKEYS {8020} V0
M-Key LEDs (saved): {M1:False, M2:False, M3:False}
M-Key LEDs : {M1:False, M2:False, M3:False}
12: MR {8030} V0
MR-Key LED (saved): False
MR-Key LED : False
13: BRIGHTNESS CONTROL {8040} V0
14: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
15: RGB EFFECTS {8071} V0
16: PER KEY LIGHTING V2 {8081} V2
17: ONBOARD PROFILES {8100} V0
Device Mode: Host
Onboard Profiles (saved): Disable
Onboard Profiles : Disable
18: unknown:1801 {1801} V0 internal, hidden
19: DEVICE RESET {1802} V0 internal, hidden
20: CONFIG DEVICE PROPS {1806} V5 internal, hidden
21: unknown:18B0 {18B0} V0 internal, hidden
22: unknown:1E00 {1E00} V0 hidden
23: unknown:1EB0 {1EB0} V0 internal, hidden
Battery status unavailable.

View File

@ -0,0 +1,105 @@
solaar version 1.1.8rc3+git1940-4e7b6b3
1: G903 LIGHTSPEED Wireless Gaming Mouse w/ HERO
Device path : /dev/hidraw13
WPID : 4087
Codename : G903 LS
Kind : mouse
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number: 3EF038B9
Model ID: 4087C0910000
Unit ID: 3EF038B9
Bootloader: BL1 06.01.B0013
Firmware: MPM 23.01.B0013
Other:
The power switch is located on the base.
Supports 31 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BL1 06.01.B0013 0000047072FE
Firmware: Firmware MPM 23.01.B0013 4087047072FE
Firmware: Other
Unit ID: 3EF038B9 Model ID: 4087C0910000 Transport IDs: {'wpid': '4087', 'usbid': 'C091'}
3: DEVICE NAME {0005} V0
Name: G903 LIGHTSPEED Wireless Gaming Mouse w/ HERO
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
6: BATTERY VOLTAGE {1001} V2
Battery: 90% 4079mV , discharging.
7: RGB EFFECTS {8071} V0
8: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Onboard Profiles (saved): Enable
Onboard Profiles : Enable
9: MOUSE BUTTON SPY {8110} V0
10: REPORT RATE {8060} V0
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
11: ADJUSTABLE DPI {2201} V1
Sensitivity (DPI) (saved): 6400
Sensitivity (DPI) : 6400
12: DFUCONTROL SIGNED {00C2} V0
13: DEVICE RESET {1802} V0 internal, hidden
14: unknown:1803 {1803} V0 internal, hidden
15: OOBSTATE {1805} V0 internal, hidden
16: CONFIG DEVICE PROPS {1806} V4 internal, hidden
17: unknown:1811 {1811} V0 internal, hidden
18: unknown:1830 {1830} V0 internal, hidden
19: unknown:1890 {1890} V4 internal, hidden
20: unknown:1891 {1891} V4 internal, hidden
21: unknown:18A1 {18A1} V0 internal, hidden
22: unknown:1801 {1801} V0 internal, hidden
23: unknown:18B1 {18B1} V0 internal, hidden
24: unknown:1DF3 {1DF3} V0 internal, hidden
25: unknown:1E00 {1E00} V0 hidden
26: unknown:1EB0 {1EB0} V0 internal, hidden
27: unknown:1863 {1863} V0 internal, hidden
28: unknown:1E22 {1E22} V0 internal, hidden
29: HIRES WHEEL {2121} V0
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
Low resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): False
Scroll Wheel Resolution : False
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
30: unknown:18C0 {18C0} V0 internal, hidden
Battery: 90% 4079mV , discharging.
7: Candy companion chip
Device path : /dev/hidraw14
Codename : Candy
Kind : touchpad
Protocol : HID++ 4.2
Serial number: 4E4E9946
Model ID: 405F00000000
Unit ID: 34304713
Firmware: CC 07.00.B0010
Bootloader: BOT 32.00.B0010
Supports 12 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Firmware CC 07.00.B0010 405F
Firmware: Bootloader BOT 32.00.B0010 405F
Unit ID: 34304713 Model ID: 405F00000000 Transport IDs: {'wpid': '405F'}
3: DEVICE NAME {0005} V0
Name: Candy companion chip
Kind: touchpad
4: unknown:18A1 {18A1} V0 internal, hidden
5: unknown:1E00 {1E00} V0 hidden
6: unknown:1EB0 {1EB0} V0 internal, hidden
7: DFUCONTROL SIGNED {00C2} V0
8: unknown:1801 {1801} V0 internal, hidden
9: DEVICE RESET {1802} V0 internal, hidden
10: unknown:1803 {1803} V0 internal, hidden
11: COLOR LED EFFECTS {8070} V4
Battery status unavailable.

View File

@ -0,0 +1,91 @@
Solaar version 1.1.4
1: G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard
Device path : None
WPID : 408E
Codename : G915 TKL
Kind : keyboard
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number: F085CB9D
Model ID: B35F408EC343
Unit ID: F085CB9D
Bootloader: BL1 12.00.B0017
Other:
Firmware: MPK 14.01.B0021
Other:
Other:
The power switch is located on the top left corner.
Supports 37 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 12.00.B0017 00008B79E978
Firmware: Other
Firmware: Firmware MPK 14.01.B0021 408E5E599E54
Firmware: Other
Firmware: Other
Unit ID: F085CB9D Model ID: B35F408EC343 Transport IDs: {'btleid': 'B35F', 'wpid': '408E', 'usbid': 'C343'}
3: DEVICE NAME {0005}
Name: G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: G915 TKL
7: BATTERY VOLTAGE {1001}
Battery: 3923mV, discharging, 70.
8: CHANGE HOST {1814}
Change Host : 1:archlinux
9: HOSTS INFO {1815}
Host 0 (paired): archlinux
Host 1 (paired):
10: RGB EFFECTS {8071}
11: PER KEY LIGHTING V2 {8081}
12: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
Key/Button Diversion : {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
13: REPORT HID USAGE {1BC0}
14: ENCRYPTION {4100}
15: KEYBOARD DISABLE BY USAGE {4522}
16: KEYBOARD LAYOUT 2 {4540}
17: GKEY {8010}
Divert G Keys (saved): False
Divert G Keys : False
18: MKEYS {8020}
M-Key LEDs (saved): {M1:False, M2:False, M3:False}
M-Key LEDs : {M1:False, M2:False, M3:False}
19: MR {8030}
MR-Key LED (saved): False
MR-Key LED : False
20: BRIGHTNESS CONTROL {8040}
21: ONBOARD PROFILES {8100}
Device Mode: On-Board
Onboard Profiles (saved): Enable
Onboard Profiles : Enable
22: REPORT RATE {8060}
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
23: DFUCONTROL SIGNED {00C2}
24: DFU {00D0}
25: DEVICE RESET {1802} internal, hidden
26: unknown:1803 {1803} internal, hidden
27: CONFIG DEVICE PROPS {1806} internal, hidden
28: unknown:1813 {1813} internal, hidden
29: OOBSTATE {1805} internal, hidden
30: unknown:1830 {1830} internal, hidden
31: unknown:1890 {1890} internal, hidden
32: unknown:1891 {1891} internal, hidden
33: unknown:18A1 {18A1} internal, hidden
34: unknown:1E00 {1E00} hidden
35: unknown:1EB0 {1EB0} internal, hidden
36: unknown:1861 {1861} internal, hidden
Has 2 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
Battery: 3923mV, discharging, 70.

View File

@ -0,0 +1,103 @@
solaar version 1.1.12rc1
1: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
Device path : None
WPID : 407C
Codename : G915 KEYBOARD
Kind : keyboard
Protocol : HID++ 4.2
Report Rate : 1ms
Serial number: A502B0E1
Model ID: B354407CC33E
Unit ID: A502B0E1
1: BOT 77.02.B0039
3:
0: MPK 09.03.B0041
3:
3:
The power switch is located on the top left corner.
Supports 38 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BOT 77.02.B0039 0000EC44D534
Firmware: Other
Firmware: Firmware MPK 09.03.B0041 407C3791543D
Firmware: Other
Firmware: Other
Unit ID: A502B0E1 Model ID: B354407CC33E Transport IDs: {'btleid': 'B354', 'wpid': '407C', 'usbid': 'C33E'}
3: DEVICE NAME {0005} V0
Name: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
Configuration: 11000000000000000000000000000000
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: G915 KEYBOARD<52>
7: BATTERY VOLTAGE {1001} V3
Battery: 80% 3998mV , discharging.
8: CHANGE HOST {1814} V1
Change Host : 1:Yon
9: HOSTS INFO {1815} V1
Host 0 (paired): Yon
Host 1 (paired):
10: RGB EFFECTS {8071} V0
RGB Control (saved): Device
RGB Control : Device
LEDs Logo (saved): !LEDEffectSetting {ID: 1, color: 11546720, intensity: 0, period: 100, ramp: 0, speed: 0}
LEDs Logo : HID++ error {'number': 1, 'request': 2799, 'error': 7, 'params': b'\x00'}
LEDs Primary (saved): !LEDEffectSetting {ID: 1, color: 16776960, intensity: 0, period: 100, ramp: 0, speed: 0}
LEDs Primary : HID++ error {'number': 1, 'request': 2796, 'error': 7, 'params': b'\x01'}
11: PER KEY LIGHTING V2 {8081} V2
Per-key Lighting (saved): {A:white, B:red, C:white, D:white, E:white, F:white, G:white, H:white, I:white, J:white, K:white, L:white, M:white, N:white, O:white, P:white, Q:white, R:white, S:white, T:white, U:white, V:white, W:white, X:white, Y:white, Z:white, 1:white, 2:white, 3:white, 4:white, 5:white, 6:white, 7:white, 8:white, 9:white, 0:white, ENTER:white, ESC:white, BACKSPACE:white, TAB:white, SPACE:white, -:white, =:white, [:white, \:white, KEY 46:white, ~:white, ;:white, ':white, `:white, ,:white, .:white, /:white, CAPS LOCK:white, F1:white, F2:white, F3:white, F4:white, F5:white, F6:white, F7:white, F8:white, F9:white, F10:white, F11:white, F12:white, PRINT:white, SCROLL LOCK:white, PASTE:white, INSERT:white, HOME:white, PAGE UP:white, DELETE:white, END:white, PAGE DOWN:white, RIGHT:white, LEFT:white, DOWN:white, UP:white, NUMLOCK:white, KEYPAD /:white, KEYPAD *:white, KEYPAD -:white, KEYPAD +:white, KEYPAD ENTER:white, KEYPAD 1:white, KEYPAD 2:white, KEYPAD 3:white, KEYPAD 4:white, KEYPAD 5:white, KEYPAD 6:white, KEYPAD 7:white, KEYPAD 8:white, KEYPAD 9:white, KEYPAD 0:white, KEYPAD .:white, KEY 97:white, COMPOSE:white, POWER:white, KEY 100:white, KEY 101:white, KEY 102:white, KEY 103:white, LEFT CTRL:white, LEFT SHIFT:white, LEFT ALT:white, LEFT WINDOWS:white, RIGHT CTRL:white, RIGHT SHIFT:white, RIGHT ALTGR:white, RIGHT WINDOWS:white, BRIGHTNESS:white, PAUSE:white, MUTE:white, NEXT:white, PREVIOUS:white, G1:white, G2:white, G3:white, G4:white, G5:white, LOGO:white}
Per-key Lighting : {A:white, B:white, C:white, D:white, E:white, F:white, G:white, H:white, I:white, J:white, K:white, L:white, M:white, N:white, O:white, P:white, Q:white, R:white, S:white, T:white, U:white, V:white, W:white, X:white, Y:white, Z:white, 1:white, 2:white, 3:white, 4:white, 5:white, 6:white, 7:white, 8:white, 9:white, 0:white, ENTER:white, ESC:white, BACKSPACE:white, TAB:white, SPACE:white, -:white, =:white, [:white, \:white, KEY 46:white, ~:white, ;:white, ':white, `:white, ,:white, .:white, /:white, CAPS LOCK:white, F1:white, F2:white, F3:white, F4:white, F5:white, F6:white, F7:white, F8:white, F9:white, F10:white, F11:white, F12:white, PRINT:white, SCROLL LOCK:white, PASTE:white, INSERT:white, HOME:white, PAGE UP:white, DELETE:white, END:white, PAGE DOWN:white, RIGHT:white, LEFT:white, DOWN:white, UP:white, NUMLOCK:white, KEYPAD /:white, KEYPAD *:white, KEYPAD -:white, KEYPAD +:white, KEYPAD ENTER:white, KEYPAD 1:white, KEYPAD 2:white, KEYPAD 3:white, KEYPAD 4:white, KEYPAD 5:white, KEYPAD 6:white, KEYPAD 7:white, KEYPAD 8:white, KEYPAD 9:white, KEYPAD 0:white, KEYPAD .:white, KEY 97:white, COMPOSE:white, POWER:white, KEY 100:white, KEY 101:white, KEY 102:white, KEY 103:white, LEFT CTRL:white, LEFT SHIFT:white, LEFT ALT:white, LEFT WINDOWS:white, RIGHT CTRL:white, RIGHT SHIFT:white, RIGHT ALTGR:white, RIGHT WINDOWS:white, BRIGHTNESS:white, PAUSE:white, MUTE:white, NEXT:white, PREVIOUS:white, G1:white, G2:white, G3:white, G4:white, G5:white, LOGO:white}
12: REPROG CONTROLS V4 {1B04} V4
Key/Button Diversion (saved): {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
Key/Button Diversion : {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
13: REPORT HID USAGE {1BC0} V1
14: ENCRYPTION {4100} V0
15: KEYBOARD DISABLE BY USAGE {4522} V0
16: KEYBOARD LAYOUT 2 {4540} V0
17: GKEY {8010} V0
Divert G and M Keys (saved): False
Divert G and M Keys : False
18: MKEYS {8020} V0
M-Key LEDs (saved): {M1:False, M2:False, M3:False}
M-Key LEDs : {M1:False, M2:False, M3:False}
19: MR {8030} V0
MR-Key LED (saved): False
MR-Key LED : False
20: BRIGHTNESS CONTROL {8040} V0
Brightness Control (saved): 12
Brightness Control : 12
21: ONBOARD PROFILES {8100} V0
Device Mode: Host
Onboard Profiles (saved): Disabled
Onboard Profiles : Disabled
22: REPORT RATE {8060} V0
Report Rate: 1ms
Report Rate (saved): 1ms
Report Rate : 1ms
23: DFUCONTROL SIGNED {00C2} V0
24: DFU {00D0} V3
25: DEVICE RESET {1802} V0 internal, hidden
26: unknown:1803 {1803} V0 internal, hidden
27: CONFIG DEVICE PROPS {1806} V8 internal, hidden
28: unknown:1813 {1813} V0 internal, hidden
29: OOBSTATE {1805} V0 internal, hidden
30: unknown:1830 {1830} V0 internal, hidden
31: unknown:1890 {1890} V5 internal, hidden
32: unknown:1891 {1891} V5 internal, hidden
33: unknown:18A1 {18A1} V0 internal, hidden
34: unknown:1E00 {1E00} V0 hidden
35: unknown:1EB0 {1EB0} V0 internal, hidden
36: unknown:1861 {1861} V0 internal, hidden
37: unknown:18B0 {18B0} V0 internal, hidden
Has 2 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
Battery: 80% 3998mV , discharging.

View File

@ -0,0 +1,91 @@
solaar version 1.1.10
USB and Bluetooth Devices
1: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
Device path : /dev/hidraw13
USB id : 046d:C33E
Codename : G915
Kind : ?
Protocol : HID++ 4.2
Polling rate : 1 ms (1000Hz)
Serial number:
Model ID: B354407CC33E
Unit ID: 8816D0DF
Bootloader: BOT 77.03.B0041
Other:
Firmware: MPK 09.04.B0042
Other:
Other:
Supports 37 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BOT 77.03.B0041 00003791543D
Firmware: Other
Firmware: Firmware MPK 09.04.B0042 C33E8A23A76B
Firmware: Other
Firmware: Other
Unit ID: 8816D0DF Model ID: B354407CC33E Transport IDs: {'btleid': 'B354', 'wpid': '407C', 'usbid': 'C33E'}
3: DEVICE NAME {0005} V0
Name: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
6: BATTERY VOLTAGE {1001} V3
Battery: 70% 3965mV , recharging.
7: CHANGE HOST {1814} V1
Changer d'hôte : 1:stagcrown
8: HOSTS INFO {1815} V1
Host 0 (paired): stagcrown
Host 1 (paired):
9: RGB EFFECTS {8071} V0
10: PER KEY LIGHTING V2 {8081} V2
11: REPROG CONTROLS V4 {1B04} V4
Interception des boutons/touches (saved): {Host Switch Channel 1:Interception, Host Switch Channel 2:Interception}
Interception des boutons/touches : {Host Switch Channel 1:Interception, Host Switch Channel 2:Interception}
12: REPORT HID USAGE {1BC0} V1
13: ENCRYPTION {4100} V0
14: KEYBOARD DISABLE BY USAGE {4522} V0
15: KEYBOARD LAYOUT 2 {4540} V0
16: GKEY {8010} V0
Définir les touches G (saved): True
Définir les touches G : False
17: MKEYS {8020} V0
LEDs de touche M (saved): {M1:False, M2:False, M3:False}
LEDs de touche M : {M1:False, M2:False, M3:False}
18: MR {8030} V0
LED de touche MR (saved): False
LED de touche MR : False
19: BRIGHTNESS CONTROL {8040} V0
20: ONBOARD PROFILES {8100} V0
Device Mode: On-Board
Profils embarqués (saved): Enable
Profils embarqués : Enable
21: REPORT RATE {8060} V0
Polling Rate (ms): 1
Taux de scrutation (ms) (saved): 1
Taux de scrutation (ms) : 1
22: DFUCONTROL SIGNED {00C2} V0
23: DFU {00D0} V3
24: DEVICE RESET {1802} V0 internal, hidden
25: unknown:1803 {1803} V0 internal, hidden
26: CONFIG DEVICE PROPS {1806} V8 internal, hidden
27: unknown:1813 {1813} V0 internal, hidden
28: OOBSTATE {1805} V0 internal, hidden
29: unknown:1830 {1830} V0 internal, hidden
30: unknown:1890 {1890} V9 internal, hidden
31: unknown:1891 {1891} V9 internal, hidden
32: unknown:18A1 {18A1} V0 internal, hidden
33: unknown:1E00 {1E00} V0 hidden
34: unknown:1EB0 {1EB0} V0 internal, hidden
35: unknown:1861 {1861} V0 internal, hidden
36: unknown:18B0 {18B0} V0 internal, hidden
Has 2 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: diverted
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: diverted
Battery: 70% 3965mV , recharging.

View File

@ -0,0 +1,87 @@
Solaar version 1.1.1
1: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
Device path : None
WPID : 407C
Codename : G915 KEYBOARD
Kind : keyboard
Protocol : HID++ 4.2
Polling rate : 8 ms (125Hz)
Serial number: 7FDC464D
Model ID: B354407CC33E
Unit ID: 7FDC464D
Bootloader: BOT 77.01.B0035
Other:
Firmware: MPK 09.01.B0035
Other:
Other:
The power switch is located on the top left corner.
Supports 39 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 77.01.B0035 0000691BEBFB
Firmware: Other
Firmware: Firmware MPK 09.01.B0035 407C691BEBFB
Firmware: Other
Firmware: Other
Unit ID: 7FDC464D Model ID: B354407CC33E Transport IDs: {'btleid': 'B354', 'wpid': '407C', 'usbid': 'C33E'}
3: DEVICE NAME {0005}
Name: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: G915 KEYBOARD
7: BATTERY VOLTAGE {1001}
Battery: 3914mV, discharging, 60.
8: CHANGE HOST {1814}
Change Host : 1:evoxs
9: HOSTS INFO {1815}
Host 0 (paired): evoxs
Host 1 (unpaired):
10: RGB EFFECTS {8071}
11: PER KEY LIGHTING V2 {8081}
12: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {'209': 0, '210': 0}
Key/Button Diversion : {'209': 0, '210': 0}
13: REPORT HID USAGE {1BC0}
14: ENCRYPTION {4100}
15: KEYBOARD DISABLE BY USAGE {4522}
16: KEYBOARD LAYOUT 2 {4540}
17: GKEY {8010}
Divert G Keys (saved): False
Divert G Keys : False
18: MKEYS {8020}
19: MR {8030}
20: BRIGHTNESS CONTROL {8040}
21: ONBOARD PROFILES {8100}
Device Mode: Host
22: REPORT RATE {8060}
Polling Rate (ms): 1
Polling Rate (ms) (saved): 1
Polling Rate (ms) : 1
23: DFUCONTROL SIGNED {00C2}
24: DFU {00D0}
25: DEVICE RESET {1802} internal, hidden
26: unknown:1803 {1803} internal, hidden
27: CONFIG DEVICE PROPS {1806} internal, hidden
28: unknown:1813 {1813} internal, hidden
29: OOBSTATE {1805} internal, hidden
30: unknown:1830 {1830} internal, hidden
31: unknown:1890 {1890} internal, hidden
32: unknown:1891 {1891} internal, hidden
33: unknown:18A1 {18A1} internal, hidden
34: unknown:1DF3 {1DF3} internal, hidden
35: unknown:1E00 {1E00} hidden
36: unknown:1EB0 {1EB0} internal, hidden
37: unknown:1861 {1861} internal, hidden
38: unknown:18B0 {18B0} internal, hidden
Has 2 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
Battery: 3914mV, discharging, 60.

View File

@ -0,0 +1,33 @@
Solaar version 1.1.7
1: G935 Gaming Headset
Device path : /dev/hidraw2
USB id : 046d:0A87
Codename : G935 Headset
Kind : headset
Protocol : HID++ 4.2
Serial number:
Model ID: 000000000A87
Unit ID: FFFFFFFF
Firmware: U1 29.00.B0012
Supports 9 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Firmware U1 29.00.B0012 0A87
Unit ID: FFFFFFFF Model ID: 000000000A87
Transport IDs: {'btid': '0000', 'btleid': '0000'}
3: DEVICE NAME {0005} V0
Name: G935 Gaming Headset
Kind: None
4: COLOR LED EFFECTS {8070} V0
5: GKEY {8010} V0
Divert G Keys (saved): False
Divert G Keys : False
6: EQUALIZER {8310} V0
7: SIDETONE {8300} V0
Sidetone (saved): 0
Sidetone : 0
8: ADC MEASUREMENT {1F20} V0
Battery status unavailable.
Battery status unavailable.

View File

@ -0,0 +1,13 @@
solaar version 1.1.8-29-g0ae14c7
1: Illuminated Keyboard
Device path : /dev/hidraw1
USB id : 046d:C318
Codename : Illuminated
Kind : keyboard
Protocol : HID++ 1.0
Serial number:
Firmware: 55.01.B0025
Notifications: (none).
Features: (none)
Battery status unavailable.

View File

@ -0,0 +1,133 @@
Solaar version 1.1.1
2: K850 Performance Wireless Keyboard
Device path : /dev/hidraw2
WPID : 4062
Codename : K850
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 20 ms (50Hz)
Serial number: E2A15F0B
Model ID: B34D40620000
Unit ID: 178D05AD
Bootloader: BOT 43.01.B0004
Firmware: MPK 04.03.B0015
Other:
The power switch is located on the edge of top right corner.
Supports 31 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 43.01.B0004 00002FD362F001
Firmware: Firmware MPK 04.03.B0015 40622FD362F001
Firmware: Other
Unit ID: 178D05AD Model ID: B34D40620000 Transport IDs: {'btleid': 'B34D', 'wpid': '4062'}
3: DEVICE NAME {0005}
Name: K850 Performance Wireless Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard K850
7: BATTERY STATUS {1000}
Battery: 90%, discharging, next level 50%.
8: CHANGE HOST {1814}
Change Host : 2:desktop
9: HOSTS INFO {1815}
Host 0 (paired): rpi
Host 1 (paired): desktop
Host 2 (paired): laptop
10: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {'1': 0, '10': 0, '189': 0, '191': 0, '192': 0, '193': 0, '194': 0, '2': 0, '209': 0, '210': 0, '211': 0, '212': 0, '213': 0, '214': 0, '221': 0, '3': 0, '4': 0, '5': 0, '6': 0}
Key/Button Diversion : {'209': 0, '210': 0, '211': 0, '213': 0, '214': 0, '189': 0, '212': 0, '6': 0, '4': 0, '5': 0, '3': 0, '2': 0, '1': 0, '194': 0, '221': 0, '191': 0, '10': 0, '193': 0, '192': 0}
11: PERSISTENT REMAPPABLE ACTION {1C00}
12: K375S FN INVERSION {40A3}
Swap Fx function (saved): False
Swap Fx function : False
13: ENCRYPTION {4100}
14: LOCK KEY STATE {4220}
15: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {'1': False, '16': False, '2': False, '4': False, '8': False}
Disable keys : {'1': False, '2': False, '4': False, '8': False, '16': False}
16: MULTIPLATFORM {4531}
Set OS (saved): 0
Set OS : Windows
17: DFUCONTROL SIGNED {00C2}
18: unknown:1803 {1803} internal, hidden
19: CONFIG DEVICE PROPS {1806} internal, hidden
20: OOBSTATE {1805} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: unknown:1830 {1830} internal, hidden
23: unknown:1861 {1861} internal, hidden
24: unknown:1890 {1890} internal, hidden
25: unknown:1891 {1891} internal, hidden
26: unknown:18A1 {18A1} internal, hidden
27: unknown:1DF3 {1DF3} internal, hidden
28: unknown:1E00 {1E00} hidden
29: unknown:1EB0 {1EB0} internal, hidden
30: unknown:18B0 {18B0} internal, hidden
Has 21 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
3: MultiPlatform Home/Mission Control, default: Multiplatform Home/Mission Control => Multiplatform Home/Mission Control
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
4: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad, default: Multiplatform Menu/Launchpad => Multiplatform Menu/Launchpad
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
5: Multiplatform Back , default: MultiPlatform Back => MultiPlatform Back
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, group mask:empty
reporting: default
6: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
reporting: default
7: Previous , default: Previous => Previous
is FN, FN sensitive, divertable, persistently divertable, pos:5, group:0, group mask:empty
reporting: default
8: Play/Pause , default: Play/Pause => Play/Pause
is FN, FN sensitive, divertable, persistently divertable, pos:6, group:0, group mask:empty
reporting: default
9: Next , default: Next => Next
is FN, FN sensitive, divertable, persistently divertable, pos:7, group:0, group mask:empty
reporting: default
10: Mute , default: Mute => Mute
is FN, FN sensitive, divertable, persistently divertable, pos:8, group:0, group mask:empty
reporting: default
11: Volume Down , default: Volume Down => Volume Down
is FN, FN sensitive, divertable, persistently divertable, pos:9, group:0, group mask:empty
reporting: default
12: Volume Up , default: Volume Up => Volume Up
is FN, FN sensitive, divertable, persistently divertable, pos:10, group:0, group mask:empty
reporting: default
13: Multiplatform Lock , default: WindowsLock => WindowsLock
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
reporting: default
14: Multi Platform Language Switch, default: Multiplatform Language Switch => Multiplatform Language Switch
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
reporting: default
15: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
is FN, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
is FN, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
17: Fn Up , default: unknown:0070 => unknown:0070
is FN, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
18: Fn Down , default: unknown:006F => unknown:006F
is FN, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
19: F Lock , default: Do Nothing One => Do Nothing One
is FN, pos:0, group:0, group mask:empty
reporting: default
20: unknown:0034 , default: Do Nothing One => Do Nothing One
nonstandard, pos:0, group:0, group mask:empty
reporting: default
Battery: 90%, discharging, next level 50%.

View File

@ -0,0 +1,133 @@
Solaar version 1.1.4
2: K850 Performance Wireless Keyboard
Device path : /dev/hidraw1
USB id : 046d:B34D
Codename : Keyboard K850
Kind : ?
Protocol : HID++ 4.5
Serial number:
Model ID: B34D40620000
Unit ID: 420F6F9D
Bootloader: BOT 43.01.B0004
Firmware: MPK 04.03.B0015
Other:
Supports 17 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 43.01.B0004 00002FD362F001
Firmware: Firmware MPK 04.03.B0015 B34D2FD362F001
Firmware: Other
Unit ID: 420F6F9D Model ID: B34D40620000 Transport IDs: {'btleid': 'B34D', 'wpid': '4062'}
3: DEVICE NAME {0005}
Name: K850 Performance Wireless Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard K850
7: BATTERY STATUS {1000}
Battery: 90%, discharging, next level 50%.
8: CHANGE HOST {1814}
Change Host : 3:shoaib-MacBookPro
9: HOSTS INFO {1815}
Host 0 (paired):
Host 1 (paired): Shoaibs MacBook Pro
Host 2 (paired): shoaib-MacBookPro
10: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Calculator:Regular, Multiplatform Back:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, MultiPlatform Search:Regular, MultiPlatform Home/Mission Control:Regular, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Regular, Multi Platform Language Switch:Regular}
Key/Button Diversion : {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Calculator:Regular, Multiplatform Back:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, MultiPlatform Search:Regular, MultiPlatform Home/Mission Control:Regular, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Regular, Multi Platform Language Switch:Regular}
11: PERSISTENT REMAPPABLE ACTION {1C00}
Persistent Key/Button Mapping : {Volume Up:Volume Up, Volume Down:Volume Down, Mute:Mute, Play/Pause:Play/Pause, Next:Scan Next Track, Previous:Scan Previous Track, Calculator:AL Calculator, Multiplatform Back:AC Back, Screen Capture/Print Screen:SYSRQ, Multiplatform Lock:Default, MultiPlatform Search:AC Search, MultiPlatform Home/Mission Control:AC Home, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:COMPOSE, Multi Platform Language Switch:Alt+Shift+No Output}
12: K375S FN INVERSION {40A3}
Swap Fx function (saved): False
Swap Fx function : False
13: ENCRYPTION {4100}
14: LOCK KEY STATE {4220}
15: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
16: MULTIPLATFORM {4531}
Set OS (saved): Windows
Set OS : Windows
Has 21 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
3: MultiPlatform Home/Mission Control, default: Multiplatform Home/Mission Control => Multiplatform Home/Mission Control
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
4: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad, default: Multiplatform Menu/Launchpad => Multiplatform Menu/Launchpad
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
5: Multiplatform Back , default: MultiPlatform Back => MultiPlatform Back
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, group mask:empty
reporting: default
6: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
reporting: default
7: Previous , default: Previous => Previous
is FN, FN sensitive, divertable, persistently divertable, pos:5, group:0, group mask:empty
reporting: default
8: Play/Pause , default: Play/Pause => Play/Pause
is FN, FN sensitive, divertable, persistently divertable, pos:6, group:0, group mask:empty
reporting: default
9: Next , default: Next => Next
is FN, FN sensitive, divertable, persistently divertable, pos:7, group:0, group mask:empty
reporting: default
10: Mute , default: Mute => Mute
is FN, FN sensitive, divertable, persistently divertable, pos:8, group:0, group mask:empty
reporting: default
11: Volume Down , default: Volume Down => Volume Down
is FN, FN sensitive, divertable, persistently divertable, pos:9, group:0, group mask:empty
reporting: default
12: Volume Up , default: Volume Up => Volume Up
is FN, FN sensitive, divertable, persistently divertable, pos:10, group:0, group mask:empty
reporting: default
13: Multiplatform Lock , default: WindowsLock => WindowsLock
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
reporting: default
14: Multi Platform Language Switch, default: Multiplatform Language Switch => Multiplatform Language Switch
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
reporting: default
15: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
is FN, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
is FN, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
17: Fn Up , default: unknown:0070 => unknown:0070
is FN, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
18: Fn Down , default: unknown:006F => unknown:006F
is FN, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
19: F Lock , default: Do Nothing One => Do Nothing One
is FN, pos:0, group:0, group mask:empty
reporting: default
20: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, pos:0, group:0, group mask:empty
reporting: default
Has 14 persistent remappable keys:
0: MultiPlatform Home/Mission Control => Consumer: AC Home
1: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad => Key: COMPOSE
2: Multiplatform Back => Consumer: AC Back
3: MultiPlatform Search => Consumer: AC Search
4: Previous => Consumer: Scan Previous Track
5: Play/Pause => Consumer: Play/Pause
6: Next => Consumer: Scan Next Track
7: Mute => Consumer: Mute
8: Volume Down => Consumer: Volume Down
9: Volume Up => Consumer: Volume Up
10: Multiplatform Lock => Unknown
11: Multi Platform Language Switch => Key: Alt+Shift+No Output
12: Screen Capture/Print Screen => Key: SYSRQ
13: Calculator => Consumer: AL Calculator
Battery: 90%, discharging, next level 50%.

View File

@ -0,0 +1,180 @@
Solaar version 1.1.7
1: Keyboard K600 TV
Device path : /dev/hidraw3
WPID : 4078
Codename : K600 TV
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: C4E873FC
Model ID: B35340780000
Unit ID: CA575869
Bootloader: BOT 73.00.B0015
Firmware: MPK 08.00.B0015
Other:
Other:
Supports 36 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BOT 73.00.B0015 00001E30DA07
Firmware: Firmware MPK 08.00.B0015 40781E30DA07
Firmware: Other
Firmware: Other
Unit ID: CA575869 Model ID: B35340780000 Transport IDs: {'btleid': 'B353', 'wpid': '4078'}
3: DEVICE NAME {0005} V0
Name: Keyboard K600 TV
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: Keyboard K600 T
7: BATTERY STATUS {1000} V1
Battery: 90%, discharging, next level 50%.
8: REPROG CONTROLS V4 {1B04} V4
Desvio de Tecla/Botón (saved): {Fn Left Click:Normal, Multiplatform App Switch:Normal, Multiplatform Back:Normal, Multiplatform Insert:Normal, Brightness Down:Normal, Brightness Up:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, MultiPlatform Search:Normal, MultiPlatform Home/Mission Control:Normal, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal}
Desvio de Tecla/Botón : {Fn Left Click:Normal, Multiplatform App Switch:Normal, Multiplatform Back:Normal, Multiplatform Insert:Normal, Brightness Down:Normal, Brightness Up:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, MultiPlatform Search:Normal, MultiPlatform Home/Mission Control:Normal, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal}
9: PERSISTENT REMAPPABLE ACTION {1C00} V0
Persistent Key/Button Mapping : {Multiplatform App Switch:No Output (only as default), Multiplatform Back:No Output (only as default), Multiplatform Insert:No Output (only as default), Brightness Down:No Output (only as default), Brightness Up:No Output (only as default), MultiPlatform Search:No Output (only as default), MultiPlatform Home/Mission Control:No Output (only as default), MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:No Output (only as default), Previous Fn:No Output (only as default), Play/Pause Fn:No Output (only as default), Next Fn:No Output (only as default), Mute Fn:No Output (only as default), Volume Down Fn:No Output (only as default), Volume Up Fn:No Output (only as default)}
10: SWAP BUTTON CANCEL {2005} V0
11: CHANGE HOST {1814} V1
Cambiar Host : 1:romanescu
12: HOSTS INFO {1815} V1
Host 0 (paired): romanescu
Host 1 (unpaired):
Host 2 (unpaired):
13: NEW FN INVERSION {40A2} V0
Fn-swap: enabled
Fn-swap default: enabled
Intercambiar función Fx (saved): True
Intercambiar función Fx : True
14: ENCRYPTION {4100} V0
15: LOCK KEY STATE {4220} V0
16: KEYBOARD DISABLE KEYS {4521} V0
Desactivar teclas (saved): {Caps Lock:False, Insert:False, Win:False}
Desactivar teclas : {Caps Lock:False, Insert:False, Win:False}
17: MULTIPLATFORM {4531} V1
Especificar SO (saved): Windows
Especificar SO : Windows
18: TOUCHPAD RAW XY {6100} V0
19: GESTURE 2 {6501} V0
Gestos (saved): {1: True, 2: True, 4: True, 5: True, 10: True, 30: True, 34: False, 42: True, 43: True, 45: False, 84: True}
Gestos : {1: True, 2: True, 4: True, 5: True, 30: True, 10: True, 45: False, 42: True, 43: True, 84: True, 34: False}
Gestures Diversion (saved): {1: False, 2: False, 4: False, 5: False, 10: False, 44: False, 84: False, 85: False, 100: False}
Gestures Diversion : {1: False, 2: False, 4: False, 5: False, 10: False, 44: False, 84: False, 85: False, 100: False}
Parámetros de gestos (saved): {4: {'scale': 256}}
Parámetros de gestos : {4: {'scale': 256}}
20: DFUCONTROL SIGNED {00C2} V0
21: DEVICE RESET {1802} V0 internal, hidden
22: unknown:1803 {1803} V0 internal, hidden
23: CONFIG DEVICE PROPS {1806} V5 internal, hidden
24: unknown:1813 {1813} V0 internal, hidden
25: OOBSTATE {1805} V0 internal, hidden
26: unknown:1830 {1830} V0 internal, hidden
27: unknown:1890 {1890} V2 internal, hidden
28: unknown:1891 {1891} V2 internal, hidden
29: unknown:18A1 {18A1} V0 internal, hidden
30: unknown:1DF3 {1DF3} V0 internal, hidden
31: unknown:1E00 {1E00} V0 hidden
32: unknown:1EB0 {1EB0} V0 internal, hidden
33: unknown:1861 {1861} V0 internal, hidden
34: unknown:18B0 {18B0} V0 internal, hidden
35: unknown:1F11 {1F11} V0 internal, hidden
Has 19 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
is FN, FN sensitive, divertable, persistently divertable, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
is FN, FN sensitive, divertable, persistently divertable, pos:2, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
is FN, FN sensitive, divertable, persistently divertable, pos:3, group:0, group mask:empty
reporting: default
3: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad, default: Multiplatform Menu/Launchpad => Multiplatform Menu/Launchpad
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
reporting: default
4: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, group mask:empty
reporting: default
5: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, group mask:empty
reporting: default
6: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, group mask:empty
reporting: default
7: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, group mask:empty
reporting: default
8: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, group mask:empty
reporting: default
9: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, group mask:empty
reporting: default
10: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
reporting: default
11: Volume Up Fn , default: Volume Up => Volume Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
reporting: default
12: Multiplatform Insert , default: Switch Language => Switch Language
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
13: MultiPlatform Home/Mission Control, default: Multiplatform Home/Mission Control => Multiplatform Home/Mission Control
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
14: Multiplatform Back , default: MultiPlatform Back => MultiPlatform Back
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
15: Multiplatform App Switch , default: MultiPlatform App Switch => MultiPlatform App Switch
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
16: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
reporting: default
17: Fn Left Click , default: ShowUI => ShowUI
divertable, pos:0, group:0, group mask:empty
reporting: default
18: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, pos:0, group:0, group mask:empty
reporting: default
Has 14 persistent remappable keys:
0: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad => None
1: Brightness Down => None
2: Brightness Up => None
3: Previous Fn => None
4: Play/Pause Fn => None
5: Next Fn => None
6: Mute Fn => None
7: Volume Down Fn => None
8: Volume Up Fn => None
9: Multiplatform Insert => None
10: MultiPlatform Home/Mission Control => None
11: Multiplatform Back => None
12: Multiplatform App Switch => None
13: MultiPlatform Search => None
Has 16 gesture(s), 1 param(s) and 5 spec(s):
Track1Finger Enabled(None): None Diverted:(None) None
TapGestures Enabled(None): None Diverted:(None) None
Tap1Finger Enabled( 0): True Diverted:( 0) False
Tap2Finger Enabled( 1): True Diverted:( 1) False
Click1Finger Enabled( 2): True Diverted:( 2) False
Click2Finger Enabled( 3): True Diverted:( 3) False
TapDrag1Finger Enabled( 4): True Diverted:(None) None
DoubleTap1Finger Enabled( 5): True Diverted:( 4) False
Scroll2FingerStateless Enabled(None): None Diverted:( 5) False
NaturalScrolling Enabled( 6): False Diverted:(None) None
Scroll2FingerHoriz Enabled( 7): True Diverted:(None) None
Scroll2FingerVert Enabled( 8): True Diverted:(None) None
Zoom2FingerStateless Enabled( 9): True Diverted:( 6) False
FnClickGestureSuppression Enabled( 10): False Diverted:(None) None
TwoFingersPresent Enabled(None): None Diverted:( 7) False
DeviceSpecificRawData Enabled(None): None Diverted:( 8) False
ScaleFactor Value ( 0): 256 [Default: 256]
period unit Spec ( 3): 2048
DVI field width Spec ( 1): 8
field widths Spec ( 2): 8
multiplier Spec ( 5): None
resolution Spec ( 4): 4
Battery: 90%, discharging, next level 50%.

View File

@ -0,0 +1,92 @@
solaar version 1.1.8
2: LIFT For Business
Device path : None
WPID : B033
Codename : LIFT B
Kind : mouse
Protocol : HID++ 4.5
Serial number: A67F904D
Model ID: B03300000000
Unit ID: A67F904D
Bootloader: BL1 56.01.B0010
Firmware: RBM 21.01.B0010
Other:
The power switch is located on the (unknown).
Supports 32 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 56.01.B0010 B033B0706FCD
Firmware: Firmware RBM 21.01.B0010 B033B0706FCD
Firmware: Other
Unit ID: A67F904D Model ID: B03300000000 Transport IDs: {'btleid': 'B033'}
3: DEVICE NAME {0005} V0
Name: LIFT For Business
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
6: CRYPTO ID {0021} V1
7: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: LIFT B
8: UNIFIED BATTERY {1004} V3
Battery: 100%, discharging.
9: REPROG CONTROLS V4 {1B04} V5
Key/Button Actions (saved): {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
Key/Button Actions : {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Regular}
10: CHANGE HOST {1814} V1
Change Host : 1:feathora
11: HOSTS INFO {1815} V2
Host 0 (paired): feathora
Host 1 (unpaired):
Host 2 (unpaired):
12: XY STATS {2250} V1
13: LOWRES WHEEL {2130} V0
Wheel Reports: HID
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
14: ADJUSTABLE DPI {2201} V2
Sensitivity (DPI) (saved): 1600
Sensitivity (DPI) : 1600
15: DFUCONTROL {00C3} V0
16: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
17: unknown:1803 {1803} V0 internal, hidden, unknown:000010
18: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
19: unknown:1816 {1816} V0 internal, hidden, unknown:000010
20: OOBSTATE {1805} V0 internal, hidden
21: unknown:1830 {1830} V0 internal, hidden, unknown:000010
22: unknown:1891 {1891} V7 internal, hidden, unknown:000008
23: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
24: unknown:1E00 {1E00} V0 hidden
25: unknown:1E02 {1E02} V0 internal, hidden
26: unknown:1E22 {1E22} V1 internal, hidden, unknown:000010
27: unknown:1602 {1602} V0
28: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
29: unknown:1861 {1861} V1 internal, hidden, unknown:000010
30: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010
31: unknown:920A {920A} V0 internal, hidden, unknown:000010
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:empty
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:empty
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
5: DPI Switch , default: DPI Switch => DPI Switch
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
reporting: default
Battery: 100%, discharging.

View File

@ -0,0 +1,94 @@
Solaar version 1.1.4
2: LIFT VERTICAL ERGONOMIC MOUSE
Device path : None
WPID : B031
Codename : LIFT
Kind : mouse
Protocol : HID++ 4.5
Serial number: E86E35D0
Model ID: B03100000000
Unit ID: E86E35D0
Bootloader: BL1 56.00.B0008
Firmware: RBM 21.00.B0008
Other:
The power switch is located on the (unknown).
Supports 31 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 56.00.B0008 B0317599BD37
Firmware: Firmware RBM 21.00.B0008 B0317599BD37
Firmware: Other
Unit ID: E86E35D0 Model ID: B03100000000 Transport IDs: {'btleid': 'B031'}
3: DEVICE NAME {0005}
Name: LIFT VERTICAL ERGONOMIC MOUSE
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: LIFT
8: UNIFIED BATTERY {1004}
9: REPROG CONTROLS V4 {1B04}
DPI Sliding Adjustment (saved): DPI Switch
DPI Sliding Adjustment : Off
Mouse Gestures (saved): Off
Mouse Gestures : Off
Key/Button Actions (saved): {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
Key/Button Actions : {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Diverted}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Diverted}
10: CHANGE HOST {1814}
Change Host : 1:gtronick
11: HOSTS INFO {1815}
Host 0 (paired): gtronick
Host 1 (paired): LAP0707
Host 2 (unpaired):
12: XY STATS {2250}
13: LOWRES WHEEL {2130}
Wheel Reports: HID
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
14: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 2400
Sensitivity (DPI) : 2400
15: DFUCONTROL {00C3}
16: DEVICE RESET {1802} internal, hidden, unknown:000010
17: unknown:1803 {1803} internal, hidden, unknown:000010
18: CONFIG DEVICE PROPS {1806} internal, hidden, unknown:000010
19: unknown:1816 {1816} internal, hidden, unknown:000010
20: OOBSTATE {1805} internal, hidden
21: unknown:1830 {1830} internal, hidden, unknown:000010
22: unknown:1891 {1891} internal, hidden, unknown:000008
23: unknown:18A1 {18A1} internal, hidden, unknown:000010
24: unknown:1E00 {1E00} hidden
25: unknown:1E02 {1E02} internal, hidden
26: unknown:1E22 {1E22} internal, hidden, unknown:000010
27: unknown:1602 {1602}
28: unknown:1EB0 {1EB0} internal, hidden, unknown:000010
29: unknown:1861 {1861} internal, hidden, unknown:000010
30: unknown:18B1 {18B1} internal, hidden, unknown:000010
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:empty
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:empty
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
5: DPI Switch , default: DPI Switch => DPI Switch
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: diverted, raw XY diverted
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
reporting: default
Battery: 100%, discharging.

View File

@ -0,0 +1,15 @@
Solaar version 1.1.4
Lightspeed Receiver
Device path : /dev/hidraw8
USB id : 046d:C539
Serial : C1469DD4
Firmware : 39.06.B0040
Bootloader : 02.09
Other : AA.BE
Has 1 paired device(s) out of a maximum of 1.
Notifications: wireless, software present (0x000900)
Device activity counters: (empty)
Seen paired with G502 Gaming Mouse 407F
Seen paired with G Pro Wireless Gaming Mouse 4079

View File

@ -0,0 +1,13 @@
Lightspeed Receiver
Device path : /dev/hidraw9
USB id : 046d:C53A
Serial : 5B2B9A98
Firmware : 40.03.B0014
Bootloader : 02.09
Other : AA.CA
Has 2 paired device(s) out of a maximum of 1.
Notifications: wireless, software present (0x000900)
Device activity counters: (empty)
Seen as part of a G PowerPlay Wireless Mouse Pad with a Candy companion chip paired a number 7
Seen paired with a G502 Gaming Mouse 407F.

View File

@ -0,0 +1,14 @@
Solaar version 1.1.3
Lightspeed Receiver
Device path : /dev/hidraw2
USB id : 046d:C53D
Serial : C271A999
Firmware : 43.01.B0009
Bootloader : 02.10
Other : AA.D2
Has 1 paired device(s) out of a maximum of 1.
Notifications: wireless, software present (0x000900)
Device activity counters: (empty)
Seen paired with G613 Wireless Mechanical Gaming Keyboard 4065

View File

@ -0,0 +1,10 @@
Lightspeed Receiver
Device path : /dev/hidraw3
USB id : 046d:C53F
Serial :
Firmware : 44.01.B0005
Bootloader : 00.02
Other : AA.DE
Has 0 paired device(s) out of a maximum of 1.
Notifications: wireless, software present (0x000900)
Device activity counters: (empty)

View File

@ -0,0 +1,14 @@
Solaar version 1.1.1
Lightspeed Receiver
Device path : /dev/hidraw4
USB id : 046d:C541
Serial : 18E8EC31
Firmware : 01.01.B0027
Bootloader : 01.27
Other : B9.BC
Has 1 paired device(s) out of a maximum of 1.
Notifications: wireless, software present (0x000900)
Device activity counters: (empty)
Seen paired with G915 WIRELESS RGB Mechanical Gaming Keyboard 407E

View File

@ -0,0 +1,14 @@
Solaar version 1.1.4
Lightspeed Receiver
Device path : /dev/hidraw5
USB id : 046d:C545
Serial : AD1567FD
Firmware : 02.01.B0006
Bootloader : 00.01
Other : 3D.88
Has 1 paired device(s) out of a maximum of 2.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=22
Seen paired with G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard 408E

View File

@ -0,0 +1,14 @@
Solaar version 1.1.3
Lightspeed Receiver
Device path : /dev/hidraw6
USB id : 046d:C547
Serial : 9B341CD1
Firmware : 04.02.B0009
Bootloader : 00.05
Other : F3.24
Has 1 paired device(s) out of a maximum of 2.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=171
Seen paired with the PRO X Wireless 4093

View File

@ -0,0 +1,137 @@
solaar version 1.1.8
Bolt Receiver
Device path : /dev/hidraw2
USB id : 046d:C548
Serial : 31454343464242444143334635323035
Has 1 paired device(s) out of a maximum of 6.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=28
1: Logi POP Keys
Device path : None
WPID : B365
Codename : Logi POP Keys
Kind : keyboard
Protocol : HID++ 4.5
Serial number: D1F99582
Model ID: B36500000000
Unit ID: D1F99582
Bootloader: BL1 44.01.B0008
Firmware: RBK 69.01.B0008
Other:
The power switch is located on the (unknown).
Supports 31 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 44.01.B0008 B3652BE8BAF4
Firmware: Firmware RBK 69.01.B0008 B3652BE8BAF4
Firmware: Other
Unit ID: D1F99582 Model ID: B36500000000 Transport IDs: {'btleid': 'B365'}
3: DEVICE NAME {0005} V0
Name: Logi POP Keys
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: Logi POP Keys
7: UNIFIED BATTERY {1004} V3
Battery: 100%, discharging.
8: REPROG CONTROLS V4 {1B04} V5
Key/Button Diversion (saved): {Show Desktop:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Emoji Smiley Heart Eyes:Regular, Emoji Crying Face:Regular, Emoji Smiley:Regular, Emoji Smilie With Tears:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Mute Microphone:Regular}
Key/Button Diversion : {Show Desktop:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Emoji Smiley Heart Eyes:Regular, Emoji Crying Face:Regular, Emoji Smiley:Regular, Emoji Smilie With Tears:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Mute Microphone:Regular}
9: CHANGE HOST {1814} V1
Change Host : 1:astra
10: HOSTS INFO {1815} V2
Host 0 (paired): astra
Host 1 (unpaired):
Host 2 (unpaired):
11: K375S FN INVERSION {40A3} V0
Swap Fx function (saved): False
Swap Fx function : False
12: LOCK KEY STATE {4220} V0
13: KEYBOARD DISABLE KEYS {4521} V0
Disable keys (saved): {Caps Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Insert:False, Win:False}
14: MULTIPLATFORM {4531} V1
Set OS (saved): Windows
Set OS : Windows
15: KEYBOARD LAYOUT 2 {4540} V0
16: DFUCONTROL {00C3} V0
17: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
18: unknown:1803 {1803} V0 internal, hidden, unknown:000010
19: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
20: unknown:1816 {1816} V0 internal, hidden, unknown:000010
21: OOBSTATE {1805} V0 internal, hidden
22: unknown:1830 {1830} V0 internal, hidden, unknown:000010
23: unknown:1891 {1891} V7 internal, hidden, unknown:000008
24: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
25: unknown:1E00 {1E00} V0 hidden
26: unknown:1E02 {1E02} V0 internal, hidden
27: unknown:1602 {1602} V0
28: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
29: unknown:1861 {1861} V1 internal, hidden, unknown:000010
30: unknown:18B0 {18B0} V0 internal, hidden, unknown:000010
Has 20 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
is FN, FN sensitive, analytics key events, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
is FN, FN sensitive, analytics key events, pos:2, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
is FN, FN sensitive, analytics key events, pos:3, group:0, group mask:empty
reporting: default
3: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
4: Snipping Tool , default: Snipping Tool => Snipping Tool
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
5: Mute Microphone , default: Mute Microphone => Mute Microphone
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
6: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
7: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
8: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
9: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
10: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
11: Volume Up Fn , default: Volume Up => Volume Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
12: Voice Dictation , default: Voice Dictation => Voice Dictation
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
13: Emoji Smiley Heart Eyes , default: Emoji Smiling Face With Heart Shaped Eyes => Emoji Smiling Face With Heart Shaped Eyes
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
14: Emoji Crying Face , default: Emoji Loudly Crying Face => Emoji Loudly Crying Face
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
15: Emoji Smiley , default: Emoji Smiley => Emoji Smiley
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Emoji Smilie With Tears , default: Emoji Smiley With Tears => Emoji Smiley With Tears
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 100%, discharging.

View File

@ -0,0 +1,50 @@
1: Logitech PRO X Wireless Gaming Headset
Device path : /dev/hidraw2
USB id : 046d:0ABA
Codename : PRO Headset
Kind : headset
Protocol : HID++ 4.2
Serial number:
Model ID: 000000000ABA
Unit ID: FFFFFFFF
Firmware: U1 12.01.B0203
Supports 6 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Firmware U1 12.01.B0203 0ABA
Unit ID: FFFFFFFF Model ID: 000000000ABA Transport IDs: {'btid': '0000', 'btleid': '0000'}
3: DEVICE NAME {0005}
Name: PRO X Wireless Gaming Headset
Kind: None
4: EQUALIZER {8310}
5: SIDETONE {8300}
6: ADC MEASUREMENT {1F20}
Battery status unavailable.
2: Logitech PRO X Wireless Gaming Headset
Device path : /dev/hidraw5
USB id : 046d:0ABA
Codename : PRO Headset
Kind : headset
Protocol : HID++ 4.2
Serial number:
Model ID: 000000000ABA
Unit ID: FFFFFFFF
Firmware: U1 12.01.B0203
Supports 6 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Firmware U1 12.01.B0203 0ABA
Unit ID: FFFFFFFF Model ID: 000000000ABA Transport IDs: {'btid': '0000', 'btleid': '0000'}
3: DEVICE NAME {0005}
Name: PRO X Wireless Gaming Headset
Kind: None
4: EQUALIZER {8310}
5: SIDETONE {8300}
Sidetone (saved): 0
Sidetone : 0
Battery status unavailable.

View File

@ -0,0 +1,113 @@
Solaar version 1.1.1
1: M720 Triathlon Multi-Device Mouse
Device path : /dev/hidraw1
WPID : 405E
Codename : M720 Triathlon
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 205F2717
Model ID: B015405E0000
Unit ID: C738473C
Bootloader: BOT 34.01.B0005
Firmware: MPM 04.10.B0013
Other:
The power switch is located on the base.
Supports 36 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 34.01.B0005 000000A96719
Firmware: Firmware MPM 04.10.B0013 405E00A96719
Firmware: Other
Unit ID: C738473C Model ID: B015405E0000 Transport IDs: {'btleid': 'B015', 'wpid': '405E'}
3: DEVICE NAME {0005}
Name: M720 Triathlon Multi-Device Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: M720 Triathlon
8: BATTERY STATUS {1000}
Battery: 90%, discharging, next level 50%.
9: CHANGE HOST {1814}
Change Host : 2:desktop
10: HOSTS INFO {1815}
Host 0 (paired): rpi
Host 1 (paired): desktop
Host 2 (paired): laptop
11: REPROG CONTROLS V4 {1B04}
Key/Button Actions (saved): {'208': 208, '80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '91': 91, '93': 93}
Key/Button Actions : {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '91': 91, '93': 93, '208': 208}
Key/Button Diversion (saved): {'208': 0, '82': 0, '83': 0, '86': 0, '91': 0, '93': 0}
Key/Button Diversion : {'82': 0, '83': 0, '86': 0, '91': 0, '93': 0, '208': 0}
12: PERSISTENT REMAPPABLE ACTION {1C00}
13: POINTER SPEED {2205}
Pointer Speed: 1.0
Sensitivity (Pointer Speed) (saved): 256
Sensitivity (Pointer Speed) : 256
14: VERTICAL SCROLLING {2100}
Roller type: 3G
Ratchet per turn: 24
Scroll lines: 0
15: DFUCONTROL UNSIGNED {00C1}
16: DFUCONTROL SIGNED {00C2}
17: DEVICE RESET {1802} internal, hidden
18: unknown:1803 {1803} internal, hidden
19: CONFIG DEVICE PROPS {1806} internal, hidden
20: OOBSTATE {1805} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: unknown:1830 {1830} internal, hidden
23: unknown:1861 {1861} internal, hidden
24: unknown:1890 {1890} internal, hidden
25: unknown:1891 {1891} internal, hidden
26: unknown:18A1 {18A1} internal, hidden
27: unknown:1DF3 {1DF3} internal, hidden
28: unknown:1E00 {1E00} hidden
29: unknown:1EB0 {1EB0} internal, hidden
30: unknown:18B1 {18B1} internal, hidden
31: unknown:1850 {1850} internal, hidden
32: unknown:1E22 {1E22}
33: unknown:1F03 {1F03} internal, hidden
34: unknown:18C0 {18C0} internal, hidden
35: HIRES WHEEL {2121}
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): True
Scroll Wheel Resolution : True
Has 9 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
7: MultiPlatform Gesture Button, default: Multiplatform Gesture Button => Multiplatform Gesture Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
8: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: 90%, discharging, next level 50%.

View File

@ -0,0 +1,108 @@
Solaar version 1.1.4
1: M720 Triathlon Multi-Device Mouse
Device path : /dev/hidraw0
USB id : 046d:B015
Codename : M720 Triathlon
Kind : mouse
Protocol : HID++ 4.5
Serial number:
Model ID: B015405E0000
Unit ID: E167BBCD
Bootloader: BOT 34.01.B0005
Firmware: MPM 04.10.B0013
Other:
Supports 30 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 34.01.B0005 000000A96719
Firmware: Firmware MPM 04.10.B0013 B01500A96719
Firmware: Other
Unit ID: E167BBCD Model ID: B015405E0000 Transport IDs: {'btleid': 'B015', 'wpid': '405E'}
3: DEVICE NAME {0005}
Name: M720 Triathlon Multi-Device Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: M720 Triathlon
8: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
9: CHANGE HOST {1814}
Change Host : 3:shoaib-MacBookPro
10: HOSTS INFO {1815}
Host 0 (paired):
Host 1 (paired): Shoaibs MacBook Pro
Host 2 (paired): shoaib-MacBookPro
11: REPROG CONTROLS V4 {1B04}
Mouse Gestures (saved): Off
Mouse Gestures : Off
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button, MultiPlatform Gesture Button:Multiplatform Gesture Button}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button, MultiPlatform Gesture Button:Multiplatform Gesture Button}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular, MultiPlatform Gesture Button:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular, MultiPlatform Gesture Button:Regular}
12: PERSISTENT REMAPPABLE ACTION {1C00}
Persistent Key/Button Mapping : {Left Button:Mouse Button Left, Right Button:Mouse Button Right, Middle Button:Mouse Button Middle, Back Button:Mouse Button Back, Forward Button:Mouse Button Forward, Left Tilt:Horizontal Scroll Left, Right Tilt:Horizontal Scroll Right, MultiPlatform Gesture Button:Alt+Cntrl+TAB}
13: POINTER SPEED {2205}
Pointer Speed: 1.0
Sensitivity (Pointer Speed) (saved): 256
Sensitivity (Pointer Speed) : 256
14: VERTICAL SCROLLING {2100}
Roller type: 3G
Ratchet per turn: 24
Scroll lines: 0
15: DFUCONTROL UNSIGNED {00C1}
16: DFUCONTROL SIGNED {00C2}
17: unknown:1803 {1803} internal, hidden
18: unknown:1813 {1813} internal, hidden
19: unknown:1830 {1830} internal, hidden
20: unknown:18A1 {18A1} internal, hidden
21: unknown:1DF3 {1DF3} internal, hidden
22: unknown:1E00 {1E00} hidden
23: unknown:1EB0 {1EB0} internal, hidden
24: unknown:1861 {1861} internal, hidden
25: unknown:18B1 {18B1} internal, hidden
26: unknown:1850 {1850} internal, hidden
27: unknown:1E22 {1E22}
28: unknown:1F03 {1F03} internal, hidden
29: unknown:18C0 {18C0} internal, hidden
Has 9 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
7: MultiPlatform Gesture Button, default: Multiplatform Gesture Button => Multiplatform Gesture Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
8: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Has 8 persistent remappable keys:
0: Left Button => Mouse Button: Mouse Button Left
1: Right Button => Mouse Button: Mouse Button Right
2: Middle Button => Mouse Button: Mouse Button Middle
3: Back Button => Mouse Button: Mouse Button Back
4: Forward Button => Mouse Button: Mouse Button Forward
5: Left Tilt => Horizontal Scroll: Horizontal Scroll Left
6: Right Tilt => Horizontal Scroll: Horizontal Scroll Right
7: MultiPlatform Gesture Button => Key: Alt+Cntrl+TAB
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,101 @@
Solaar version 1.1.4
1: MX Anywhere 3
Device path : /dev/hidraw3
WPID : 4090
Codename : MX Anywhere 3
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 8F4A05EA
Model ID: B02540900000
Unit ID: 8F4A05EA
Bootloader: BL1 13.01.B0015
Firmware: MPM 24.01.B0015
Other:
The power switch is located on the base.
Supports 32 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 13.01.B0015 0000AACD8D78
Firmware: Firmware MPM 24.01.B0015 4090AACD8D78
Firmware: Other
Unit ID: 8F4A05EA Model ID: B02540900000 Transport IDs: {'btleid': 'B025', 'wpid': '4090'}
3: DEVICE NAME {0005} V0
Name: MX Anywhere 3
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: CRYPTO ID {0021} V1
7: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX Anywhere 3
8: UNIFIED BATTERY {1004} V0
Battery: 65%, discharging.
9: REPROG CONTROLS V4 {1B04} V5
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Smart Shift:Smart Shift}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Smart Shift:Smart Shift}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Smart Shift:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Smart Shift:Regular}
10: CHANGE HOST {1814} V1
Change Host : 1:apollo
11: XY STATS {2250} V1
12: ADJUSTABLE DPI {2201} V1
Sensibilidade (DPI) (saved): 4000
Sensibilidade (DPI) : 4000
13: SMART SHIFT ENHANCED {2111} V0
Scroll Wheel Rachet (saved): 12
Scroll Wheel Rachet : 12
14: HIRES WHEEL {2121} V1
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
Low resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): False
Scroll Wheel Resolution : False
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
15: WHEEL STATS {2251} V0
16: DFUCONTROL SIGNED {00C2} V0
17: DEVICE RESET {1802} V0 internal, hidden
18: unknown:1803 {1803} V0 internal, hidden
19: CONFIG DEVICE PROPS {1806} V7 internal, hidden
20: unknown:1812 {1812} V0 internal, hidden
21: OOBSTATE {1805} V0 internal, hidden
22: unknown:1830 {1830} V0 internal, hidden
23: unknown:1890 {1890} V5 internal, hidden
24: unknown:1891 {1891} V5 internal, hidden
25: unknown:18A1 {18A1} V0 internal, hidden
26: unknown:1E00 {1E00} V0 hidden
27: unknown:1EB0 {1EB0} V0 internal, hidden
28: unknown:1861 {1861} V0 internal, hidden
29: unknown:9001 {9001} V0 internal, hidden
30: unknown:1E22 {1E22} V0 internal, hidden
31: unknown:9205 {9205} V0 internal, hidden
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
5: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: 65%, discharging.

View File

@ -0,0 +1,99 @@
Solaar version 1.1.4
1: MX Anywhere 3
Device path : /dev/hidraw1
USB id : 046d:B025
Codename : MX Anywhere 3
Kind : mouse
Protocol : HID++ 4.5
Serial number:
Model ID: B02540900000
Unit ID: 179ADDDA
Bootloader: BL1 13.00.B0014
Firmware: MPM 24.00.B0014
Other:
Supports 29 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 13.00.B0014 000095D7D19A
Firmware: Firmware MPM 24.00.B0014 B02595D7D19A
Firmware: Other
Unit ID: 179ADDDA Model ID: B02540900000 Transport IDs: {'btleid': 'B025', 'wpid': '4090'}
3: DEVICE NAME {0005}
Name: MX Anywhere 3
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Anywhere 3
8: UNIFIED BATTERY {1004}
Battery: N/A, None.
9: REPROG CONTROLS V4 {1B04}
DPI Sliding Adjustment (saved): Off
DPI Sliding Adjustment : Off
Mouse Gestures (saved): Off
Mouse Gestures : Off
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Smart Shift:Smart Shift}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Smart Shift:Smart Shift}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Smart Shift:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Smart Shift:Regular}
10: CHANGE HOST {1814}
Change Host : 1:zerocool
11: XY STATS {2250}
12: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 1000
Sensitivity (DPI) : 1000
13: SMART SHIFT ENHANCED {2111}
Scroll Wheel Rachet (saved): 12
Scroll Wheel Rachet : 12
14: HIRES WHEEL {2121}
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
Low resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): False
Scroll Wheel Resolution : False
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
15: WHEEL STATS {2251}
16: DFUCONTROL SIGNED {00C2}
17: DEVICE RESET {1802} internal, hidden
18: unknown:1803 {1803} internal, hidden
19: CONFIG DEVICE PROPS {1806} internal, hidden
20: unknown:1812 {1812} internal, hidden
21: OOBSTATE {1805} internal, hidden
22: unknown:1830 {1830} internal, hidden
23: unknown:18A1 {18A1} internal, hidden
24: unknown:1E00 {1E00} hidden
25: unknown:1EB0 {1EB0} internal, hidden
26: unknown:1861 {1861} internal, hidden
27: unknown:9300 {9300} internal, hidden
28: unknown:9001 {9001} internal, hidden
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
5: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: N/A, None.

View File

@ -0,0 +1,100 @@
solaar version 1.1.14
1: MX Anywhere 3 for Business
Device path : None
WPID : B02D
Codename : MX Anywhere 3
Kind : mouse
Protocol : HID++ 4.5
Serial number: 00000000
Model ID: B02D00000000
Unit ID: 00000000
1: BL1 36.01.B0011
0: RBM 15.01.B0011
3:
The power switch is located on the (unknown).
Supports 35 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: 1 BL1 36.01.B0011 B02D1EEFD8F8
Firmware: 0 RBM 15.01.B0011 B02D1EEFD8F8
Firmware: 3
Unit ID: 00000000 Model ID: B02D00000000 Transport IDs: {'btleid': 'B02D'}
3: DEVICE NAME {0005} V0
Name: MX Anywhere 3 for Business
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
Configuration: 11000000000000000000000000000000
6: CRYPTO ID {0021} V1
7: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX Anywhere 3B
8: UNIFIED BATTERY {1004} V3
Battery: 75%, 0.
9: REPROG CONTROLS V4 {1B04} V5
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Smart Shift:Smart Shift}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Smart Shift:Diverted}
10: CHANGE HOST {1814} V1
Change Host : 2:archlinux
11: HOSTS INFO {1815} V2
Host 0 (paired): archlinux
Host 1 (paired): archlinux
Host 2 (unpaired):
12: XY STATS {2250} V1
13: ADJUSTABLE DPI {2201} V2
Sensitivity (DPI) : 1000
14: SMART SHIFT ENHANCED {2111} V0
Scroll Wheel Ratcheted : Ratcheted
Scroll Wheel Ratchet Speed : 15
15: HIRES WHEEL {2121} V1
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
Low resolution mode
HID notification
Scroll Wheel Direction : False
Scroll Wheel Resolution : False
Scroll Wheel Diversion : False
16: WHEEL STATS {2251} V0
17: DFUCONTROL {00C3} V0
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
22: OOBSTATE {1805} V0 internal, hidden
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
24: unknown:1891 {1891} V7 internal, hidden, unknown:000008
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
26: unknown:1E00 {1E00} V0 hidden
27: unknown:1E02 {1E02} V0 internal, hidden
28: unknown:1602 {1602} V0
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
30: unknown:1861 {1861} V1 internal, hidden, unknown:000010
31: unknown:9300 {9300} V1 internal, hidden, unknown:000010
32: unknown:9001 {9001} V0 internal, hidden, unknown:000010
33: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
34: unknown:9205 {9205} V0 internal, hidden, unknown:000010
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
reporting: default
5: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: diverted, raw XY diverted
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: 75%, 0.

View File

@ -0,0 +1,115 @@
Solaar version 1.1.4
1: MX Ergo Multi-Device Trackball
Device path : /dev/hidraw4
WPID : 406F
Codename : MX Ergo
Kind : trackball
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 0E0F20E7
Model ID: B01D406F0000
Unit ID: 13AF9325
Bootloader: BOT 49.00.B0001
Firmware: MPM 06.03.B0022
Other:
The power switch is located on the base.
Supports 35 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 49.00.B0001 0000CDE885F3
Firmware: Firmware MPM 06.03.B0022 406FCDE885F3
Firmware: Other
Unit ID: 13AF9325 Model ID: B01D406F0000 Transport IDs: {'btleid': 'B01D', 'wpid': '406F'}
3: DEVICE NAME {0005}
Name: MX Ergo Multi-Device Trackball
Kind: trackball
4: WIRELESS DEVICE STATUS {1D4B}
5: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Ergo
6: RESET {0020}
7: CRYPTO ID {0021}
8: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
9: LED CONTROL {1300}
10: REPROG CONTROLS V4 {1B04}
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button, DPI Change:DPI Change}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button, DPI Change:DPI Change}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular, DPI Change:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular, DPI Change:Regular}
11: PERSISTENT REMAPPABLE ACTION {1C00}
Persistent Key/Button Mapping : {Left Button:Mouse Button Left, Right Button:Mouse Button Right, Middle Button:Mouse Button Middle, Back Button:Mouse Button Back, Forward Button:Mouse Button Forward, Left Tilt:Horizontal Scroll Left, Right Tilt:Horizontal Scroll Right, DPI Change:Mouse Button DPI}
12: POINTER AXIS ORIENTATION {2006}
13: POINTER SPEED {2205}
Pointer Speed: 1.046875
Sensitivity (Pointer Speed) (saved): 268
Sensitivity (Pointer Speed) : 268
Sensitivity Switching (saved): Off
Sensitivity Switching : Off
14: VERTICAL SCROLLING {2100}
Roller type: standard
Ratchet per turn: 18
Scroll lines: 0
15: DFUCONTROL SIGNED {00C2}
16: DEVICE RESET {1802} internal, hidden
17: unknown:1803 {1803} internal, hidden
18: CONFIG DEVICE PROPS {1806} internal, hidden
19: OOBSTATE {1805} internal, hidden
20: unknown:1813 {1813} internal, hidden
21: CHANGE HOST {1814}
Change Host : 1:razorback
22: HOSTS INFO {1815}
Host 0 (paired): razorback
Host 1 (unpaired):
Host 2 (unpaired):
23: unknown:1830 {1830} internal, hidden
24: unknown:1861 {1861} internal, hidden
25: unknown:1890 {1890} internal, hidden
26: unknown:1891 {1891} internal, hidden
27: unknown:18A1 {18A1} internal, hidden
28: unknown:1DF3 {1DF3} internal, hidden
29: unknown:1E00 {1E00} hidden
30: unknown:1EB0 {1EB0} internal, hidden
31: unknown:18B1 {18B1} internal, hidden
32: unknown:1850 {1850} internal, hidden
33: unknown:1F03 {1F03} internal, hidden
34: unknown:18C0 {18C0} internal, hidden
Has 9 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
5: DPI Change , default: DPI Change => DPI Change
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
6: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
7: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
8: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Has 8 persistent remappable keys:
0: Left Button => Mouse Button: Mouse Button Left
1: Right Button => Mouse Button: Mouse Button Right
2: Middle Button => Mouse Button: Mouse Button Middle
3: Back Button => Mouse Button: Mouse Button Back
4: Forward Button => Mouse Button: Mouse Button Forward
5: DPI Change => Mouse Button: Mouse Button DPI
6: Left Tilt => Horizontal Scroll: Horizontal Scroll Left
7: Right Tilt => Horizontal Scroll: Horizontal Scroll Right
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,144 @@
Solaar version 1.1.4
1: MX Keys Keyboard
Device path : /dev/hidraw1
WPID : 408A
Codename : MX Keys
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 20 ms (50Hz)
Serial number: F359F7AC
Model ID: B35B408A0000
Unit ID: F359F7AC
Bootloader: BL1 08.00.B0011
Firmware: MPK 12.00.B0011
Other:
The power switch is located on the edge of top right corner.
Supports 32 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BL1 08.00.B0011 00008169E8BB
Firmware: Firmware MPK 12.00.B0011 408A8169E8BB
Firmware: Other
Unit ID: F359F7AC Model ID: B35B408A0000 Transport IDs: {'btleid': 'B35B', 'wpid': '408A'}
3: DEVICE NAME {0005} V0
Name: MX Keys Wireless Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX Keys
7: BATTERY STATUS {1000} V1
Battery: 50%, discharging, next level 20%.
8: REPROG CONTROLS V4 {1B04} V4
Key/Button Diversion (saved): {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
Key/Button Diversion : {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
9: CHANGE HOST {1814} V1
10: HOSTS INFO {1815} V1
Host 0 (paired): brandy
Host 1 (paired): Pixel 2
Host 2 (paired): devlaptop002
11: BACKLIGHT2 {1982} V1
Backlight (saved): True
Backlight : True
12: K375S FN INVERSION {40A3} V0
Swap Fx function (saved): False
Swap Fx function : False
13: ENCRYPTION {4100} V0
14: LOCK KEY STATE {4220} V0
15: KEYBOARD DISABLE KEYS {4521} V0
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
16: MULTIPLATFORM {4531} V1
Set OS (saved): Windows
Set OS : Windows
17: DFUCONTROL SIGNED {00C2} V0
18: DEVICE RESET {1802} V0 internal, hidden
19: unknown:1803 {1803} V0 internal, hidden
20: CONFIG DEVICE PROPS {1806} V5 internal, hidden
21: unknown:1813 {1813} V0 internal, hidden
22: OOBSTATE {1805} V0 internal, hidden
23: unknown:1830 {1830} V0 internal, hidden
24: unknown:1890 {1890} V5 internal, hidden
25: unknown:1891 {1891} V5 internal, hidden
26: unknown:18A1 {18A1} V0 internal, hidden
27: unknown:1DF3 {1DF3} V0 internal, hidden
28: unknown:1E00 {1E00} V0 hidden
29: unknown:1EB0 {1EB0} V0 internal, hidden
30: unknown:1861 {1861} V0 internal, hidden
31: unknown:1A20 {1A20} V0 internal, hidden
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: default
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
5: Mission Control/Task View , default: Mission Control/Task View => Mission Control/Task View
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
7: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
8: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
9: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,140 @@
Solaar version 1.1.4rc1
1: MX Keys Keyboard
Device path : /dev/hidraw8
USB id : 046d:B35B
Codename : MX Keys
Kind : keyboard
Protocol : HID++ 4.5
Serial number:
Model ID: B35B408A0000
Unit ID: EC96CD5C
Bootloader: BL1 08.00.B0011
Firmware: MPK 12.01.B0013
Other:
Supports 29 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 08.00.B0011 00008169E8BB
Firmware: Firmware MPK 12.01.B0013 B35BFE037737
Firmware: Other
Unit ID: EC96CD5C Model ID: B35B408A0000 Transport IDs: {'btleid': 'B35B', 'wpid': '408A'}
3: DEVICE NAME {0005}
Name: MX Keys Wireless Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Keys
7: BATTERY STATUS {1000}
Battery: 100%, discharging, next level 50%.
8: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
Key/Button Diversion : {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
9: CHANGE HOST {1814}
Change Host : 1:ak
10: HOSTS INFO {1815}
Host 0 (paired): ak
Host 1 (unpaired):
Host 2 (unpaired):
11: BACKLIGHT2 {1982}
Backlight (saved): True
Backlight : True
12: K375S FN INVERSION {40A3}
Swap Fx function (saved): True
Swap Fx function : True
13: ENCRYPTION {4100}
14: LOCK KEY STATE {4220}
15: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
16: MULTIPLATFORM {4531}
Set OS (saved): MacOS
Set OS : MacOS
17: DFUCONTROL SIGNED {00C2}
18: DEVICE RESET {1802} internal, hidden
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} internal, hidden
24: unknown:18A1 {18A1} internal, hidden
25: unknown:1E00 {1E00} hidden
26: unknown:1EB0 {1EB0} internal, hidden
27: unknown:1861 {1861} internal, hidden
28: unknown:1A20 {1A20} internal, hidden
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: default
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
5: Mission Control/Task View , default: Mission Control/Task View => Mission Control/Task View
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
7: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
8: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
9: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 100%, discharging, next level 50%.

View File

@ -0,0 +1,117 @@
Solaar version 1.1.4
255: MX Keys Mini
Device path : /dev/hidraw6
USB id : 046d:B369
Codename : MX Keys Mini
Kind : ?
Protocol : HID++ 4.5
Serial number:
Model ID: B36900000000
Unit ID: 42BABA25
Bootloader: BL1 53.01.B0006
Firmware: RBK 73.01.B0006
Other:
Supports 31 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 53.01.B0006 B369FD70F4
Firmware: Firmware RBK 73.01.B0006 B369FD70F4
Firmware: Other
Unit ID: 42BABA25 Model ID: B36900000000 Transport IDs: {'btleid': 'B369'}
3: DEVICE NAME {0005}
Name: MX Keys Mini
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Keys Mini
7: UNIFIED BATTERY {1004}
8: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Backlight Down:Regular, Backlight Up:Regular, Play/Pause Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Delete:Regular, Mute Microphone:Regular}
Key/Button Diversion : {Backlight Down:Regular, Backlight Up:Regular, Play/Pause Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Delete:Regular, Mute Microphone:Regular}
9: CHANGE HOST {1814}
Change Host : 3:fedora
10: HOSTS INFO {1815}
Host 0 (paired): U308198
Host 1 (paired): DESKTOP-9C4GF7M
Host 2 (paired): fedora
11: BACKLIGHT2 {1982}
Backlight (saved): True
Backlight : True
12: K375S FN INVERSION {40A3}
Swap Fx function (saved): False
Swap Fx function : False
13: LOCK KEY STATE {4220}
14: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Insert:False, Win:False}
15: MULTIPLATFORM {4531}
Set OS (saved): Windows
Set OS : Windows
16: DFUCONTROL {00C3}
17: DEVICE RESET {1802} internal, hidden, unknown:000010
18: unknown:1803 {1803} internal, hidden, unknown:000010
19: CONFIG DEVICE PROPS {1806} internal, hidden, unknown:000010
20: unknown:1816 {1816} internal, hidden, unknown:000010
21: OOBSTATE {1805} internal, hidden
22: unknown:1830 {1830} internal, hidden, unknown:000010
23: unknown:1891 {1891} internal, hidden, unknown:000008
24: unknown:18A1 {18A1} internal, hidden, unknown:000010
25: unknown:1E00 {1E00} hidden
26: unknown:1E02 {1E02} internal, hidden
27: unknown:1602 {1602}
28: unknown:1EB0 {1EB0} internal, hidden, unknown:000010
29: unknown:1861 {1861} internal, hidden, unknown:000010
30: unknown:1A20 {1A20} internal, hidden, unknown:000010
Has 16 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
is FN, FN sensitive, analytics key events, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
is FN, FN sensitive, analytics key events, pos:2, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
is FN, FN sensitive, analytics key events, pos:3, group:0, group mask:empty
reporting: default
3: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
4: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
5: Voice Dictation , default: Voice Dictation => Voice Dictation
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
6: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
7: Snipping Tool , default: Snipping Tool => Snipping Tool
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
8: Mute Microphone , default: Mute Microphone => Mute Microphone
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
9: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
10: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
11: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
12: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, analytics key events, pos:13, group:0, group mask:empty
reporting: default
13: Delete , default: Delete => Delete
nonstandard, reprogrammable, divertable, analytics key events, pos:14, group:0, group mask:empty
reporting: default
14: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
15: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 40%, discharging.

View File

@ -0,0 +1,137 @@
solaar version 1.1.10
1: MX Keys S
Device path : None
WPID : B378
Codename : MX KEYS S
Kind : keyboard
Protocol : HID++ 4.5
Serial number: 48548420
Model ID: B37800000000
Unit ID: 48548420
Bootloader: BL1 88.00.B0013
Firmware: RBK 81.00.B0013
Other:
The power switch is located on the (unknown).
Supports 34 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 88.00.B0013 B37851DB9520
Firmware: Firmware RBK 81.00.B0013 B37851DB9520
Firmware: Other
Unit ID: 48548420 Model ID: B37800000000 Transport IDs: {'btleid': 'B378'}
3: DEVICE NAME {0005} V0
Name: MX Keys S
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX KEYS S
7: unknown:0011 {0011} V0
8: UNIFIED BATTERY {1004} V3
Battery: 75%, discharging.
9: REPROG CONTROLS V4 {1B04} V5
Key/Button Diversion (saved): {Calculator:Regular, Lock PC:Regular, Brightness Down:Regular, Brightness Up:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Diverted, Mute Microphone:Regular}
Key/Button Diversion : {Calculator:Regular, Lock PC:Regular, Brightness Down:Regular, Brightness Up:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Diverted, Mute Microphone:Regular}
10: CHANGE HOST {1814} V1
Change Host : 1:vs
11: HOSTS INFO {1815} V2
Host 0 (paired): vs
Host 1 (paired): DEV
Host 2 (unpaired):
12: BACKLIGHT2 {1982} V3
Backlight (saved): False
Backlight : True
13: K375S FN INVERSION {40A3} V0
Swap Fx function (saved): False
Swap Fx function : False
14: LOCK KEY STATE {4220} V0
15: KEYBOARD DISABLE KEYS {4521} V0
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
16: MULTIPLATFORM {4531} V1
Set OS (saved): Linux
Set OS : Linux
17: KEYBOARD LAYOUT 2 {4540} V0
18: DFUCONTROL {00C3} V0
19: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
20: unknown:1803 {1803} V0 internal, hidden, unknown:000010
21: unknown:1807 {1807} V0 internal, hidden, unknown:000010
22: unknown:1816 {1816} V0 internal, hidden, unknown:000010
23: OOBSTATE {1805} V0 internal, hidden
24: unknown:1830 {1830} V0 internal, hidden, unknown:000010
25: unknown:1891 {1891} V7 internal, hidden, unknown:000008
26: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
27: unknown:1E00 {1E00} V0 hidden
28: unknown:1E02 {1E02} V0 internal, hidden
29: unknown:1602 {1602} V0
30: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
31: unknown:1861 {1861} V1 internal, hidden, unknown:000010
32: unknown:1A20 {1A20} V1 internal, hidden, unknown:000010
33: unknown:18B0 {18B0} V1 internal, hidden, unknown:000010
Has 21 reprogrammable keys:
0: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: default
1: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
2: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
3: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
4: Voice Dictation , default: Voice Dictation => Voice Dictation
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
5: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
6: Mute Microphone , default: Mute Microphone => Mute Microphone
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
7: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
8: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
9: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
10: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
11: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
12: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
13: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
14: Snipping Tool , default: Snipping Tool => Snipping Tool
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: diverted
15: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: F Lock , default: Do Nothing One => Do Nothing One
analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 75%, discharging.

View File

@ -0,0 +1,144 @@
Solaar version 1.1.5
1: MX Keys for Business
Device path : None
WPID : B363
Codename : MX Keys B
Kind : keyboard
Protocol : HID++ 4.5
Serial number: C8457F05
Model ID: B36300000000
Unit ID: C8457F05
Bootloader: BL1 31.00.B0009
Firmware: RBK 68.00.B0009
Other:
The power switch is located on the (unknown).
Supports 32 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 31.00.B0009 B3636927CBB5
Firmware: Firmware RBK 68.00.B0009 B3636927CBB5
Firmware: Other
Unit ID: C8457F05 Model ID: B36300000000 Transport IDs: {'btleid': 'B363'}
3: DEVICE NAME {0005} V0
Name: MX Keys for Business
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX Keys B
7: UNIFIED BATTERY {1004} V2
Battery: 60%, discharging.
8: REPROG CONTROLS V4 {1B04} V5
Key/Button Diversion (saved): {Calculator:Regular, Lock PC:Regular, Brightness Down:Diverted, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Mute Microphone:Regular}
Key/Button Diversion : {Calculator:Regular, Lock PC:Regular, Brightness Down:Diverted, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Mute Microphone:Regular}
9: CHANGE HOST {1814} V1
Change Host : 1:Ryzen
10: HOSTS INFO {1815} V1
Host 0 (paired): Ryzen
Host 1 (paired): Ryzen
Host 2 (paired): Mi 10 Lite 5G
11: BACKLIGHT2 {1982} V1
Backlight (saved): True
Backlight : True
12: K375S FN INVERSION {40A3} V0
Swap Fx function (saved): False
Swap Fx function : False
13: LOCK KEY STATE {4220} V0
14: KEYBOARD DISABLE KEYS {4521} V0
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
15: MULTIPLATFORM {4531} V1
Set OS (saved): Windows
Set OS : Windows
16: DFUCONTROL {00C3} V0
17: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
18: unknown:1803 {1803} V0 internal, hidden, unknown:000010
19: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
20: unknown:1816 {1816} V0 internal, hidden, unknown:000010
21: OOBSTATE {1805} V0 internal, hidden
22: unknown:1830 {1830} V0 internal, hidden, unknown:000010
23: unknown:1891 {1891} V6 internal, hidden, unknown:000008
24: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
25: unknown:1E00 {1E00} V0 hidden
26: unknown:1E02 {1E02} V0 internal, hidden
27: unknown:1602 {1602} V0
28: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
29: unknown:1861 {1861} V0 internal, hidden, unknown:000010
30: unknown:1A20 {1A20} V0 internal, hidden, unknown:000010
31: unknown:18B0 {18B0} V0 internal, hidden, unknown:000010
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: diverted
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
5: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
6: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
7: Voice Dictation , default: Voice Dictation => Voice Dictation
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
8: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
9: Mute Microphone , default: Mute Microphone => Mute Microphone
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Snipping Tool , default: Snipping Tool => Snipping Tool
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 60%, discharging.

View File

@ -0,0 +1,109 @@
Solaar version 1.1.4
1: MX Master 3 Wireless Mouse
Device path : /dev/hidraw2
WPID : 4082
Codename : MX Master 3
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 198E3EB8
Model ID: B02340820000
Unit ID: 198E3EB8
Bootloader: BOT 95.01.B0015
Firmware: MPM 19.01.B0015
Other:
The power switch is located on the base.
Supports 34 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 95.01.B0015 00006A9CA89D
Firmware: Firmware MPM 19.01.B0015 40826A9CA89D
Firmware: Other
Unit ID: 198E3EB8 Model ID: B02340820000 Transport IDs: {'btleid': 'B023', 'wpid': '4082'}
3: DEVICE NAME {0005}
Name: Wireless Mouse MX Master 3
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Master 3
8: BATTERY STATUS {1000}
Battery: 100%, discharging, next level 50%.
9: REPROG CONTROLS V4 {1B04}
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Mouse Gestures, Smart Shift:Sliding DPI}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
10: CHANGE HOST {1814}
Change Host : 1:idefix
11: XY STATS {2250}
12: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 1600
Sensitivity (DPI) : 1600
13: SMART SHIFT {2110}
Scroll Wheel Rachet (saved): 32
Scroll Wheel Rachet : 32
14: HIRES WHEEL {2121}
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): True
Scroll Wheel Resolution : True
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
15: THUMB WHEEL {2150}
Thumb Wheel Direction (saved): False
Thumb Wheel Direction : False
Thumb Wheel Diversion (saved): False
Thumb Wheel Diversion : False
16: WHEEL STATS {2251}
17: DFUCONTROL SIGNED {00C2}
18: DEVICE RESET {1802} internal, hidden
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} internal, hidden
24: unknown:1890 {1890} internal, hidden
25: unknown:1891 {1891} internal, hidden
26: unknown:18A1 {18A1} internal, hidden
27: unknown:1DF3 {1DF3} internal, hidden
28: unknown:1E00 {1E00} hidden
29: unknown:1EB0 {1EB0} internal, hidden
30: unknown:1861 {1861} internal, hidden
31: unknown:9001 {9001} internal, hidden
32: unknown:9203 {9203} internal, hidden
33: unknown:9205 {9205} internal, hidden
Has 8 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
5: Mouse Gesture Button , default: Gesture Button Navigation => Gesture Button Navigation
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
6: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
reporting: default
Battery: 100%, discharging, next level 50%.

View File

@ -0,0 +1,103 @@
Solaar version 1.1.4
1: MX Master 3 Wireless Mouse
Device path : /dev/hidraw5
USB id : 046d:B023
Codename : MX Master 3
Kind : mouse
Protocol : HID++ 4.5
Serial number:
Model ID: B02340820000
Unit ID: 198E3EB8
Bootloader: BOT 95.01.B0015
Firmware: MPM 19.01.B0015
Other:
Supports 30 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 95.01.B0015 00006A9CA89D
Firmware: Firmware MPM 19.01.B0015 B0236A9CA89D
Firmware: Other
Unit ID: 198E3EB8 Model ID: B02340820000 Transport IDs: {'btleid': 'B023', 'wpid': '4082'}
3: DEVICE NAME {0005}
Name: Wireless Mouse MX Master 3
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Master 3
8: BATTERY STATUS {1000}
Battery: 100%, discharging, next level 50%.
9: REPROG CONTROLS V4 {1B04}
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Mouse Gestures, Smart Shift:Sliding DPI}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
10: CHANGE HOST {1814}
Change Host : 2:idefix
11: XY STATS {2250}
12: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 1600
Sensitivity (DPI) : 1600
13: SMART SHIFT {2110}
Scroll Wheel Rachet (saved): 32
Scroll Wheel Rachet : 32
14: HIRES WHEEL {2121}
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): True
Scroll Wheel Resolution : True
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
15: THUMB WHEEL {2150}
Thumb Wheel Direction (saved): False
Thumb Wheel Direction : False
Thumb Wheel Diversion (saved): False
Thumb Wheel Diversion : False
16: WHEEL STATS {2251}
17: DFUCONTROL SIGNED {00C2}
18: DEVICE RESET {1802} internal, hidden
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} internal, hidden
24: unknown:18A1 {18A1} internal, hidden
25: unknown:1E00 {1E00} hidden
26: unknown:1EB0 {1EB0} internal, hidden
27: unknown:1861 {1861} internal, hidden
28: unknown:9300 {9300} internal, hidden
29: unknown:9001 {9001} internal, hidden
Has 8 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
5: Mouse Gesture Button , default: Gesture Button Navigation => Gesture Button Navigation
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
6: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
reporting: default
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
reporting: default
Battery: 100%, discharging, next level 50%.

View File

@ -0,0 +1,111 @@
solaar version 1.1.8
1: MX Master 3 for Business
Device path : None
WPID : B028
Codename : MX Master 3 B
Kind : mouse
Protocol : HID++ 4.5
Serial number: 18F3413B
Model ID: B02800000000
Unit ID: 18F3413B
Bootloader: BL1 41.00.B0009
Firmware: RBM 14.00.B0009
Other:
The power switch is located on the (unknown).
Supports 35 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 41.00.B0009 B0281D13EFC0
Firmware: Firmware RBM 14.00.B0009 B0281D13EFC0
Firmware: Other
Unit ID: 18F3413B Model ID: B02800000000 Transport IDs: {'btleid': 'B028'}
3: DEVICE NAME {0005} V0
Name: MX Master 3 for Business
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
6: CRYPTO ID {0021} V1
7: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX Master 3 B
8: UNIFIED BATTERY {1004} V2
Battery: 95%, discharging.
9: REPROG CONTROLS V4 {1B04} V5
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
10: CHANGE HOST {1814} V1
Change Host : 1:bork
11: XY STATS {2250} V1
12: ADJUSTABLE DPI {2201} V2
Sensitivity (DPI) (saved): 1000
Sensitivity (DPI) : 1000
13: SMART SHIFT {2110} V0
Scroll Wheel Ratcheted (saved): Freespinning
Scroll Wheel Ratcheted : Freespinning
Scroll Wheel Ratchet Speed (saved): 1
Scroll Wheel Ratchet Speed : 1
14: HIRES WHEEL {2121} V1
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Free wheel mode
Low resolution mode
HID notification
Scroll Wheel Direction (saved): False
Scroll Wheel Direction : False
Scroll Wheel Resolution (saved): False
Scroll Wheel Resolution : False
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
15: THUMB WHEEL {2150} V0
Thumb Wheel Direction (saved): False
Thumb Wheel Direction : False
Thumb Wheel Diversion (saved): False
Thumb Wheel Diversion : False
16: WHEEL STATS {2251} V0
17: DFUCONTROL {00C3} V0
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
22: OOBSTATE {1805} V0 internal, hidden
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
24: unknown:1891 {1891} V6 internal, hidden, unknown:000008
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
26: unknown:1E00 {1E00} V0 hidden
27: unknown:1E02 {1E02} V0 internal, hidden
28: unknown:1602 {1602} V0
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
30: unknown:1861 {1861} V0 internal, hidden, unknown:000010
31: unknown:9300 {9300} V0 internal, hidden, unknown:000010
32: unknown:9001 {9001} V0 internal, hidden, unknown:000010
33: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
34: unknown:9205 {9205} V0 internal, hidden, unknown:000010
Has 8 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
5: Mouse Gesture Button , default: Gesture Button Navigation => Gesture Button Navigation
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
6: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: 95%, discharging.

View File

@ -0,0 +1,115 @@
Solaar version 1.1.7
2: MX Master 3S
Device path : None
WPID : B034
Codename : MX Master 3S
Kind : mouse
Protocol : HID++ 4.5
Serial number: CD2A6BB7
Model ID: B03400000000
Unit ID: CD2A6BB7
Bootloader: BL1 69.00.B0003
Firmware: RBM 22.00.B0003
Other:
The power switch is located on the (unknown).
Supports 36 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
Firmware: Other
Unit ID: CD2A6BB7 Model ID: B03400000000 Transport IDs: {'btleid': 'B034'}
3: DEVICE NAME {0005} V0
Name: MX Master 3S
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: CRYPTO ID {0021} V1
7: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX Master 3S
8: UNIFIED BATTERY {1004} V3
Battery: 25%, discharging.
9: REPROG CONTROLS V4 {1B04} V5
Acciones de Tecla/Botón (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Acciones de Tecla/Botón : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
Desvio de Tecla/Botón (saved): {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Mouse Gesture Button:Normal, Smart Shift:Normal}
Desvio de Tecla/Botón : {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Mouse Gesture Button:Normal, Smart Shift:Normal}
10: CHANGE HOST {1814} V1
Cambiar Host : 1:romanescu
11: HOSTS INFO {1815} V2
Host 0 (paired): romanescu
Host 1 (unpaired):
Host 2 (unpaired):
12: XY STATS {2250} V1
13: ADJUSTABLE DPI {2201} V2
Sensibilidad (PPP) (saved): 1000
Sensibilidad (PPP) : 1000
14: SMART SHIFT {2110} V0
Scroll Wheel Ratcheted (saved): Freespinning
Scroll Wheel Ratcheted : Freespinning
Scroll Wheel Ratchet Speed (saved): 0
Scroll Wheel Ratchet Speed : 1
15: HIRES WHEEL {2121} V1
Multiplier: 15
Has invert: Normal wheel motion
Has ratchet switch: Free wheel mode
Low resolution mode
HID notification
Dirección Rueda Desplazamiento (saved): False
Dirección Rueda Desplazamiento : False
Resolución Rueda Desplazamiento (saved): False
Resolución Rueda Desplazamiento : False
Desvio Rueda Desplazamiento (saved): False
Desvio Rueda Desplazamiento : False
16: THUMB WHEEL {2150} V0
Dirección de la Rueda del Pulgar (saved): False
Dirección de la Rueda del Pulgar : False
Desvío de la Rueda del Pulgar (saved): False
Desvío de la Rueda del Pulgar : False
17: WHEEL STATS {2251} V0
18: DFUCONTROL {00C3} V0
19: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
20: unknown:1803 {1803} V0 internal, hidden, unknown:000010
21: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
22: unknown:1816 {1816} V0 internal, hidden, unknown:000010
23: OOBSTATE {1805} V0 internal, hidden
24: unknown:1830 {1830} V0 internal, hidden, unknown:000010
25: unknown:1891 {1891} V7 internal, hidden, unknown:000008
26: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
27: unknown:1E00 {1E00} V0 hidden
28: unknown:1E02 {1E02} V0 internal, hidden
29: unknown:1602 {1602} V0
30: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
31: unknown:1861 {1861} V1 internal, hidden, unknown:000010
32: unknown:9300 {9300} V0 internal, hidden, unknown:000010
33: unknown:9001 {9001} V0 internal, hidden, unknown:000010
34: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
35: unknown:9205 {9205} V0 internal, hidden, unknown:000010
Has 8 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
5: Mouse Gesture Button , default: Gesture Button Navigation => Gesture Button Navigation
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
6: Smart Shift , default: Smart Shift => Smart Shift
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Battery: 25%, discharging.

View File

@ -0,0 +1,196 @@
Solaar version 1.1.7
1: MX Mechanical
Device path : None
WPID : B366
Codename : MX MCHNCL
Kind : keyboard
Protocol : HID++ 4.5
Serial number: 2DF63C09
Model ID: B36600000000
Unit ID: 2DF63C09
Bootloader: BL1 45.00.B0016
Firmware: RBK 71.00.B0016
Other:
The power switch is located on the (unknown).
Supports 33 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 45.00.B0016 B3662CB9B8E2
Firmware: Firmware RBK 71.00.B0016 B3662CB9B8E2
Firmware: Other
Unit ID: 2DF63C09 Model ID: B36600000000 Transport IDs: {'btleid': 'B366'}
3: DEVICE NAME {0005} V0
Name: MX Mechanical
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX MCHNCL
7: UNIFIED BATTERY {1004} V3
Battery: 50%, discharging.
8: REPROG CONTROLS V4 {1B04} V5
Desvio de Tecla/Botón (saved): {Calculator:Normal, Show Desktop:Normal, Lock PC:Normal, Brightness Down:Normal, Brightness Up:Normal, MultiPlatform Search:Normal, Backlight Down:Normal, Backlight Up:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal, Voice Dictation:Normal, Open Emoji Panel:Normal, Snipping Tool:Normal, Grave Accent:Normal, Tab Key:Normal, Caps Lock:Normal, Left Shift:Normal, Left Control:Normal, Left Option/Start:Normal, Left Command/Alt:Normal, Right Command/Alt:Normal, Right Option/Start:Normal, Right Control:Normal, Right Shift:Normal, Insert:Normal, Delete:Normal, Home:Normal, End:Normal, Page Up:Normal, Page Down:Normal, Mute Microphone:Normal, Backslash:Normal}
Desvio de Tecla/Botón : {Calculator:Normal, Show Desktop:Normal, Lock PC:Normal, Brightness Down:Normal, Brightness Up:Normal, MultiPlatform Search:Normal, Backlight Down:Normal, Backlight Up:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal, Voice Dictation:Normal, Open Emoji Panel:Normal, Snipping Tool:Normal, Grave Accent:Normal, Tab Key:Normal, Caps Lock:Normal, Left Shift:Normal, Left Control:Normal, Left Option/Start:Normal, Left Command/Alt:Normal, Right Command/Alt:Normal, Right Option/Start:Normal, Right Control:Normal, Right Shift:Normal, Insert:Normal, Delete:Normal, Home:Normal, End:Normal, Page Up:Normal, Page Down:Normal, Mute Microphone:Normal, Backslash:Normal}
9: CHANGE HOST {1814} V1
Cambiar Host : 1:romanescu
10: HOSTS INFO {1815} V2
Host 0 (paired): romanescu
Host 1 (unpaired):
Host 2 (unpaired):
11: BACKLIGHT2 {1982} V2
Retroiluminación (saved): True
Retroiluminación : True
12: K375S FN INVERSION {40A3} V0
Intercambiar función Fx (saved): True
Intercambiar función Fx : True
13: LOCK KEY STATE {4220} V0
14: KEYBOARD DISABLE KEYS {4521} V0
Desactivar teclas (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Desactivar teclas : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
15: MULTIPLATFORM {4531} V1
Especificar SO (saved): Windows
Especificar SO : Windows
16: KEYBOARD LAYOUT 2 {4540} V0
17: DFUCONTROL {00C3} V0
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
22: OOBSTATE {1805} V0 internal, hidden
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
24: unknown:1891 {1891} V7 internal, hidden, unknown:000008
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
26: unknown:1E00 {1E00} V0 hidden
27: unknown:1E02 {1E02} V0 internal, hidden
28: unknown:1602 {1602} V0
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
30: unknown:1861 {1861} V1 internal, hidden, unknown:000010
31: unknown:1A20 {1A20} V0 internal, hidden, unknown:000010
32: unknown:18B0 {18B0} V0 internal, hidden, unknown:000010
Has 41 reprogrammable keys:
0: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: default
1: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
2: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
3: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
4: Voice Dictation , default: Voice Dictation => Voice Dictation
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
5: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
6: Snipping Tool , default: Snipping Tool => Snipping Tool
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
7: Mute Microphone , default: Mute Microphone => Mute Microphone
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
8: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
9: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
10: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
11: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
12: Volume Down Fn , default: Volume Down => Volume Down
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
13: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
14: Grave Accent , default: Grave Accent => Grave Accent
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
15: Tab Key , default: Standard Tab Key => Standard Tab Key
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Caps Lock , default: Caps Lock => Caps Lock
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Left Shift , default: Left Shift => Left Shift
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: Left Control , default: Left Control => Left Control
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Left Option/Start , default: Left Option/Start => Left Option/Start
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Command/Alt , default: Left Command/Alt => Left Command/Alt
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Command/Alt , default: Right Command/Alt => Right Command/Alt
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: Right Option/Start , default: Right Option/Start => Right Option/Start
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: Right Control , default: Right Control => Right Control
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
24: Right Shift , default: Right Shift => Right Shift
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
25: Backslash , default: Backslash => Backslash
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
26: Insert , default: Insert => Insert
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
27: Delete , default: Delete => Delete
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
28: Home , default: Home => Home
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
29: End , default: End => End
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
30: Page Up , default: Page Up => Page Up
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
31: Page Down , default: Page Down => Page Down
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
32: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
33: Show Desktop , default: Show Desktop => Show Desktop
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
34: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
35: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
36: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
37: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
38: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
39: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
40: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 50%, discharging.

View File

@ -0,0 +1,168 @@
Solaar version 1.1.4
1: MX Mechanical Mini
Device path : None
WPID : B367
Codename : MX MCHNCL M
Kind : keyboard
Protocol : HID++ 4.5
Serial number: D4E94F5C
Model ID: B36700000000
Unit ID: D4E94F5C
Bootloader: BL1 50.00.B0010
Firmware: RBK 72.00.B0010
Other:
The power switch is located on the (unknown).
Supports 32 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V4
Firmware: Bootloader BL1 50.00.B0010 B367A91B7FC8
Firmware: Firmware RBK 72.00.B0010 B367A91B7FC8
Firmware: Other
Unit ID: D4E94F5C Model ID: B36700000000 Transport IDs: {'btleid': 'B367'}
3: DEVICE NAME {0005} V0
Name: MX Mechanical Mini
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: MX MCHNCL M
7: UNIFIED BATTERY {1004} V3
Battery: 90%, discharging.
8: REPROG CONTROLS V4 {1B04} V5
Key/Button Diversion (saved): {MultiPlatform Search:Regular, Backlight Down:Regular, Backlight Up:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Grave Accent:Regular, Tab Key:Regular, Caps Lock:Regular, Left Shift:Regular, Left Control:Regular, Left Option/Start:Regular, Left Command/Alt:Regular, Right Command/Alt:Regular, Right Shift:Regular, Delete:Regular, Home:Regular, End:Regular, Page Up:Regular, Page Down:Regular, Mute Microphone:Regular, Backslash:Regular, unknown:013C:Regular, unknown:0141:Regular}
Key/Button Diversion : {MultiPlatform Search:Regular, Backlight Down:Regular, Backlight Up:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Grave Accent:Regular, Tab Key:Regular, Caps Lock:Regular, Left Shift:Regular, Left Control:Regular, Left Option/Start:Regular, Left Command/Alt:Regular, Right Command/Alt:Regular, Right Shift:Regular, Delete:Regular, Home:Regular, End:Regular, Page Up:Regular, Page Down:Regular, Mute Microphone:Regular, Backslash:Regular, unknown:013C:Regular, unknown:0141:Regular}
9: CHANGE HOST {1814} V1
Change Host : 1:chimera
10: HOSTS INFO {1815} V2
Host 0 (paired): chimera
Host 1 (paired): Logitech Bolt receiver
Host 2 (unpaired):
11: BACKLIGHT2 {1982} V2
Backlight (saved): True
Backlight : True
12: K375S FN INVERSION {40A3} V0
Swap Fx function (saved): True
Swap Fx function : True
13: LOCK KEY STATE {4220} V0
14: KEYBOARD DISABLE KEYS {4521} V0
Disable keys (saved): {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False}
15: MULTIPLATFORM {4531} V1
Set OS (saved): Windows
Set OS : Windows
16: KEYBOARD LAYOUT 2 {4540} V0
17: DFUCONTROL {00C3} V0
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
22: OOBSTATE {1805} V0 internal, hidden
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
24: unknown:1891 {1891} V7 internal, hidden, unknown:000008
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
26: unknown:1E00 {1E00} V0 hidden
27: unknown:1E02 {1E02} V0 internal, hidden
28: unknown:1602 {1602} V0
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
30: unknown:1861 {1861} V1 internal, hidden, unknown:000010
31: unknown:1A20 {1A20} V0 internal, hidden, unknown:000010
Has 32 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
is FN, FN sensitive, analytics key events, pos:1, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
is FN, FN sensitive, analytics key events, pos:2, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
is FN, FN sensitive, analytics key events, pos:3, group:0, group mask:empty
reporting: default
3: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
4: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
5: Voice Dictation , default: Voice Dictation => Voice Dictation
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
6: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
7: Snipping Tool , default: Snipping Tool => Snipping Tool
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
8: Mute Microphone , default: Mute Microphone => Mute Microphone
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
9: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
10: unknown:0141 , default: unknown:00FD => unknown:00FD
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
11: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
12: Volume Down Fn , default: Volume Down => Volume Down
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
13: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
14: Grave Accent , default: Grave Accent => Grave Accent
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
15: Tab Key , default: Standard Tab Key => Standard Tab Key
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Caps Lock , default: Caps Lock => Caps Lock
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Left Shift , default: Left Shift => Left Shift
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: Left Control , default: Left Control => Left Control
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Left Option/Start , default: Left Option/Start => Left Option/Start
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Command/Alt , default: Left Command/Alt => Left Command/Alt
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Command/Alt , default: Right Command/Alt => Right Command/Alt
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: unknown:013C , default: Right Option/Start/2 => Right Option/Start/2
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: Right Shift , default: Right Shift => Right Shift
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
24: Backslash , default: Backslash => Backslash
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
25: Delete , default: Delete => Delete
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
26: Home , default: Home => Home
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
27: End , default: End => End
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
28: Page Up , default: Page Up => Page Up
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
29: Page Down , default: Page Down => Page Down
reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
30: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
31: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 90%, discharging.

View File

@ -0,0 +1,108 @@
Solaar version 1.1.3
2: MX Vertical Wireless Mouse
Device path : /dev/hidraw5
WPID : 407B
Codename : MX Vertical
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 87A544C3
Model ID: B020407BC08A
Unit ID: 7818C6EE
Bootloader: BOT 78.00.B0009
Firmware: MPM 16.00.B0009
Other:
Supports 34 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 78.00.B0009 AAE28E5B17FF
Firmware: Firmware MPM 16.00.B0009 407B8E5B17FF
Firmware: Other
Unit ID: 7818C6EE Model ID: B020407BC08A Transport IDs: {'btleid': 'B020', 'wpid': '407B', 'usbid': 'C08A'}
3: DEVICE NAME {0005}
Name: MX Vertical Advanced Ergonomic Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Vertical
8: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
9: unknown:1002 {1002}
10: REPROG CONTROLS V4 {1B04}
DPI Sliding Adjustment (saved): Off
DPI Sliding Adjustment : Off
Mouse Gestures (saved): Off
Mouse Gestures : Off
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Diverted, Forward Button:Diverted, ?, DPI Switch:Diverted}
Key/Button Diversion : {Middle Button:Regular, Back Button:Diverted, Forward Button:Diverted, DPI Switch:Diverted}
11: PERSISTENT REMAPPABLE ACTION {1C00}
12: CHANGE HOST {1814}
Change Host : 1:pudim
13: HOSTS INFO {1815}
Host 0 (unpaired): pudim
Host 1 (unpaired):
Host 2 (unpaired):
14: XY STATS {2250}
15: unknown:18B1 {18B1} internal, hidden
16: VERTICAL SCROLLING {2100}
Roller type: standard
Ratchet per turn: 24
Scroll lines: 0
17: LOWRES WHEEL {2130}
Wheel Reports: HID
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
18: ADJUSTABLE DPI {2201}
Sensitivity (DPI) (saved): 2800
Sensitivity (DPI) : 2800
19: DEVICE RESET {1802} internal, hidden
20: unknown:1803 {1803} internal, hidden
21: CONFIG DEVICE PROPS {1806} internal, hidden
22: unknown:1813 {1813} internal, hidden
23: OOBSTATE {1805} internal, hidden
24: unknown:1830 {1830} internal, hidden
25: unknown:1890 {1890} internal, hidden
26: unknown:1891 {1891} internal, hidden
27: unknown:18A1 {18A1} internal, hidden
28: unknown:1DF3 {1DF3} internal, hidden
29: unknown:1E00 {1E00} hidden
30: unknown:1EB0 {1EB0} internal, hidden
31: unknown:1E22 {1E22} internal, hidden
32: unknown:1861 {1861} internal, hidden
33: unknown:18C0 {18C0} internal, hidden
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: diverted
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: diverted
5: DPI Switch , default: DPI Switch => DPI Switch
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: diverted
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Has 6 persistent remappable keys:
0: Left Button => Mouse Button: Mouse Button Left
1: Right Button => Mouse Button: Mouse Button Right
2: Middle Button => Mouse Button: Mouse Button Middle
3: Back Button => Mouse Button: Mouse Button Back
4: Forward Button => Mouse Button: Mouse Button Forward
5: unknown:0000 => None
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,92 @@
Solaar version 1.1.3
1: MX Vertical Wireless Mouse
Device path : /dev/hidraw0
USB id : 046d:B020
Codename : MX Vertical
Kind : mouse
Protocol : HID++ 4.5
Serial number:
Model ID: B020407BC08A
Unit ID: 70926049
Bootloader: BOT 78.00.B0009
Firmware: MPM 16.00.B0009
Other:
Supports 30 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 78.00.B0009 AAE28E5B17FF
Firmware: Firmware MPM 16.00.B0009 B0208E5B17FF
Firmware: Other
Unit ID: 70926049 Model ID: B020407BC08A Transport IDs: {'btleid': 'B020', 'wpid': '407B', 'usbid': 'C08A'}
3: DEVICE NAME {0005}
Name: MX Vertical Advanced Ergonomic Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Vertical
8: BATTERY STATUS {1000}
Battery: 90%, discharging, next level 50%.
9: unknown:1002 {1002}
10: REPROG CONTROLS V4 {1B04}
11: PERSISTENT REMAPPABLE ACTION {1C00}
12: CHANGE HOST {1814}
13: HOSTS INFO {1815}
Host 0 (unpaired): minerva
Host 1 (unpaired): theseus
Host 2 (unpaired): athena
14: XY STATS {2250}
15: unknown:18B1 {18B1} internal, hidden
16: VERTICAL SCROLLING {2100}
Roller type: standard
Ratchet per turn: 24
Scroll lines: 0
17: LOWRES WHEEL {2130}
Wheel Reports: HID
Scroll Wheel Diversion (saved): False
Scroll Wheel Diversion : False
18: ADJUSTABLE DPI {2201}
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} internal, hidden
24: unknown:18A1 {18A1} internal, hidden
25: unknown:1E00 {1E00} hidden
26: unknown:1EB0 {1EB0} internal, hidden
27: unknown:1E22 {1E22} internal, hidden
28: unknown:1861 {1861} internal, hidden
29: unknown:18C0 {18C0} internal, hidden
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
5: DPI Switch , default: DPI Switch => DPI Switch
mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
reporting: default
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Has 6 persistent remappable keys:
0: Left Button => Mouse Button: Mouse Button Left
1: Right Button => Mouse Button: Mouse Button Right
2: Middle Button => Mouse Button: Mouse Button Middle
3: Back Button => Mouse Button: Mouse Button Back
4: Forward Button => Mouse Button: Mouse Button Forward
5: unknown:0000 => None
Battery: 90%, discharging, next level 50%.

View File

@ -1,3 +1,21 @@
Solaar version 1.1.5
1: Marathon Mouse M705 (M-R0009)
Device path : /dev/hidraw1
WPID : 101B
Codename : M705 (M-R0009)
Kind : mouse
Protocol : HID++ 1.0
Polling rate : 8 ms (125Hz)
Serial number: 23691D3D
Firmware: 17.01.B0017
Bootloader: 02.06
Other: 00.04
The power switch is located on the base.
Notifications: battery status (0x100000).
Features: special buttons, scroll accel (0x420000)
Battery: 65%, discharging.
registers: registers:
# writing 0x10 in this register will generate an event # writing 0x10 in this register will generate an event

View File

@ -0,0 +1,165 @@
3: Marathon Mouse M705 (M-R0073)
Device path : /dev/hidraw3
WPID : 406D
Codename : M705 (M-R0073)
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: B14D65DA
Model ID: 406D00000000
Unit ID: 5E1A15B8
Bootloader: BOT 59.00.B0002
Firmware: RQM 67.01.B0005
The power switch is located on the base.
Supports 26 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 59.00.B0002 406D5F5048B901
Firmware: Firmware RQM 67.01.B0005 406D5F5048B901
Unit ID: 5E1A15B8 Model ID: 406D00000000 Transport IDs: {'wpid': '406D'}
3: DEVICE NAME {0005}
Name: Marathon Mouse/Performance Plus M705
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
7: REPROG CONTROLS V4 {1B04}
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
8: POINTER SPEED {2205}
Pointer Speed: 1.0
Sensitivity (Pointer Speed) (saved): 256
Sensitivity (Pointer Speed) : 256
9: VERTICAL SCROLLING {2100}
Roller type: 3G
Ratchet per turn: 24
Scroll lines: 0
10: DFUCONTROL SIGNED {00C2}
11: DEVICE RESET {1802} internal, hidden
12: unknown:1803 {1803} internal, hidden
13: CONFIG DEVICE PROPS {1806} internal, hidden
14: unknown:1810 {1810} internal, hidden
15: unknown:1830 {1830} internal, hidden
16: unknown:1890 {1890} internal, hidden
17: unknown:18A1 {18A1} internal, hidden
18: unknown:1DF3 {1DF3} internal, hidden
19: unknown:1E00 {1E00} hidden
20: unknown:1EB0 {1EB0} internal, hidden
21: unknown:1861 {1861} internal, hidden
22: unknown:18B1 {18B1} internal, hidden
23: unknown:1850 {1850} internal, hidden
24: unknown:1F03 {1F03} internal, hidden
25: unknown:18C0 {18C0} internal, hidden
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
Battery: 50%, discharging, next level 20%.
3: Marathon Mouse M705 (M-R0073)
Device path : /dev/hidraw3
WPID : 406D
Codename : M705 (M-R0073)
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: B14D65DA
Model ID: 406D00000000
Unit ID: 5E1A15B8
Bootloader: BOT 59.00.B0002
Firmware: RQM 67.01.B0005
The power switch is located on the base.
Supports 27 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 59.00.B0002 406D5F5048B901
Firmware: Firmware RQM 67.01.B0005 406D5F5048B901
Unit ID: 5E1A15B8 Model ID: 406D00000000 Transport IDs: {'wpid': '406D'}
3: DEVICE NAME {0005}
Name: Marathon Mouse/Performance Plus M705
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
7: REPROG CONTROLS V4 {1B04}
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
8: POINTER SPEED {2205}
Pointer Speed: 1.0
Sensitivity (Pointer Speed) : 256
9: VERTICAL SCROLLING {2100}
Roller type: 3G
Ratchet per turn: 24
Scroll lines: 0
10: DFUCONTROL SIGNED {00C2}
11: DEVICE RESET {1802} internal, hidden
12: unknown:1803 {1803} internal, hidden
13: CONFIG DEVICE PROPS {1806} internal, hidden
14: unknown:1810 {1810} internal, hidden
15: unknown:1830 {1830} internal, hidden
16: unknown:1890 {1890} internal, hidden
17: unknown:18A1 {18A1} internal, hidden
18: unknown:1DF3 {1DF3} internal, hidden
19: unknown:1E00 {1E00} hidden
20: unknown:1EB0 {1EB0} internal, hidden
21: unknown:1861 {1861} internal, hidden
22: unknown:18B1 {18B1} internal, hidden
23: unknown:1850 {1850} internal, hidden
24: unknown:1F03 {1F03} internal, hidden
25: unknown:18C0 {18C0} internal, hidden
26: HIRES WHEEL {2121}
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
Low resolution mode
HID notification
Scroll Wheel Direction : False
Scroll Wheel Resolution : False
Has 7 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
mse, reprogrammable, divertable, pos:0, group:2, group mask:g1,g2
reporting: default
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,111 @@
Solaar version 1.1.7
2: Multi Device Silent Mouse M585/M590
Device path : /dev/hidraw2
WPID : 406B
Codename : M585/M590
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: 37216581
Model ID: B01B406B0000
Unit ID: F2D653C0
Bootloader: BOT 48.00.B0001
Firmware: MPM 05.02.B0007
Other:
The power switch is located on the base.
Supports 34 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V2
Firmware: Bootloader BOT 48.00.B0001 00005BEB5EE001
Firmware: Firmware MPM 05.02.B0007 406B5BEB5EE001
Firmware: Other
Unit ID: F2D653C0 Model ID: B01B406B0000 Transport IDs: {'btleid': 'B01B', 'wpid': '406B'}
3: DEVICE NAME {0005} V0
Name: M585/M590 Multi-Device Mouse
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B} V0
5: RESET {0020} V0
6: CRYPTO ID {0021} V0
7: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: M585/M590
8: BATTERY STATUS {1000} V0
Battery: 50%, discharging, next level 20%.
9: CHANGE HOST {1814} V1
Cambiar Host : 1:romanescu
10: HOSTS INFO {1815} V1
Host 0 (paired): romanescu
Host 1 (paired): espinaca
11: REPROG CONTROLS V4 {1B04} V3
Acciones de Tecla/Botón (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
Acciones de Tecla/Botón : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
Desvio de Tecla/Botón (saved): {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Left Tilt:Normal, Right Tilt:Normal}
Desvio de Tecla/Botón : {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Left Tilt:Normal, Right Tilt:Normal}
12: PERSISTENT REMAPPABLE ACTION {1C00} V0
Persistent Key/Button Mapping : {Left Button:Mouse Button Left, Right Button:Mouse Button Right, Middle Button:Mouse Button Middle, Back Button:Mouse Button Back, Forward Button:Mouse Button Forward, Left Tilt:Horizontal Scroll Left, Right Tilt:Horizontal Scroll Right}
13: POINTER SPEED {2205} V0
Pointer Speed: 1.0
Sensibilidad (Velocidad del puntero) (saved): 256
Sensibilidad (Velocidad del puntero) : 256
14: VERTICAL SCROLLING {2100} V0
Roller type: standard
Ratchet per turn: 18
Scroll lines: 0
15: DFUCONTROL SIGNED {00C2} V0
16: DEVICE RESET {1802} V0 internal, hidden
17: unknown:1803 {1803} V0 internal, hidden
18: CONFIG DEVICE PROPS {1806} V0 internal, hidden
19: OOBSTATE {1805} V0 internal, hidden
20: unknown:1813 {1813} V0 internal, hidden
21: unknown:1830 {1830} V0 internal, hidden
22: unknown:1861 {1861} V0 internal, hidden
23: unknown:1890 {1890} V0 internal, hidden
24: unknown:1891 {1891} V0 internal, hidden
25: unknown:18A1 {18A1} V0 internal, hidden
26: unknown:1DF3 {1DF3} V0 internal, hidden
27: unknown:1E00 {1E00} V0 hidden
28: unknown:1EB0 {1EB0} V0 internal, hidden
29: unknown:18B1 {18B1} V0 internal, hidden
30: unknown:1850 {1850} V0 internal, hidden
31: unknown:1F03 {1F03} V0 internal, hidden
32: unknown:18C0 {18C0} V0 internal, hidden
33: LOWRES WHEEL {2130} V0
Wheel Reports: HID
Desvio Rueda Desplazamiento (saved): False
Desvio Rueda Desplazamiento : False
Has 8 reprogrammable keys:
0: Left Button , default: Left Click => Left Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
1: Right Button , default: Right Click => Right Click
mse, reprogrammable, pos:0, group:1, group mask:g1
reporting: default
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
3: Back Button , default: Mouse Back Button => Mouse Back Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
reporting: default
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
reporting: default
Has 7 persistent remappable keys:
0: Left Button => Mouse Button: Mouse Button Left
1: Right Button => Mouse Button: Mouse Button Right
2: Middle Button => Mouse Button: Mouse Button Middle
3: Back Button => Mouse Button: Mouse Button Back
4: Forward Button => Mouse Button: Mouse Button Forward
5: Left Tilt => Horizontal Scroll: Horizontal Scroll Left
6: Right Tilt => Horizontal Scroll: Horizontal Scroll Right
Battery: 50%, discharging, next level 20%.

View File

@ -0,0 +1,9 @@
Nano Receiver
Device path : /dev/hidraw3
USB id : 046d:c52f
Serial : 6D0342C5
Firmware : 30.00.B0009
Has 1 paired device(s) out of a maximum of 1.
Notifications: (none)
Seen with Marathon Mouse M705

View File

@ -0,0 +1,13 @@
Solaar version 1.1.4rc2
Nano Receiver
Device path : /dev/hidraw1
USB id : 046d:C534
Serial : None
Firmware : 29.01.B0016
Has 2 paired device(s) out of a maximum of 2.
Has 18 successful pairing(s) remaining.
Notifications: wireless, software present (0x000900)
Seen paired with Wireless Keyboard 4075 and Wireless Mouse M185 new 4054

View File

@ -0,0 +1,10 @@
Solaar version 1.1.5
Nano Receiver
Device path : /dev/hidraw5
USB id : 046d:C535
Serial : 1F3F94FC
Firmware : 31.00.B0001
Has 1 paired device(s) out of a maximum of 1.
Has 39 successful pairing(s) remaining.
Notifications: wireless, software present (0x000900)

View File

@ -0,0 +1,17 @@
solaar version 1.1.8
3: Number Pad N545
Device path : /dev/hidraw3
WPID : 2006
Codename : N545
Kind : numpad
Protocol : HID++ 1.0
Polling rate : 20 ms (50Hz)
Serial number: 900A4D98
Firmware: 13.00.B0037
Bootloader: 02.03
Other: 00.01
The power switch is located on the base.
Notifications: battery status (0x100000).
Features: (none)
Battery: full, discharging.

Some files were not shown because too many files have changed in this diff Show More