Compare commits

...

2380 Commits

Author SHA1 Message Date
Mário Victor Ribeiro Silva
d82233b69c feat: update pt_BR translations 2026-01-08 22:40:59 -05:00
daviddavid
2f3b3c1964 Update French translation (for release 1.1.19)
- by David Geiger <david.david@mageialinux-online.org>
2026-01-08 14:40:36 -05:00
Peter F. Patel-Schneider
97311bed5f ui: handle missing receiver_path more gracefully 2026-01-08 12:38:14 -05:00
Peter F. Patel-Schneider
6926047020 device: handle inaccessiable devices when determining protocol 2026-01-08 12:37:31 -05:00
Peter F. Patel-Schneider
0110bbff31 cli: be defensive when showing features in solaar show 2026-01-08 12:36:42 -05:00
Peter F. Patel-Schneider
4bda869542 release 1.1.19 2026-01-08 12:32:44 -05:00
Ekaterine Papava
ce1adc7b03 po: Add Georgian translation 2026-01-07 22:50:17 -05:00
Peter F. Patel-Schneider
fc68521731 release 1.1.19rc1 2025-12-29 09:47:07 -05:00
Peter F. Patel-Schneider
c87730f1eb tests: remove test that doesn't work in older Pythons 2025-12-24 08:11:04 -05:00
Peter F. Patel-Schneider
76346cd5aa docs: update help messages for CLI commands 2025-12-21 18:03:53 -05:00
Peter F. Patel-Schneider
705279097f cli: allow to change LED settings 2025-12-21 18:03:53 -05:00
Peter F. Patel-Schneider
36377fdd5a doc: instructions on running solaar show in 1.1.18 2025-12-21 18:01:53 -05:00
Peter F. Patel-Schneider
a427c66dc1 tools: add python3-devel to install-dnf in Makefile 2025-12-20 12:31:17 -05:00
Peter F. Patel-Schneider
f0c64f5fb3 tools: improve flags for hidconsole 2025-12-19 10:55:50 -05:00
Peter F. Patel-Schneider
a0e19282ec tools: hidconsole can send an HID command non-interactively 2025-12-19 09:38:17 -05:00
Peter F. Patel-Schneider
e999b12246 receiver: add info about new lightspeed receiver 2025-12-17 15:52:17 -05:00
Peter F. Patel-Schneider
d3216ea57a device: remove debugging statement 2025-12-17 15:44:14 -05:00
Nick
0b6a5fa108 Update Swedish translation
Fix one translation
2025-12-17 11:47:25 -05:00
Peter F. Patel-Schneider
ff23601183 device: fix bug when showing details about direct-connected device 2025-12-16 15:23:06 -05:00
Daniel Nylander
aaabb5d811 Updated Swedish translation 2025-12-13 07:53:04 -05:00
Peter Dave Hello
ccf1ac5b6d po: Update zh_TW Traditional Chinese locale 2025-12-13 07:52:20 -05:00
Peter F. Patel-Schneider
46da00e214 release: drop testing of Python before 3.13 2025-12-12 04:55:14 -05:00
Gabriel Ebner
1dd1ace327 cli: Fix crash when showing notification flags. (#3070) 2025-12-12 04:54:10 -05:00
Peter F. Patel-Schneider
a87ae59a93 release 1.1.18 2025-12-11 15:28:01 -05:00
Peter F. Patel-Schneider
8298db0891 receiver: fix crash when turning notification flags into strings 2025-12-11 15:23:06 -05:00
Peter F. Patel-Schneider
93e90f4894 docs: update pairing documentation 2025-12-10 14:03:44 -05:00
Peter F. Patel-Schneider
4c63bdb6ee show better pairing errors (#3063)
* Fix: Show pairing error str

Fixes #2827

* device: also show bolt pairing errors

---------

Co-authored-by: MattHag <16444067+MattHag@users.noreply.github.com>
2025-12-10 11:18:50 -05:00
MattHag
441d608ca0 test_pair_window: Simplify tests by cleaning up receiver mock (#2899)
Remove unnecessary parameter for these tests.
2025-12-10 10:50:07 -05:00
Peter F. Patel-Schneider
2e549371ef device: fix typing issue with notification flags 2025-12-10 07:31:48 -05:00
Peter F. Patel-Schneider
4d2a42d541 doc: better formating of release notes 2025-12-09 15:41:02 -05:00
Peter F. Patel-Schneider
24fe69924b release 1.1.17 2025-12-09 14:30:04 -05:00
Peter F. Patel-Schneider
ebc4536b02 gui: add dark and updated icons 2025-12-05 08:54:10 -05:00
Peter F. Patel-Schneider
50fed28b3b device: permit onboard profiles data version 5 2025-12-04 04:04:27 -05:00
MistificaT0r
d77cc9ad65 update Russian translation 2025-12-01 14:17:57 -05:00
Matthaiks
a440eb7fcc Update Polish translation 2025-12-01 14:15:46 -05:00
Peter F. Patel-Schneider
f9ce65fd18 release 1.1.17rc3 2025-12-01 13:19:51 -05:00
Peter F. Patel-Schneider
b3ea338f86 release 1.1.17rc2 2025-12-01 13:15:26 -05:00
Peter F. Patel-Schneider
d7b2834697 release 1.1.17rc1 2025-12-01 13:15:26 -05:00
Morton Fox
ff67790f18 docs: Remove unnecessary 'is' 2025-11-27 20:54:51 -05:00
Peter F. Patel-Schneider
3686920e85 settings: add onboard profiles warning to sensitivity tooltip 2025-11-25 09:26:45 -05:00
Peter F. Patel-Schneider
dbc97d96d5 cli: better error messages for solaar profile 2025-11-19 13:50:54 -05:00
Peter F. Patel-Schneider
dc3412c83b device: remove Solaar name for mice with WPID 4008 2025-11-15 19:32:18 -05:00
Peter F. Patel-Schneider
29bf463509 settings: prevent lock failure when showing debug messages 2025-11-15 18:21:18 -05:00
Din Tort
f12632b45e docs: Fix typo in installation instructions for pip/pipx 2025-11-15 15:46:03 -05:00
Nils Bergmann
7963215fa2 docs: swap commands
The commands were probably meant to be the other way around. 

And I also think there is something missing in the sentence "and then run
`pip install --user solaar` or `pipx install --system-site-packages solaar` or
If you are using pipx add the `` flag.", but I was not sure.
2025-11-15 14:06:02 -05:00
danicc097
817c90e561 replace color picker (#3028)
* replace color picker
2025-11-15 11:05:59 -05:00
Peter F. Patel-Schneider
0fd262424e settings: add setting for HAPTIC feature 2025-11-12 14:50:46 -05:00
Peter F. Patel-Schneider
97b6b958c8 settings: expand new settings type 2025-11-12 14:33:34 -05:00
Peter F. Patel-Schneider
f739331dc2 settings: add new settings type for structure-backed setting 2025-11-12 14:33:34 -05:00
Ruffin
ec5b406909 misc: Use PATH instead of hardcoded absolute paths (#3014)
for better shebang and multi platform support
2025-11-04 03:28:10 +09:00
Peter F. Patel-Schneider
cff0110f81 settings: add scroll ratchet force setting 2025-11-04 03:25:12 +09:00
Peter F. Patel-Schneider
b96d0bbe0b rules: fix debug messages for MouseClick rule 2025-11-02 21:01:33 +09:00
Peter F. Patel-Schneider
96adf6a026 rules: improve debug message for rule evaluation 2025-11-02 20:58:44 +09:00
Din Tort
e906b83103 MacOS: app wrapper and launch agent scripts #1244 (#3008)
* Add scripts to create macOS app bundle and LaunchAgent #1244

This change introduces two new helper scripts for macOS users to improve integration with the operating system.

The `create-macos-app.sh` script builds a minimal `.app` wrapper for Solaar. This allows Solaar to be treated as a standard macOS application, enabling it to request necessary permissions, such as input monitoring, and to be discoverable by the OS. The script generates the required directory structure, a wrapper executable to launch Solaar, a standard `Info.plist` file, and an application icon from the source PNG.

The `create-macos-launchagent.sh` script sets up a LaunchAgent to automatically start Solaar at login and keep it running in the background. This ensures that the Solaar process is always available for device management without requiring manual intervention from the user. The script also configures log file locations for standard output and error streams.

Together, these scripts provide a more native and user-friendly experience for Solaar on macOS.

https://github.com/pwr-Solaar/Solaar/issues/1244

* Fix icon in script to create macOS app bundle #1244

https://github.com/pwr-Solaar/Solaar/issues/1244

* build: Remove hardcoded Homebrew path for solaar in macOS script

The `create-macos-app.sh` script previously defaulted to a hardcoded Homebrew path for the `solaar` executable. This change removes the specific path, defaulting instead to `solaar`.

This modification makes the script more flexible and robust. It allows the system's `PATH` to resolve the location of the `solaar` binary, accommodating various installation methods beyond a fixed Homebrew directory. The explicit check for the executable's existence is also removed, as the script will now rely on the command being available in the shell's environment, which is a more standard approach.

* refactor(macos): Improve solaar executable lookup in launchagent script

This change improves how the `create-macos-launchagent.sh` script locates the `solaar` executable.

Previously, the script defaulted to a hardcoded path (`/opt/homebrew/bin/solaar`) and would exit with an error if that specific file was not found and executable. This was too restrictive and failed in environments where `solaar` is installed in a different location, such as through `pipx` or in standard system paths like `/usr/local/bin`.

Now, the script defaults the `SOLAAR_PATH` to just `solaar` and uses the `command -v` utility to find the executable in the user's `PATH`. This allows the system to resolve the correct location of the `solaar` binary automatically. If the executable cannot be found in the `PATH`, the script now issues a warning instead of exiting, and proceeds to use the provided `SOLAAR_PATH` value in the generated LaunchAgent plist. This makes the script more flexible and robust for different installation methods.

* refactor(macos): Improve solaar executable lookup in launchagent script

This change improves how the `create-macos-launchagent.sh` script locates the `solaar` executable.

Previously, the script defaulted to a hardcoded path (`/opt/homebrew/bin/solaar`) and would exit with an error if that specific file was not found and executable. This was too restrictive and failed in environments where `solaar` is installed in a different location, such as through `pipx` or in standard system paths like `/usr/local/bin`.

Now, the script defaults the `SOLAAR_PATH` to just `solaar` and uses the `command -v` utility to find the executable in the user's `PATH`. This allows the system to resolve the correct location of the `solaar` binary automatically. If the executable cannot be found in the `PATH`, the script now issues a warning instead of exiting, and proceeds to use the provided `SOLAAR_PATH` value in the generated LaunchAgent plist. This makes the script more flexible and robust for different installation methods.

* refactor: Improve Solaar path resolution in macOS helper scripts

This change improves the robustness of the macOS helper scripts by ensuring the Solaar executable is found before proceeding.

Previously, `create-macos-launchagent.sh` would only issue a warning and continue with a potentially invalid path if the `solaar` command was not found. `create-macos-app.sh` had a typo (`SOLAR_PATH`) and lacked a check altogether.

Now, both scripts (`create-macos-app.sh` and `create-macos-launchagent.sh`) will:
- Correctly check if the `solaar` executable exists in the system's `PATH`.
- Use the resolved, absolute path to the executable to avoid ambiguity.
- Exit with an error if the executable cannot be found, preventing the creation of a broken app bundle or launch agent.

* feat(macos): Relaunch app to fix tray icon and add Dock icon

This change modifies the macOS app bundle creation script to improve the application's behavior and user experience on macOS.

Previously, when Solaar was launched as a standard `.app` bundle, macOS restrictions sometimes prevented the GTK tray icon from appearing correctly. This change introduces a workaround in the wrapper script. The application now relaunches itself as a detached background process on the first launch. This new, detached process is no longer subject to the same `.app` bundle restrictions, allowing the tray icon to be created reliably.

Additionally, the `LSUIElement` key in the `Info.plist` is set to `false`. This makes Solaar a regular application with an icon in the Dock, which is the standard behavior expected by most macOS users for a graphical application.

* docs: Explain macOS Python.app Dock icon limitation

This change adds a comment to the `create-macos-app.sh` script to explain why the Solaar application may still show a Dock icon on macOS, even when it is not desired for a background utility.

On macOS, Python often runs as `Python.app`, which has its own `Info.plist` file. This built-in `Info.plist` takes precedence over the one generated for the Solaar app bundle. As a result, settings like `LSUIElement=true`, which would normally hide the Dock icon, are overridden. This comment clarifies that this behavior is a known limitation of the Python distribution on macOS and not a bug in the Solaar packaging script.

* docs: Add instructions for creating macOS launcher options

This update enhances the installation guide by including steps to set up macOS launchers for Solaar. Two options are provided:
- LaunchAgent for automatic background execution and crash recovery.
- App launcher for manual addition to Login Items.
2025-10-30 07:20:55 -04:00
Peter F. Patel-Schneider
2cb5fa4b97 settings: ignore hidden features 2025-10-27 15:27:13 -04:00
Peter F. Patel-Schneider
44a647499c ui: don't pop up window in response to ADC changes 2025-10-25 10:41:35 -04:00
Peter F. Patel-Schneider
02e05e46b0 doc: update bug report template 2025-10-25 10:21:45 -04:00
Joey Riches
bc41badff1 appstream: Fixed malformed file by adding closing tag 2025-10-24 12:43:32 -04:00
Peter F. Patel-Schneider
5c94cf4d9f device: fix error in low-level request for device with no recevier 2025-10-23 12:58:01 -04:00
Peter F. Patel-Schneider
e2a9206d78 docs: update files shown in documentation 2025-10-23 09:28:52 -04:00
Peter F. Patel-Schneider
e6ecf94deb docs: make known issues more prominent 2025-10-23 08:16:05 -04:00
Peter F. Patel-Schneider
b8ccec37ed release 1.1.16 2025-10-23 07:58:44 -04:00
Peter F. Patel-Schneider
51630421b2 device: add new flags for reprogrammable keys feature 2025-10-22 16:46:40 -04:00
Peter F. Patel-Schneider
ab517577b5 device: correctly handle missing battery feature 2025-10-22 16:46:40 -04:00
Peter F. Patel-Schneider
15ee0662f1 release 1.1.15 2025-10-21 09:06:28 -04:00
Peter F. Patel-Schneider
2c070e92b3 release 1.1.15rc2 2025-10-21 09:06:28 -04:00
Peter F. Patel-Schneider
a866de47fb udev: correctly re-raise access exception 2025-10-17 19:41:23 -04:00
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
Peter F. Patel-Schneider
312b8900a3 release 1.1.3rc1 2022-04-11 14:15:19 -04:00
Peter F. Patel-Schneider
87e0ecacf3 ui: remove need for pggettext by changing name of field in rule editor 2022-04-11 13:20:42 -04:00
Peter F. Patel-Schneider
bb20631a27 misc: remove support for Python 2 unicode 2022-04-11 13:20:42 -04:00
Peter F. Patel-Schneider
8ac8fe6401 solaar: handle devices with all-zero modelId 2022-04-10 16:35:08 -04:00
Peter F. Patel-Schneider
37bc1d7bd0 solaar: better formatting and cleanup of config.yaml 2022-04-10 16:35:08 -04:00
Peter F. Patel-Schneider
d90ee945ab device: use int instead of str for setting keys 2022-04-10 16:35:08 -04:00
Peter F. Patel-Schneider
e5b11ca2f9 solaar: use list for configurations and write in yaml 2022-04-10 16:35:08 -04:00
hadess
b47cfbf024 release: appinfo/metadata fixes
* Add <releases> tag

* Update summary to match recommended style

https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-summary

* Add copyright information

• value-missing         : <!-- Copyright [year] [name] --> is not present

* Add update contact

• tag-missing           : <update_contact> is not present

* release: Use quotes for filepaths

* release: Mention the need to update appdata file
2022-04-07 08:56:25 -04:00
Peter F. Patel-Schneider
9a806a91de solaar: update code comment - not using UPower daemon 2022-04-06 17:56:58 -04:00
Peter F. Patel-Schneider
5aa02aa01d rules: fix problems when X11 is not available 2022-04-06 17:54:39 -04:00
Peter F. Patel-Schneider
371027c690 rules: remove process-dependent rules from built-in rules 2022-04-06 17:54:39 -04:00
Peter F. Patel-Schneider
74fe7d7920 cli: handle situation where GTK application cannot be set up 2022-04-05 16:34:43 -04:00
Peter F. Patel-Schneider
7d230a1f31 solaar: treat all DJ pairing notifications as only needing an informational message 2022-04-05 16:34:43 -04:00
Bastien Nocera
46b9294d63 Stop listening to obsolete upower signals
The "Sleeping" and "Resuming" signals were removed from upower in 2013.
2022-04-05 07:50:51 -04:00
Bastien Nocera
b3cfd0f762 Make APP_ID match real application ID
The application advertises itself as io.github.pwr_solaar.solaar through
its appdata file, so name the application this way too.

This fixes this warning in Flatpak:
Failed to register: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
2022-04-05 06:39:25 -04:00
Peter F. Patel-Schneider
693db1d541 cli: correctly set up register settings for config 2022-04-04 13:17:40 -04:00
Peter F. Patel-Schneider
cba5368dad cli: use unitId to identify device if serial number not available 2022-04-04 13:17:40 -04:00
Peter F. Patel-Schneider
509c68ba05 misc: silence incorrect style complaints 2022-04-04 13:17:40 -04:00
Peter F. Patel-Schneider
0e1522aa62 dist: update required python version to 3.7 2022-04-01 16:41:55 -04:00
Peter F. Patel-Schneider
e3d62f5dca device: refactor device ID calls 2022-03-31 11:54:41 -04:00
Peter F. Patel-Schneider
4974989729 device: add mouse buttons for all bits in persistent remappable actions mouse button field 2022-03-31 11:49:40 -04:00
Peter F. Patel-Schneider
74da36725b settings: augment tooltips for M and MR key LEDs 2022-03-31 11:49:40 -04:00
Peter F. Patel-Schneider
fc2b8accbf rules: handle missing libX11 more gracefully and document dependency 2022-03-31 10:06:30 -04:00
Peter F. Patel-Schneider
d500642352 rules: graceful degredation when no keymap available 2022-03-30 12:02:52 -04:00
Dominik 'Rathann' Mierzejewski
8e7435ee44 lower python-evdev requirement to 1.1.2
1.1.2 is still commonplace, e.g. in older Fedora, RHEL/CentOS 8
and Debian 10. Current code doesn't use any new features from 1.3.0.
2022-03-28 09:04:01 -04:00
Peter F. Patel-Schneider
38e42aff8e docs: add need for Python evdev to the release notes 2022-03-26 20:19:40 -04:00
Peter F. Patel-Schneider
4100c83390 release 1.1.2 2022-03-26 11:52:06 -04:00
Peter F. Patel-Schneider
4e4ece278f settings: disable BACKLIGHT setting because it is causing errors 2022-03-26 11:52:06 -04:00
Rongrong
5c44885085 Update zh_CN translation (#1511) 2022-03-24 16:08:28 -04:00
Matthaiks
39214a4f38 po: update Polish translation 2022-03-20 07:19:54 -04:00
Peter F. Patel-Schneider
fbe25b4b11 release 1.1.2rc2 2022-03-19 21:25:03 -04:00
Peter F. Patel-Schneider
f935ff1d95 rules: reorder code in diversion.py 2022-03-19 21:09:45 -04:00
Peter F. Patel-Schneider
5e209dcfd9 rules: remove built-in testing rule for thumb wheel 2022-03-19 21:09:45 -04:00
Peter F. Patel-Schneider
3d82075773 rules: use relative scroll events for scrolling in uinput 2022-03-19 21:09:45 -04:00
Peter F. Patel-Schneider
b5c6cf8d63 doc: add information on rules under Wayland and uinput permissions 2022-03-19 21:09:45 -04:00
Peter F. Patel-Schneider
6bddebd89b rules: try uinput for simulating input if Xtest not available 2022-03-19 21:09:45 -04:00
Peter F. Patel-Schneider
b9c17474a4 rules: use uinput for simulating keyboard input 2022-03-19 21:09:45 -04:00
Peter F. Patel-Schneider
a4afffe6c3 device: support C542 receiver for M190 mice 2022-03-19 17:42:59 -04:00
Danfro
5b20a8a859 update German translation 2022-03-19 13:34:18 -04:00
Peter F. Patel-Schneider
7e6ceb988a settings: add missing choices for backlight setting 2022-03-17 20:47:58 -04:00
Peter F. Patel-Schneider
a034a0ea10 device: broaden range of bluetooth devices 2022-03-17 20:47:58 -04:00
Peter F. Patel-Schneider
6c02417037 ui: allow tray icon to scroll whenever at least two devices 2022-03-17 14:05:09 -04:00
Peter F. Patel-Schneider
d115ade2ea setting: add setting to divert gestures 2022-03-16 20:22:25 -04:00
Peter F. Patel-Schneider
681a06d8d7 ui: print backtrace when errors occur during writing settings 2022-03-16 20:22:25 -04:00
Vinícius
c53c77f427 ui: add support to Setting condition 2022-03-16 18:29:52 -04:00
Peter F. Patel-Schneider
e628298c0a cli: make solaar config changes also take effect in solaar ui if running 2022-03-16 09:20:12 -04:00
Peter F. Patel-Schneider
019997f75c settings: add setting to disable Onboard Profiles 2022-03-13 10:29:00 -04:00
Peter F. Patel-Schneider
d9abdb2ecd docs: document rule Setting: condition 2022-03-13 09:36:04 -04:00
Peter F. Patel-Schneider
484b097664 settings: handle PERSISTENT REMAPPABLE ACTION for M720 mouse 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
4c7f8c831b receiver: add and remove some HID Consumer Codes to conform with Linux usage 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
3e6c92de70 docs: update for PERSISTENT_REMAPPABLE_ACTION and class-based settings 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
d646e18543 settings: add setting for PERSISTENT_REMAPPABLE_ACTION 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
12ecef004e receiver: gather and show PERSISTENT_REMAPPABLE_ACTION information 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
1deb6c34e4 receiver: add PERSISTENT_REMAPPABLE_ACTION to KeysArray classes 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
3d87f418cf receiver: add USB consumer codes 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
e3788f3d1f receiver: add USB scan codes 2022-03-12 12:20:38 -05:00
Peter F. Patel-Schneider
4c683457f9 device: downgrade warning when devices don't echo requests for reprogrammable keys 2022-03-12 12:20:38 -05:00
Vinícius
588d7ae533 ui: add support to TestBytes 2022-03-10 21:04:28 -05:00
Vinícius
f327e3ad38 logitech_receiver: split Test condition 2022-03-10 21:04:28 -05:00
Danfro
54b79d9f13 update German translation (#1489)
* update some new German strings and improve a few existing strings

* add translated comment to example desktop file
2022-03-10 20:43:26 -05:00
Peter F. Patel-Schneider
6cdb2ea9eb settings: fix bug in speed-change setting 2022-03-09 15:29:43 -05:00
Peter F. Patel-Schneider
84bdc792b7 docs: augment rule documentation 2022-03-09 09:42:16 -05:00
Peter F. Patel-Schneider
17a7b0689e settings: add BACKLIGHT3 setting template 2022-03-09 09:13:24 -05:00
Peter F. Patel-Schneider
bc398a8720 device: add DFUCONTROL feature 2022-03-09 09:13:24 -05:00
Peter F. Patel-Schneider
df2a68c29e settings: add Backlight setting template 2022-03-09 09:13:24 -05:00
Peter F. Patel-Schneider
3c4efb4ad5 ui: ensure that settings are pushed to all devices when resuming 2022-03-09 09:12:10 -05:00
Peter F. Patel-Schneider
124414063b device: reformat descriptors.py 2022-03-08 17:48:41 -05:00
Peter F. Patel-Schneider
7239e3d050 device: support G502 SE Hero mouse 2022-03-08 17:48:41 -05:00
Peter F. Patel-Schneider
c430ff6ea8 doc: mention how to contribute in main documentation 2022-03-08 09:07:47 -05:00
Danfro
2ce5e2ba82 updated the translation with po-update.py and added the missing strings 2022-03-08 09:04:51 -05:00
Danfro
416080e8c4 update translators name 2022-03-08 09:04:51 -05:00
Danfro
f8bf49c1b2 update German translation 2022-03-08 09:04:51 -05:00
Peter F. Patel-Schneider
71ac905d76 device: determine device number from protocol for direct-connected devices; add G9 Laser Mouse 2022-03-02 22:58:25 -05:00
Peter F. Patel-Schneider
862fd9c110 device: cut off noops even earlier 2022-03-02 05:30:22 -05:00
Peter F. Patel-Schneider
94ff454ace rules: fix Key conditions in built-in rules 2022-03-01 08:05:13 -05:00
Lukas Michel
ce7dcf8326 add keysyms to the packages list 2022-03-01 06:27:35 -05:00
Peter F. Patel-Schneider
27752778ab ui: fix bug in add and delete button actions 2022-02-28 09:04:12 -05:00
Peter F. Patel-Schneider
1696733702 receiver: dispose of no-op notifications quickly 2022-02-27 11:59:54 -05:00
Peter F. Patel-Schneider
00176a1df8 rules: add rule condition for checking device settings 2022-02-27 08:24:05 -05:00
Peter F. Patel-Schneider
eedf4bfffb rules: use local file for conversion from key names to keysyms 2022-02-27 08:21:52 -05:00
Peter F. Patel-Schneider
1869f57f7f rules: get keyboard group and use to get correct keycode for keysym 2022-02-27 08:21:52 -05:00
Peter F. Patel-Schneider
4c43910ed7 rules: use GDK to get current keyboard modifiers 2022-02-27 08:21:52 -05:00
Peter F. Patel-Schneider
3e2be09cb5 rules: partial implementation of rules under Wayland 2022-02-27 08:21:52 -05:00
Peter F. Patel-Schneider
cb7845471c settings: add setting for MR-Key LED 2022-02-25 16:13:42 -05:00
Peter F. Patel-Schneider
faf905de9c settings: add setting for M-Key LEDs 2022-02-25 16:13:42 -05:00
Peter F. Patel-Schneider
856f40e789 rules: fix bug in unpacking M and MR key notification 2022-02-25 16:13:42 -05:00
Peter F. Patel-Schneider
c16b02e732 device: add G815 keyboard and MX518 mouse 2022-02-22 14:14:07 -05:00
Peter F. Patel-Schneider
a94d00e418 device: add new special keys 2022-02-21 08:37:16 -05:00
Peter F. Patel-Schneider
561e9cbfea settings: Agument tooltip messages for several settings 2022-02-21 08:29:48 -05:00
Peter F. Patel-Schneider
cf0a71913e rules: track M keys and MR keys for use in rules 2022-02-21 08:29:48 -05:00
Peter F. Patel-Schneider
19b32f7856 doc: be clear that KeyPress rule action is for a single chorded character 2022-02-16 21:14:52 -05:00
Peter F. Patel-Schneider
69046678ac ui: default editable to True in show method 2022-02-16 21:14:52 -05:00
Peter F. Patel-Schneider
e190ad39da cli: make sure device is on-line when searching for devices in solaar show 2022-02-16 11:08:39 -05:00
Dominik 'Rathann' Mierzejewski
346c643bcc lower PyYAML and psutil version requirements
RHEL8 and derivatives carry PyYAML 3.12 and psutil 5.4.3 built for the
default python 3.6 in the base OS repository. Consequently, solaar is
not installable without installing python38 or python39 stack (called
module in RHEL/Fedora) that carry newer versions of these two.

solaar seems to work fine with these older versions as
[confirmed](https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-f65a1a9d86)
by @mefuller .

Fixes #1418 .
2022-02-16 07:59:47 -05:00
Peter F. Patel-Schneider
7fad50a2f4 docs: don't use smooth scrolling as an example of what Solaar can do 2022-02-14 13:37:06 -05:00
Peter F. Patel-Schneider
c75aaea89d settings: don't check for mouse kind in dpi sliding setting 2022-02-14 13:37:06 -05:00
Peter F. Patel-Schneider
55be7a67c8 settings: get default DPI if current DPI is returned as 0 2022-02-14 13:37:06 -05:00
Peter F. Patel-Schneider
f938d3430e cli: nicer output of settings in solaar show and solaar config 2022-01-24 21:12:55 -05:00
Peter F. Patel-Schneider
fed9a26cb6 settings: fix bug in read method of action settings rw 2022-01-24 19:21:46 -05:00
Peter F. Patel-Schneider
13e4861043 settings: handle missing divert-setting in action RW 2022-01-24 14:03:17 -05:00
Peter F. Patel-Schneider
55a91f0ae4 device: add id property (unitId or serial) and don't use ? for unknown serial 2022-01-24 14:03:17 -05:00
Peter F. Patel-Schneider
7a9f9972a6 receiver: fix contains for NamedInts and eliminate use of has_element 2022-01-24 14:03:17 -05:00
Peter F. Patel-Schneider
f6b25a9685 rules: check for xtest and disable modifier checking if not available 2022-01-24 11:21:09 -05:00
Peter F. Patel-Schneider
56936a4d0a device: better gesture structure computation 2022-01-24 11:17:40 -05:00
Peter F. Patel-Schneider
7442c52c20 rules: defend against problems when determining focus program 2022-01-24 11:17:40 -05:00
Peter F. Patel-Schneider
26aa1ee15f device: lock querying all unqueried keys to prevent two threads from doing the same work 2022-01-24 11:17:40 -05:00
Peter F. Patel-Schneider
22b99ecce7 device: lock computation of gestures and settings to prevent two threads from doing the same work 2022-01-24 11:17:40 -05:00
Peter F. Patel-Schneider
a9c4950389 device: don't use class-shared structure for gesture indexes 2022-01-24 11:17:40 -05:00
Vinícius
25523315ab ui: fix tree row text when device contains options not in the full list 2022-01-24 11:12:04 -05:00
Vinícius
6f28a39a47 ui: fix choice field when device is connected 2022-01-24 11:12:04 -05:00
Vinícius
8be2ca110a ui: avoid conflicts when settings with the same name have different labels for the same number 2022-01-24 11:12:04 -05:00
Vinícius
2b26c9dc92 ui: do not accept numerical value typed by user 2022-01-24 11:12:04 -05:00
Vinícius
c3e88001e4 logitech_receiver: add has_element to NamedInts 2022-01-24 11:12:04 -05:00
Vinícius
49f2c6d8b9 ui: fix bug that made setting values not appear 2022-01-24 11:12:04 -05:00
Vinícius
bf8b861275 ui: don't show generic labels when specific ones are available for the same field 2022-01-24 11:12:04 -05:00
Vinícius
747d2e9c17 ui: show translated strings instead of internal names 2022-01-24 11:12:04 -05:00
Vinícius
d6c2b30760 ui: show keys supported by device even if they are not in the known universe 2022-01-24 11:12:04 -05:00
Vinícius
4d8b22f764 ui: replace typed text with key/value default display name 2022-01-24 11:12:04 -05:00
Vinícius
6dd980c541 ui: replace typed id with device display name 2022-01-24 11:12:04 -05:00
Vinícius
68e2b8ce6e ui: add support to choices_extra 2022-01-24 11:12:04 -05:00
Vinícius
fa0ecc6c2c ui: add blank field to toggle widgets 2022-01-24 11:12:04 -05:00
Vinícius
573cb6e985 ui: fix - typed text was not recognised as valid 2022-01-24 11:12:04 -05:00
Vinícius
7dd9609942 doc: remove outdated information about unsupported setting 2022-01-24 11:12:04 -05:00
Vinícius
2d2d3e3bc6 ui: make key and value fields case-insensitive 2022-01-24 11:12:04 -05:00
Vinícius
d80e34963b ui: make device field case-insensitive 2022-01-24 11:12:04 -05:00
Vinícius
0bce293017 ui: add support to multiple range in Set action 2022-01-24 11:12:04 -05:00
Vinícius
5c96d2d307 logitech_receiver: add support to multiple range in Set action 2022-01-24 11:12:04 -05:00
Vinícius
13dfac476b logitech_receiver: simplify param labels 2022-01-24 11:12:04 -05:00
Vinícius
f5831cbda7 ui: build item with all sub-items for multiple range settings 2022-01-24 11:12:04 -05:00
Vinícius
b9a23f133e ui: hide unsupported settings/keys/values 2022-01-24 11:12:04 -05:00
Vinícius
a4e30a7190 ui: treat '?' identifier as unavailable 2022-01-24 11:12:04 -05:00
Vinícius
aff80a7572 ui: fix error when key is set to None 2022-01-24 11:12:04 -05:00
Vinícius
9737a85c5a ui: fix errors when updating devices before widgets are filled 2022-01-24 11:12:04 -05:00
Vinícius
cc3ec6d987 ui: clear keys and values after changing setting 2022-01-24 11:12:04 -05:00
Vinícius
4c4f8de040 ui: change Set rule editor layout 2022-01-24 11:12:04 -05:00
Vinícius
438bb9e034 ui: show a different icon if the user types an unknown 8-character hex string 2022-01-24 11:12:04 -05:00
Vinícius
29cd1109b1 ui: don't trigger widget updates when updating devices 2022-01-24 11:12:04 -05:00
Vinícius
6022c37325 ui: add device selector to Set rule editor 2022-01-24 11:12:04 -05:00
Vinícius
3947a4a083 logitech_receiver: fix minimum DPI 2022-01-24 11:12:04 -05:00
Vinícius
2eb6864cfb ui: sort by number if all values are numeric 2022-01-24 11:12:04 -05:00
Vinícius
d2f44299f3 logitech_receiver: add range to AdjustableDpi 2022-01-24 11:12:04 -05:00
Vinícius
ec9f1a94ea logitech_receiver: rename old DPI setting 2022-01-24 11:12:04 -05:00
Vinícius
29ff5e5924 logitech_receiver: add UnsortedNamedInts 2022-01-24 11:12:04 -05:00
Vinícius
b36b070feb ui: make Set rule editor accept settings with the same name 2022-01-24 11:12:04 -05:00
Vinícius
ca36d2bd1a settings: add choices to Multiplatform and validator class to RegisterDpi 2022-01-24 11:12:04 -05:00
Vinícius
be4632f684 settings: fix type of choices 2022-01-24 11:12:04 -05:00
Vinícius
74fbec4209 settings: avoid circular import 2022-01-24 11:12:04 -05:00
Vinícius
8c32c2e63c ui: add new Set rules to rule editor (partial support) 2022-01-24 11:12:04 -05:00
Peter F. Patel-Schneider
1ace3ef4f4 ui: hide system tray icon when there are no devices to control 2022-01-22 09:57:28 -05:00
Peter F. Patel-Schneider
12779e7061 device: add G733 headset 2022-01-22 09:51:36 -05:00
Peter F. Patel-Schneider
df8e936769 ui: use greyscale solaar icon in tray when using symbolic icons 2022-01-22 09:50:14 -05:00
drupal-daffie
3a182c4988 Fixed typo (#1432)
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2022-01-22 09:48:39 -05:00
Vinícius
136c351209 cli: accept name as key in solaar config 2022-01-22 09:37:44 -05:00
Vinícius
b93b4f6bc3 cli: fix incorrect output of solaar config 2022-01-22 09:37:44 -05:00
Vinícius
2f702b7ca3 cli: fix bug in solaar config for multiple range settings 2022-01-22 09:37:44 -05:00
Vinícius
665b7b6194 logitech_receiver: fix bug that made solaar config not work 2022-01-22 09:37:44 -05:00
Peter F. Patel-Schneider
11fa025f1d settings: use classes for settings 2022-01-22 08:55:54 -05:00
Vinícius
de5878d34e settings: also accept "Toggle" to be consistent with CLI 2022-01-16 13:38:56 -05:00
Vinícius
08eb8a06e3 cli: also accept "~" to be consistent with the new Set action 2022-01-16 13:38:56 -05:00
Peter F. Patel-Schneider
a09af769d0 docs: document Set rule action 2022-01-13 18:59:06 -05:00
Peter F. Patel-Schneider
785675d469 ui: handle errors when writing to devices 2022-01-13 18:23:12 -05:00
Peter F. Patel-Schneider
2e94add3e3 ui: use classes for all config widgets 2022-01-13 18:23:12 -05:00
Peter F. Patel-Schneider
9e018fc5bf ui: use classes for several config widgets 2022-01-13 18:23:12 -05:00
Peter F. Patel-Schneider
8a87b9b013 rules: add Solaar rules command to set settings
testing
2022-01-13 18:23:12 -05:00
Peter F. Patel-Schneider
5b1125cd11 cli: refactor config.py to create set(...) function 2022-01-13 18:23:12 -05:00
Peter F. Patel-Schneider
69b411fc27 ui: decrease amount of logging for each debug level 2022-01-13 18:23:12 -05:00
Peter F. Patel-Schneider
629afbd812 ui: use good battery icon down to 30% charge 2022-01-02 15:29:05 -05:00
Peter F. Patel-Schneider
f7a0422956 ui: don't stretch toggles 2021-12-29 09:56:53 -05:00
Peter F. Patel-Schneider
65e64c1346 settings: use key structure for key remapping setting 2021-12-29 09:52:59 -05:00
Peter F. Patel-Schneider
9315b3fcdb receiver: optimize ReprogrammableKey in hidpp20 2021-12-29 09:52:59 -05:00
Peter F. Patel-Schneider
cb14c2eec9 settings: keep track of settings that are absent from device 2021-12-29 06:12:05 -05:00
Peter F. Patel-Schneider
6d3d3e2086 device: add G512 keyboard and G402 mouse 2021-12-28 15:53:23 -05:00
Peter F. Patel-Schneider
85b4495443 device: reformat descriptors.py 2021-12-28 15:53:23 -05:00
Christian Tacke
49e9240be9 ui: Use GtkButton for the Lock Icon
Instead of GtkEventBox use GtkButton for the lock icons.

GtkEventBox does not have any visual feedback that it
actually can be pressed. As in: If you don't know that this
is an area for interaction it is not obvious.

Using Gtk.ReliefStyle.NONE on the GtkButton keeps the old
styling but still gives feedback when hovering over the
buttons.

Co-authored-by: Christian Tacke <8560110+ChristianTacke@users.noreply.github.com>
2021-12-28 12:27:03 -05:00
Peter F. Patel-Schneider
79606c530b receiver: use feature numbers for reprogrammable key versions 2021-12-26 11:21:48 -05:00
Peter F. Patel-Schneider
aa8d2fcac4 ui: don't use new_from_icon_set for tray menu icons as it is deprecated 2021-12-26 10:32:59 -05:00
Peter F. Patel-Schneider
1da6f124a0 docs: update comment about report rate and onboard profiles 2021-12-26 09:51:47 -05:00
Peter F. Patel-Schneider
723959ba1c release 1.1.1 2021-12-25 12:29:15 -05:00
Peter F. Patel-Schneider
fce2a29a50 release: change order of checks in release.sh 2021-12-25 12:29:15 -05:00
Christian Tacke
d9dbf53868 Keep left Tree at Minimal Size
When resizing the window or switching entries in the left
tree, the width of the tree changes and takes more space
than required.

Switch it over to only take the minimal amount of space and
do not extend when resizing the window.
2021-12-25 12:19:29 -05:00
Peter F. Patel-Schneider
2ee04d89fd rules: fix crash in process conditions under non-X11 2021-12-24 21:04:43 -05:00
Peter F. Patel-Schneider
8ab062363e cli: add version to output of solaar show 2021-12-23 14:44:05 -05:00
Peter F. Patel-Schneider
d5a6ef058a device: check for uninitialized protocol when pinging 2021-12-22 21:57:48 -05:00
Peter F. Patel-Schneider
b86af20f67 release 1.1.1rc2 2021-12-21 09:05:04 -05:00
Peter F. Patel-Schneider
174d0388ca ui: display percentage estimates from battery voltage 2021-12-20 11:30:29 -05:00
Peter F. Patel-Schneider
fa83e6ebb8 device: add descriptor for Logitech PRO X Wireless Gaming Headset 2021-12-20 09:17:07 -05:00
Peter F. Patel-Schneider
c005a94a0a release 1.1.1rc1 2021-12-20 08:55:24 -05:00
Muhammad Talal Anwar
d57af51316 Use markdown for changelog and release notes (#1368)
* Use markdown format for changelog and release notes

* Changelog: remove indent for bullet points

* Changelog: use headings for releases

* Release_Notes: use headings

* Release_Notes: use bullet points

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2021-12-20 08:44:51 -05:00
Peter F. Patel-Schneider
b7a1b81181 device: push settings when device requests software reconfiguration 2021-12-20 08:06:03 -05:00
Peter F. Patel-Schneider
3797c3926c settings: fix read for key/button diversion setting 2021-12-20 08:06:03 -05:00
Peter F. Patel-Schneider
95b3bdb402 share: add modalias information for supported Bluetoth hardware 2021-12-18 12:35:44 -05:00
Peter F. Patel-Schneider
560419693b share: add homepage and rating to metainfo 2021-12-18 12:35:44 -05:00
Stephen Kitt
4505524006 share: Add modalias information for supported USB hardware 2021-12-18 12:35:44 -05:00
Peter F. Patel-Schneider
c8ab8b4350 receiver: don't do on-screen notify for wireless device status notifications 2021-12-11 13:41:56 -05:00
Peter F. Patel-Schneider
292461c168 receiver: improve feature notification processing code 2021-12-11 13:41:56 -05:00
xptñ
253cfbacd5 po: update es.pp (#1371)
Fixed some spelling mistakes
2021-12-10 16:30:15 -05:00
Muhammad Talal Anwar
cfe67d4f30 docs: fix typo 2021-12-09 16:59:21 -05:00
Muhammad Talal Anwar
822bb79ac2 Changelog: fix typos 2021-12-09 16:59:21 -05:00
Unknown
306e6da7e9 settings : Smooth scroll for crown
* implemented a switch for swapping between smooth scrolling and ratchet for the crown
settings : Smooth scroll for crown
2021-12-06 12:22:01 -05:00
Peter F. Patel-Schneider
791f19269d settings: add write_prefix_bytes argument to Boolean Validator 2021-12-06 12:22:01 -05:00
OlesyaGerasimenko
8ad648b868 po: Update Russian translation (#1365) 2021-12-06 09:17:12 -05:00
Muhammad Talal Anwar
a45f11fa0c docs: fix table rendering on GitHub Pages
Without any space between the heading and the table, the rendering on GitHub Pages breaks.
2021-12-01 07:51:06 -05:00
Peter F. Patel-Schneider
be2f0b809c receiver: sort receiver list and document status of receiver 0xC542 2021-11-30 13:55:50 -05:00
Peter F. Patel-Schneider
7242f3792c device: add special keys for MX Keys for Business and MX Keys Mini 2021-11-29 19:15:41 -05:00
Peter F. Patel-Schneider
07e55c188a ui: don't include separator after receiver in tray menu 2021-11-29 19:15:41 -05:00
Peter F. Patel-Schneider
c515de9b09 ui: harmonize order of tray items and main window items 2021-11-29 19:15:41 -05:00
Peter F. Patel-Schneider
adae5a2e2b ui: add option to specify use of explict tray icon files and their size 2021-11-29 17:54:31 -05:00
Peter F. Patel-Schneider
f83c927a1e release 1.1.0 2021-11-26 12:20:06 -05:00
Peter F. Patel-Schneider
ca5fd7e5d6 release 1.1.0rc3 2021-11-23 11:52:26 -05:00
Peter F. Patel-Schneider
4c9d9e17d6 gui: fix bug when adding new receiver to tray menu 2021-11-22 11:32:25 -05:00
Peter F. Patel-Schneider
d6b685dd2c po: update headers on ja and nl translations 2021-11-22 11:32:25 -05:00
webolot
65bc7910e5 po: update spanish translation 2021-11-22 11:28:26 -05:00
webolot
c0a264bf81 po: update Catalan translation 2021-11-22 11:28:26 -05:00
Peter F. Patel-Schneider
6dbdd76db2 release 1.1.0rc2 2021-11-21 13:54:05 -05:00
Peter F. Patel-Schneider
025700f1be release 1.1.0rc1 2021-11-21 13:49:26 -05:00
Peter F. Patel-Schneider
d8cce70a0c release 1.1.0rc1 2021-11-21 13:43:42 -05:00
webolot
f16294e5aa added Catalan translation 2021-11-18 08:31:21 -05:00
Peter F. Patel-Schneider
0736dd3164 docs: better information on diverting keys, etc., to trigger rules 2021-11-17 20:16:10 -05:00
Peter F. Patel-Schneider
d80b2b1651 docs: better information on diverting keys, etc., to trigger rules 2021-11-17 17:00:42 -05:00
Francisco Robles Martín
ab76053fb3 docs: provide pointer to autostart desktop file
Signed-off-by: Francisco Robles Martín <f.robles.martin@pm.me>
2021-11-16 13:21:10 -05:00
Łukasz Woźniak
27cda8bf08 settings: add ability to toggle boolean values in solaar config
#1325
2021-11-15 08:50:45 -05:00
Łukasz Woźniak
d33b407ba8 rules: don't select windows with no PID when looking for focus window
\#1322
2021-11-15 08:45:31 -05:00
Peter F. Patel-Schneider
4e8fb93b31 device: catch errors when applying settings 2021-11-11 11:03:30 -05:00
Peter F. Patel-Schneider
5acc216e12 receiver: use Bolt unique ID as serial number 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
4bc3799e96 cli: print Bolt receiver registers in solaar probe 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
c32a6ca91c receiver: get device codename from Bolt receiver registers 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
9823e5ab8a receiver: Bolt connection does not show encryption status 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
603fbe96e0 ui: add pairing for Bolt receivers 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
0aa9f4a22c docs: documentation for Bolt pairing 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
885cefb5b6 cli: add pairing for Bolt receivers 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
886df1daaf receiver: add support for Bolt receiver (no pairing yet) 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
2c3578a776 receiver: move receiver pairing information code from device class to receiver class 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
a96caea5e4 receiver: move receiver codename code from device class to receiver class 2021-11-11 10:48:12 -05:00
Peter F. Patel-Schneider
0df6acd67a ui: better code for adding devices to tray menu 2021-11-09 09:08:16 -05:00
Hugo Osvaldo Barrera
a763be6839 Also drop legacy code from bin/solaar 2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
89d7490bf1 Remove redundant value
Opening read-only is the default.
2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
fdd6229179 Avoid unnecessary list allocation 2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
93c4ebe758 Remove obsolete unicode prefix 2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
6c4e0333d4 Drop legacy Python 2 super() syntax
This is a no-op on Python 3.
2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
cf28308a9f Simplify yield syntax 2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
df83fd655c Stop declaring object as superclass
This syntax was only required on Python 2 and has no effect on Python 3.
2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
d6ba8e0b29 Stop using aliased Exception
IOError is now OSError. The old name is merely a legacy compatibility
alias.
2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
22bf4fafff Drop unnecessary __future__ imports
These are all active by default on all recent Python versions.
2021-10-30 16:49:41 -04:00
Hugo Osvaldo Barrera
b96d16672b Drop obsolete encoding declaration
This was only parsed in Python 2.
Python 3 only supports UTF-8 for source files, and that's what it uses.
2021-10-30 16:49:41 -04:00
Jocelyn Thode
57f0ae2c99 docs: add documentation for the G915 TKL and PRO X Superlight 2021-10-28 12:49:20 -04:00
Jocelyn Thode
8a2d92834f device: add support for the G914 TKL Keyboard 2021-10-28 12:49:20 -04:00
Jocelyn Thode
10d6a98ca1 device: add support for the PRO X Wireless mouse 2021-10-28 12:49:20 -04:00
Jocelyn Thode
138fe4c756 ui: fix device not always castable as bool 2021-10-28 12:49:20 -04:00
Peter F. Patel-Schneider
c1ce3c2c5f listener: ignore many notifications that come to a device listener 2021-10-28 12:49:20 -04:00
Peter F. Patel-Schneider
7873f3e8d0 receiver: handle more device connection protocols 2021-10-28 12:49:20 -04:00
Peter F. Patel-Schneider
37d6cab569 docs: add main window showing double-connected devices 2021-10-28 09:09:24 -04:00
Peter F. Patel-Schneider
45ae63e58d docs: change emojis to text 2021-10-27 15:06:20 -04:00
Peter F. Patel-Schneider
bc2f482300 docs: change device documentation to show less information 2021-10-27 12:17:17 -04:00
Peter F. Patel-Schneider
5480321f49 device: add information for M500S 2021-10-23 23:16:48 -04:00
Peter F. Patel-Schneider
f1d896ded3 settings: use new setting method for MOUSE GESTURE setting 2021-10-22 15:51:55 -04:00
Peter F. Patel-Schneider
2ca0bd9ac3 settings: use new setting method for DPI SLIDING setting 2021-10-22 15:51:55 -04:00
Peter F. Patel-Schneider
14c1eac79c settings: add setting for DPI CHANGE button to switch Sensitivity 2021-10-22 15:51:55 -04:00
Peter F. Patel-Schneider
2de79141e4 i18n: update Spanish translation 2021-10-22 11:05:29 -04:00
Peter F. Patel-Schneider
c763886248 ui: use file names for tray icon to not end up with small icons 2021-10-11 20:45:01 -04:00
Peter F. Patel-Schneider
116adf9959 ui: better computation of tray index when adding devices 2021-10-11 20:42:36 -04:00
Peter F. Patel-Schneider
b3c3ad02c8 doc: more documentation on mouse gestures 2021-10-07 18:47:19 -04:00
Peter F. Patel-Schneider
a89a973419 docs: update implemented feature list 2021-10-03 10:49:01 -04:00
Peter F. Patel-Schneider
cea3b5d5a5 po: update Japanese translation 2021-10-02 09:11:07 -04:00
Matthaiks
81131b90e1 po: update Polish translation
* po: update Polish translation

* po: update Polish translation

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2021-10-01 14:48:39 -04:00
Matthaiks
795b6a35fd po: update Polish translation 2021-10-01 12:37:27 -04:00
Peter F. Patel-Schneider
44f5c9f93f i18n: update Quit and About translations 2021-10-01 12:35:33 -04:00
Peter F. Patel-Schneider
453be19356 ui: make about and quit buttons more translatable 2021-10-01 12:35:33 -04:00
Peter F. Patel-Schneider
0fbeebf121 release 1.0.7 2021-10-01 07:06:28 -04:00
Peter F. Patel-Schneider
79565cb31e i18n: update po files 2021-10-01 07:06:28 -04:00
Peter F. Patel-Schneider
9fca203372 release 1.0.7rc3 2021-09-25 13:54:45 -04:00
Peter F. Patel-Schneider
64d48a19a7 docs: upgrade pairing/unpairing documentation 2021-09-25 13:47:47 -04:00
Peter F. Patel-Schneider
1d73217ad2 receiver: mark Nano receiver C52F as not unpairing 2021-09-25 13:47:47 -04:00
Peter F. Patel-Schneider
585a3b901a receiver: lock on actual handle, not just on handle number 2021-09-24 21:55:15 -04:00
Peter F. Patel-Schneider
0d9fe48b0c listener: handle fake Nano connection notifications 2021-09-24 21:55:15 -04:00
Peter F. Patel-Schneider
a9adc06b7a ui: correctly determine setting box in change_click method 2021-09-24 10:17:59 -04:00
Ryunosuke Toda
64062a456f Update Japanese translation 2021-09-23 16:03:49 -04:00
Peter F. Patel-Schneider
27f6d6c76b settings: don't use time_ns so as not to require Python 3.7 2021-09-23 13:13:18 -04:00
Peter F. Patel-Schneider
e82457f284 release 1.0.7rc2 2021-09-14 15:50:34 -04:00
Peter F. Patel-Schneider
6d56dd538e release 1.0.7rc1 2021-09-14 15:44:36 -04:00
Peter F. Patel-Schneider
5488593caa doc: update installation instructions to mention Python versions 2021-09-14 11:51:48 -04:00
Peter F. Patel-Schneider
338a2687d3 device: don't signal status change when battery changes from None to None 2021-09-14 11:51:48 -04:00
Peter F. Patel-Schneider
83f79c55f1 doc: add paragraph on old versions to index.md 2021-09-06 16:38:37 -04:00
toda-ryunosuke
2daef846e3 Add Japanese translation 2021-09-04 18:25:36 -04:00
Peter F. Patel-Schneider
c5ef207961 device: use first word of name for code name if friendly name not available 2021-08-31 19:05:57 -04:00
Peter F. Patel-Schneider
c02a1b820b device: pass protocol to base request so that SW ID can be done right 2021-08-31 19:05:57 -04:00
Peter F. Patel-Schneider
a7ddb3efdd cli: allow for new_fn_inversion call to fail 2021-08-31 19:05:57 -04:00
Peter F. Patel-Schneider
2f870fe0f7 device: allow for None reponse from kind request 2021-08-31 19:05:57 -04:00
kkrentz
3ef5e63cd4 Fix "'int' object is not subscriptable" on G613 2021-08-30 20:23:10 -04:00
Peter F. Patel-Schneider
b94ae51ac8 rules: consistent naming for HID++ Diversion settings 2021-08-27 06:18:13 -04:00
Jose Riha
3f33d0633a Add Slovak translation 2021-08-24 05:17:22 -04:00
ifurther
dcafaf18e2 po/i18n: update zh_TW translation 2021-08-22 14:56:43 -04:00
Peter F. Patel-Schneider
67e40b35e8 device: add G102 mouse 2021-08-22 11:16:41 -04:00
Peter F. Patel-Schneider
30f56a1c0f device: use 0xFF instead of 0 for direct-connected devices 2021-08-22 11:16:41 -04:00
Vinícius
4b97ebd649 po/i18n: update pt_BR translation 2021-08-20 18:44:04 -04:00
Peter F. Patel-Schneider
c2de1b59ef ui: use logging for signalling unfound udev rule 2021-08-18 10:01:22 -04:00
Peter F. Patel-Schneider
4e76c99e0f hid: add debug message when potential device found 2021-08-18 09:40:23 -04:00
Matthaiks
42b83ecce8 po: update Polish translation (#1222)
* po: update Polish translation

* po: update Polish translation

* po: update Polish translation

Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2021-08-06 21:09:38 -04:00
Peter F. Patel-Schneider
14c2ac6959 po: make common button names translatable and show translations 2021-08-06 18:30:52 -04:00
Peter F. Patel-Schneider
a1874c572b i18n: mark more strings as translatable 2021-08-06 13:41:22 -04:00
Peter F. Patel-Schneider
ee4275f45c gtk: add new possible locations for udev rule 2021-08-06 13:41:22 -04:00
Peter F. Patel-Schneider
70a0fcd906 cli: show battery information under unified battery feature 2021-08-05 16:37:28 -04:00
Peter F. Patel-Schneider
18d79f8dd4 docs: mention that Solaar is available in Fedorals 2021-08-05 16:37:28 -04:00
Peter F. Patel-Schneider
cdc7a27c9e rules: add rule condition for process under mouse 2021-07-22 10:46:31 -04:00
Peter F. Patel-Schneider
39a5350f30 settings: add binary read prefix to handle fancy fn-swap setting 2021-07-20 09:59:37 -04:00
Peter F. Patel-Schneider
538ab9c947 receiver: serialize requests per handle so that threads do not receive response for a different request 2021-07-17 13:58:20 -04:00
Peter F. Patel-Schneider
d898edc4a3 notifications: downgrade unknown notifications warnings to info messages 2021-07-15 10:31:38 -04:00
Peter F. Patel-Schneider
ed0b730e74 device: fix bug with timeout when setting reprog keys 2021-07-15 10:21:03 -04:00
Peter F. Patel-Schneider
50392da360 rules: add checks for empty process name and class 2021-07-15 10:16:16 -04:00
Karthik Nishanth
85a86ec3c5 diversion: implement pressed and released action on Key condition (#1189)
- Track `key_up` key in addition to `key_down`
- Support `pressed` or `released` action in `Key` condition
- Add radio button to KeyUI to represent `pressed` or `released`
2021-07-12 15:51:57 -04:00
Peter F. Patel-Schneider
6290c84efd rules: upgrade rule execution debug message to info message 2021-07-04 22:10:45 -04:00
Peter F. Patel-Schneider
dbdbbf7fb3 docs: fix pointer to Solaar logo 2021-07-04 10:13:44 -04:00
Peter F. Patel-Schneider
3d65a77515 misc: better error message for missing gi package 2021-07-04 10:13:44 -04:00
Peter F. Patel-Schneider
e15ce68498 rules: process old mouse movement tests as MouseGesture conditions 2021-07-04 09:38:29 -04:00
ApeironTsuka
011f3f556b rules: allow sequence of mouse moves as mouse gestures
* Add more robust mouse gesture support
- Remove existing mouse-* Test types
- Add new 'Mouse Gesture' Condition
- Implement Rule Editor UI for it
- Add support for diverted buttons
- Added diagonal mouse gesture directions

Allows you to chain multiple movements/buttons (for instance, moving the mouse up and then left) together into a single mappable gesture.

* Update docs

* Cleanup
Fix inconsistent indenting
Fix possible overwriting of built-in
Fix 'Mouse Gesture' Condition rule not starting with an initial Action field

* Make flake8 happy

* yapf

* Document no-op and make it more apparent

* Make changes to Mouse Gesture UI suggested/submitted by viniciusbm.

Co-authored-by: Apeiron <apeiron@none>
Co-authored-by: Peter F. Patel-Schneider <pfpschneider@gmail.com>
2021-07-04 08:52:38 -04:00
Peter F. Patel-Schneider
8854ca6f23 docs: update advice on kernel versions 2021-06-15 19:03:43 -04:00
Peter F. Patel-Schneider
4690ca77c4 settings: fix fake divert gkeys read to return byte string 2021-06-15 19:03:43 -04:00
Robert Birkelbach
d172d27408 Support logitech g pro x superlight
The title speaks for itself: Add support for the g pro x superlight.
2021-06-08 12:09:30 -04:00
Peter F. Patel-Schneider
67dbe5f4c8 device: convert HID++ 2.0 device kinds to enhanced HID++ 1.0 kinds 2021-06-04 08:59:39 -04:00
Peter F. Patel-Schneider
5aedbad692 docs: update Solaar version in bug report template 2021-05-29 20:33:27 -04:00
Peter F. Patel-Schneider
9495cc03c2 misc: update about window 2021-04-25 14:48:28 -04:00
Peter F. Patel-Schneider
9deb7d66aa misc: update about window 2021-04-25 09:14:59 -04:00
Peter F. Patel-Schneider
c67bd32522 release 1.0.6 2021-04-25 09:07:58 -04:00
Peter F. Patel-Schneider
ce98e89427 release 1.0.6rc2 2021-04-25 09:03:36 -04:00
Peter F. Patel-Schneider
72b37deb52 release 1.0.6rc2 2021-04-25 08:59:59 -04:00
Peter F. Patel-Schneider
0cfb9b8896 misc: tell issue reporters to look in known issues first 2021-04-23 13:21:04 -04:00
Peter F. Patel-Schneider
51c6b6f2de misc: update long description to add pointer to installation instructions 2021-04-21 14:26:31 -04:00
Peter F. Patel-Schneider
1c1be84e59 device: downgrade warning about removing missing notification handler to info message 2021-04-21 13:55:58 -04:00
Peter F. Patel-Schneider
4edbf51f17 ui: better message for missing udev file 2021-04-21 08:53:41 -04:00
Peter F. Patel-Schneider
98b5804a21 rules: turn several log messages from INFO to DEBUG 2021-04-20 07:58:41 -04:00
Peter F. Patel-Schneider
d3799dcf41 docs: minor updates and cleanup 2021-04-18 11:13:50 -04:00
Peter F. Patel-Schneider
44b1b5b6d0 misc: update release.sh 2021-04-18 08:06:25 -04:00
Peter F. Patel-Schneider
f5fac6f713 release 1.0.6rc1 2021-04-18 07:46:03 -04:00
Peter F. Patel-Schneider
be143992ff po: update German translation 2021-04-18 07:36:29 -04:00
Peter F. Patel-Schneider
086a8252d2 docs: add new settings and rule example 2021-04-18 07:36:29 -04:00
Peter F. Patel-Schneider
39beaf8b3a docs: document new version of sliding DPI 2021-04-18 07:36:29 -04:00
Peter F. Patel-Schneider
3969472dd3 settings: dpi sliding looks for suitable key 2021-04-18 07:36:29 -04:00
Peter F. Patel-Schneider
90bae7db84 settings: only produce warning if can't turn off DPI sliding 2021-04-18 07:36:29 -04:00
Peter F. Patel-Schneider
a734a35b7e rules: add a mouse-noop test for mouse gesture with little movement 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
64915b09f7 docs: update description of mouse gestures setting 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
7add22e861 settings: don't halt when trying to write invalid map choice 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
75fec689a0 settings: change name of App Switch Button 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
5d885f76e7 settings: show potential triggering keys for mouse gesture setting 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
42624c7102 ui: write persisted value when changing from ignoring a setting 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
087b99a2de settings: use keys interface in divert_keys setting 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
b3a6dc5b2e ui: update map all settings that are not None 2021-04-17 10:32:24 -04:00
Peter F. Patel-Schneider
95dafbe3aa settings: fix return value for mouse gesture callback 2021-04-15 17:00:29 -04:00
Peter F. Patel-Schneider
a1dc69d203 ui: make ignore settings not sensitive at startup 2021-04-13 13:27:59 -04:00
Peter F. Patel-Schneider
e32cf61fa8 docs: document sliding dpi and mouse gestures 2021-04-13 09:26:24 -04:00
Peter F. Patel-Schneider
f7488f67c1 settings: add mouse gesture handling 2021-04-13 09:26:24 -04:00
Peter F. Patel-Schneider
6c62f975d0 ui: directly connected devices don't need to support connection notifications 2021-04-12 23:21:22 -04:00
Peter F. Patel-Schneider
62034758f0 ui: check that receivers support connection nofications 2021-04-12 22:32:11 -04:00
Peter F. Patel-Schneider
e66a83aa36 docs: sudo should not be used to run Solaar 2021-04-12 19:05:11 -04:00
Peter F. Patel-Schneider
a288caa7ee settings: fix typo 2021-04-12 08:08:31 -04:00
Peter F. Patel-Schneider
5be7541875 settings: for polling rate setting only change profiles mode when actually writing 2021-04-12 08:04:41 -04:00
Peter F. Patel-Schneider
33a4bf8bf5 ui: read current value of setting when switching away from ignore 2021-04-12 07:39:35 -04:00
Peter F. Patel-Schneider
b2970186df docs: describe setting ignoring and add note about drivers and scroll wheel resolution 2021-04-12 07:39:35 -04:00
Peter F. Patel-Schneider
52fcbe3b48 settings: restore _feature_hires_smooth_resolution 2021-04-12 07:39:35 -04:00
Peter F. Patel-Schneider
b34061c766 ui: add ability to ignore a Solaar setting 2021-04-12 07:39:35 -04:00
Peter F. Patel-Schneider
2ce8a3b249 docs: describe how to install a system tray for Gnome 2021-04-09 09:39:30 -04:00
Peter F. Patel-Schneider
8c5800e536 receiver: use symbolic identifiers for sub-registers 2021-04-09 07:46:10 -04:00
gogogogi
804ba267f6 device: add G700 wired support 2021-04-09 07:43:54 -04:00
Peter F. Patel-Schneider
6099df1b42 ui: do not set attention icon - gets around bug in XFCE 16 2021-04-09 07:28:23 -04:00
Peter F. Patel-Schneider
fc1e38d196 docs: add note that some system tray implementations might not set up icons correctly 2021-04-09 07:28:23 -04:00
Peter F. Patel-Schneider
55ed173c39 ui: replace deprecated GTK stock values 2021-04-09 07:28:23 -04:00
Peter F. Patel-Schneider
593d27770d ui: only use first element of theme path for appindicator extra path 2021-04-09 07:28:23 -04:00
Peter F. Patel-Schneider
0dbb93e6a5 ui: only prepend one icon path to theme search paths 2021-04-09 07:28:23 -04:00
Peter F. Patel-Schneider
68049efc41 ui: better handling of tray icons 2021-04-09 07:28:23 -04:00
Peter F. Patel-Schneider
1d18e4d8f7 receiver: receiver c52e does not unpair 2021-04-09 07:24:11 -04:00
SiDevesh
d3a18bb85f rules: match WM_CLASS also for process matching in rules 2021-04-08 15:01:50 -04:00
Peter F. Patel-Schneider
1cb8f0c874 ui: correctly set icon theme value when regular battery icons are missiong 2021-04-07 19:59:25 -04:00
Peter F. Patel-Schneider
7e360e4416 settings: remove _feature_hires_smooth_resolution as recent Linux input drivers depend on it not changing 2021-04-04 22:36:54 -04:00
Peter F. Patel-Schneider
9842972d8b receiver: handle exception when device is not available while being added 2021-04-04 22:33:38 -04:00
Peter F. Patel-Schneider
a4b54df433 device: fix debug message error 2021-04-02 10:25:01 -04:00
Peter F. Patel-Schneider
6ed09d0643 listener: perform initial activation of devices in listener threads
listener: perform initial activation of devices in listener threads
2021-03-30 08:36:37 -04:00
Peter F. Patel-Schneider
1bd68177ab configure: keep track of serial numbers in configuration file 2021-03-30 08:36:37 -04:00
Peter F. Patel-Schneider
985ebd46cd device: check device is active before performing request and don't replace empty settings 2021-03-30 08:36:37 -04:00
Peter F. Patel-Schneider
3fb197b78c device: set host names longer than 14 bytes 2021-03-29 11:43:30 -04:00
Peter F. Patel-Schneider
cb67897d15 device: set current host name if not current host 2021-03-29 11:43:30 -04:00
Peter F. Patel-Schneider
533cd54b92 settings: add setting for SMART SHIFT ENHANCED feature 2021-03-26 15:55:59 -04:00
Peter F. Patel-Schneider
a658f2e2b0 device: add names for 2250 and 2251 features 2021-03-26 15:55:59 -04:00
Peter F. Patel-Schneider
5aa45a78c3 docs: update package dependencies 2021-03-23 22:31:04 -04:00
Peter F. Patel-Schneider
689d57d097 device: don't always use long messages for protocol 1.0 2021-03-22 08:35:34 -04:00
Peter F. Patel-Schneider
dc3f70ff86 cli: use 1-origin addressing when selecting from choices in config 2021-03-18 09:57:03 -04:00
Peter F. Patel-Schneider
58f1a142ec cli: fix config check against choices 2021-03-18 09:57:03 -04:00
Peter F. Patel-Schneider
10233dac30 settings: add quirk to not set up host mode on G915 TKL keyboard 2021-03-07 22:02:49 -05:00
Peter F. Patel-Schneider
ec9ac9c920 docs: put show output in a details block in issue templates 2021-03-06 07:39:04 -05:00
Peter F. Patel-Schneider
5642a658ab cli: print settings saved in config file in show command 2021-03-06 07:39:04 -05:00
Peter F. Patel-Schneider
08d571aea9 docs: add notes about different settings on different computers 2021-03-05 07:31:13 -05:00
Peter F. Patel-Schneider
3cd76aa191 tools: fix up call to udev matching in hidconsole 2021-03-02 19:02:08 -05:00
daviddavid
3d3d0d4ccc Update French translation for 1.0.5 release
- by David Geiger <david.david@mageialinux-online.org>
2021-02-27 10:25:45 -05:00
Peter F. Patel-Schneider
83f45218de release 1.0.5 2021-02-27 09:03:29 -05:00
Peter F. Patel-Schneider
69df28c155 docs: update docs - remembering settings, point to github docs 2021-02-21 14:02:48 -05:00
Peter F. Patel-Schneider
babdb44b4f cli: fix up help messages for selecting devices and receivers for CLI commands 2021-02-21 13:23:33 -05:00
Peter F. Patel-Schneider
daee35de4a cli: fix bug in finding receiver to pair 2021-02-21 06:30:32 -05:00
Peter F. Patel-Schneider
8d01e28138 release 1.0.5rc2 2021-02-18 15:04:18 -05:00
Peter F. Patel-Schneider
04d79810d4 cli: set keyed settings with config 2021-02-18 11:02:57 -05:00
Matthaiks
6fa1bfd044 po: Update translation for Polish 2021-02-17 16:16:52 -05:00
Leonardo Gates
c1a79a49f8 settings: implement polling rate 2021-02-17 07:58:30 -05:00
Peter F. Patel-Schneider
04775a3719 device: use long messages for all 2.0 requests 2021-02-16 20:20:33 -05:00
Peter F. Patel-Schneider
20f16e8e10 i18n: update german and italian translations 2021-02-16 20:14:37 -05:00
Peter F. Patel-Schneider
eb0d939d1a cli: don't select unpaired device for config command 2021-02-16 08:25:46 -05:00
Peter F. Patel-Schneider
4b52b77348 cli: add device name to output when changing settings using config command 2021-02-16 08:25:46 -05:00
Equidamoid
8fccd84345 Log real exception when can't use Xorg API (#1066)
* fix: log real exception when can't use Xorg API

* chore: make linter happy
2021-02-08 18:55:10 -05:00
Alexander Huck
2ea92db3ca remove trailing whitespace 2021-02-01 12:54:32 -05:00
Alexander Huck
205047e278 Update about.py 2021-02-01 12:54:32 -05:00
Alexander Huck
c268ff7a45 Update about.py to bump copyright years
Update Copyright Timeframe
2021-02-01 12:54:32 -05:00
Peter F. Patel-Schneider
7dbf92955e doc: remove packages that no longer exist 2021-01-27 11:43:33 -05:00
Peter F. Patel-Schneider
82a41bf46b device: show remaining pairings in show 2021-01-27 11:35:11 -05:00
daviddavid
1de3b2e472 Update French translation for 1.0.4 release
- by David Geiger <david.david@mageialinux-online.org>
2021-01-23 11:44:50 -05:00
Heimen Stoffels
f6b76900d9 Updated Dutch translation 2021-01-15 17:40:13 -05:00
Peter F. Patel-Schneider
1c6f289d91 ui: add option to not use battery icons for tray icon 2021-01-04 09:53:46 -05:00
Matthaiks
ca0e2a0a3f po: Update translation for Polish
Version 1.0.4
2021-01-04 09:53:09 -05:00
Peter F. Patel-Schneider
111f2be5c8 device: defense against missing devices 2021-01-03 16:01:59 -05:00
Marián Kyral
f68a831c81 Add Czech translation 2020-12-30 12:22:09 -05:00
Marián Kyral
b722eccf04 Fix typo 2020-12-30 12:22:09 -05:00
Peter F. Patel-Schneider
53b7c63680 docs: remove pointer to SUSE package as it is very old 2020-12-27 07:08:39 -05:00
Vinícius
aa4456e9dc receiver: changing duplicate label of GESTURE 2 options 2020-12-17 12:18:22 -05:00
Ricardo Mones
8d657f891a Update es.po
Hi, I'm using 1.0.4 in Debian testing and Spanish translation lacks a lot of strings, here it is an updated file.
2020-12-15 06:39:33 -05:00
Peter F. Patel-Schneider
a688bfd9ec settings: add setting to divert G keys and handle in rules 2020-12-13 22:24:08 -05:00
Dominik 'Rathann' Mierzejewski
a47f3fa5d1 fix metainfo file location
Rename the file to match the <id> tag inside the file.

Install the file in correct location.

This fixes #1025 .
2020-12-04 10:07:38 -05:00
Peter F. Patel-Schneider
69f889e33f rules: only activate rules if X11 is running 2020-12-02 10:10:47 -05:00
Peter F. Patel-Schneider
52049af8e1 receiver: add remote device type 2020-11-30 08:18:09 -05:00
Peter F. Patel-Schneider
7d0402a97f rules: only use X11 code when X11 is available 2020-11-28 09:41:59 -05:00
Peter F. Patel-Schneider
0427e5607e settings: correctly handle diversions when key has other flags set 2020-11-27 17:38:38 -05:00
Peter F. Patel-Schneider
419a7722ad rules: make rule processing conditional on X11 being available 2020-11-27 10:48:16 -05:00
Peter F. Patel-Schneider
60afd53257 device: fix short name for MX Keys keyboard 2020-11-27 10:48:16 -05:00
Peter F. Patel-Schneider
a99a5a544e rules: fix syntax in MouseClick 2020-11-27 10:12:21 -05:00
Peter F. Patel-Schneider
244d48d245 rules: remove use of pynput 2020-11-27 10:12:21 -05:00
Peter F. Patel-Schneider
808a719823 device: push device settings when device is active after suspend 2020-11-27 10:02:46 -05:00
Bruno Mello
56db8fbdf9 Update installation.md
Fix spelling of python psutil package
2020-11-23 18:12:18 -05:00
Peter F. Patel-Schneider
0af12fbf2e docs: mention GUI editor for notification rules 2020-11-21 12:44:50 -05:00
Peter F. Patel-Schneider
646151ae61 receiver: reduce unnecessary writes of config file 2020-11-21 12:34:13 -05:00
Peter F. Patel-Schneider
66138ad7c0 docs: add instructions on Python development package 2020-11-21 12:32:33 -05:00
Peter F. Patel-Schneider
d81a971455 cli: don't show devices as receivers 2020-11-21 12:32:33 -05:00
Peter F. Patel-Schneider
66f3d5d02b receiver: gracefully handle more receiver and device disconnects 2020-11-21 12:32:33 -05:00
Peter F. Patel-Schneider
6b8e7a2d9c ui: only emit warning on path mismatch between device and recevier in main window 2020-11-21 12:32:33 -05:00
Peter F. Patel-Schneider
504d23fab7 ui: only emit warning when updating tray for inactive device 2020-11-21 12:32:33 -05:00
Vinícius
52109ade91 ui: ignore Ctrl+Delete shortcut if root is selected 2020-11-21 12:23:41 -05:00
Vinícius
daafe5ebca ui: don't offer to delete/cut root element and don't offer to paste non-Rule at the top level 2020-11-21 12:23:41 -05:00
Vinícius
8be0e21ac7 ui: delete method that is no longer used 2020-11-21 12:23:41 -05:00
Vinícius
9c04bfad92 ui: fixed unnecessary dialogue when window is closed after discarding changes 2020-11-21 12:23:41 -05:00
Vinícius
4025b83dfd ui: add icons to rule editor buttons and implement Ctrl+S shortcut 2020-11-21 12:23:41 -05:00
Vinícius
bc51117f59 ui: use readable names on the left column of rule editor 2020-11-21 12:23:41 -05:00
Vinícius
a8819b06c8 ui: make KeyPress entry larger (relative to window size) 2020-11-21 12:23:41 -05:00
Vinícius
6f973cdc27 ui: fix bug that prevented copying from a built-in rule for the first time 2020-11-21 12:23:41 -05:00
Vinícius
b548d05cad ui: change diversion editor window title and button label 2020-11-21 12:23:41 -05:00
Vinícius
ef3d3e5290 ui: fix feature entry bug when feature is not on the list 2020-11-21 12:23:41 -05:00
Vinícius
487e1a3ded ui: show Feature completion matches for all features 2020-11-21 12:23:41 -05:00
Vinícius
4206d370f1 ui: add delete button for every Execute argument 2020-11-21 12:23:41 -05:00
Vinícius
29ccd55210 ui: improve validation of FeatureUI and KeyUI diversion rule components 2020-11-21 12:23:41 -05:00
Vinícius
b399380445 ui: diversion rule editor - move save and discard buttons to the top 2020-11-21 12:23:41 -05:00
Vinícius
1d68ef858e ui: make rule editing buttons larger and add delete buttons for KeyPress. 2020-11-21 12:23:41 -05:00
Vinícius
717213c506 ui: move diversion button to the right 2020-11-21 12:23:41 -05:00
Vinícius
0b5c263799 receiver: fix and improve diversion load/save functions 2020-11-21 12:23:41 -05:00
Vinícius
1379da70a8 ui: add GUI for diversion rules (draft) 2020-11-21 12:23:41 -05:00
Peter F. Patel-Schneider
f42ff35f24 doc: add app metainfo file 2020-11-17 17:24:47 -05:00
Peter F. Patel-Schneider
3d8c9272fb install: update and document new dependencies 2020-11-17 17:07:32 -05:00
Vinícius
381371c899 receiver: add MouseClick diversion rule 2020-11-14 10:38:01 -05:00
Peter F. Patel-Schneider
be590c154a docs: add documentation for rules processing and change name of rules file 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
30e4324906 receiver: associate source file with top-level rules 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
545db1f641 receiver: add named tests for hires and lowres wheels 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
5e2b2b6647 device: add quirk for WPID 4055 in button diversion 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
f3a276d7a3 receiver: add rule-based processing of diverted features 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
02a7d8cadd util: allow accessing NamedInts by readable name 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
4da7feec3b receiver: regularize capitalization of Logitech CONTROL key names 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
f75c9845d2 settings: add setting for diverting keys 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
b947dd4896 settings: add crown diversion setting 2020-11-13 08:46:04 -05:00
Peter F. Patel-Schneider
ade9c816c7 receiver: add report_id to notifications and use where appropriate 2020-11-13 08:46:04 -05:00
Vinícius
8141fafb4b ui: create attributes to access children in settings with multiple items 2020-11-02 09:28:12 -05:00
Peter F. Patel-Schneider
79b18d07c9 cli: fix bug in probe 2020-11-02 09:15:43 -05:00
Peter F. Patel-Schneider
d92939135f device: warn when feature notifiation comes in before device fully set up 2020-11-02 08:27:08 -05:00
Peter F. Patel-Schneider
733bf913e6 device: implement UNIFIED_BATTERY feature
device: implement UNIFIED_BATTERY feature
2020-11-02 08:27:08 -05:00
Peter F. Patel-Schneider
1162ccb897 device: be defensive when getting device id 2020-11-01 15:14:18 -05:00
Peter F. Patel-Schneider
73ddb12d8e docs: fix typos in devices.md 2020-10-28 12:41:04 -04:00
Peter F. Patel-Schneider
93b5a0008b ui: add lock icon to control whether setting can be changed 2020-10-25 14:13:58 -04:00
Wojciech Nawrocki
847205eb06 settings_templates: typo
Oops!
2020-10-25 14:03:05 -04:00
Antony Kellermann
98b4aff33d Fix warning 2020-10-25 14:02:25 -04:00
Peter F. Patel-Schneider
a4e4c160c1 release 1.0.4 2020-10-22 10:02:24 -04:00
Peter F. Patel-Schneider
b97c83be97 po: update pt_BR translation 2020-10-22 10:02:24 -04:00
Peter F. Patel-Schneider
2e4e0a0676 release: fix ChangeLog 2020-10-12 08:35:02 -04:00
Peter F. Patel-Schneider
93fe73214c release 1.0.4rc1 2020-10-12 08:25:35 -04:00
Peter F. Patel-Schneider
4ca2496a6f docs: update devices.md for USB and BT devices 2020-10-12 08:05:13 -04:00
Peter F. Patel-Schneider
b19006104f device: support unknown USB-connected and Bluetooth devices 2020-10-12 08:05:13 -04:00
Peter F. Patel-Schneider
dba9d472a8 hidapi: fix bug in processing of serial numbers 2020-10-07 15:18:28 -04:00
Peter F. Patel-Schneider
7a7aad8977 device: use FRIENDLY NAME for codename if needed and available 2020-10-07 05:30:34 -04:00
Olivier Dormond
254e2cb77e device: add BT information for MX Keys 2020-10-03 09:10:59 -04:00
Peter F. Patel-Schneider
fdb1b43373 device: add USB information for G700s 2020-10-01 17:45:49 -04:00
Peter F. Patel-Schneider
a9d6b4c319 listener: make sure device has a status before processing notifications 2020-10-01 17:45:49 -04:00
Peter F. Patel-Schneider
7908a4f5a4 ui: ensure that Gtk 3.0 is the version loaded 2020-10-01 17:45:49 -04:00
Peter F. Patel-Schneider
757c731610 device: show DPI values, not slider, in sliding notification 2020-10-01 12:48:11 -04:00
Peter F. Patel-Schneider
612e8fb4f7 device: store sliding DPI value in persister and respect changes in regular DPI setting 2020-10-01 12:48:11 -04:00
Peter F. Patel-Schneider
3effccf390 docs: update for USB and Bluetooth 2020-09-29 11:26:34 -04:00
Peter F. Patel-Schneider
84e0e74709 device: add BT IDs for MX Master and MX Master 2S 2020-09-29 11:26:34 -04:00
Peter F. Patel-Schneider
ec8a51d353 udev: get manufacturer and product from HID_ID 2020-09-29 11:26:34 -04:00
Peter F. Patel-Schneider
3b6a4ed0ed receiver: put USB and BT identifiers in descriptors.py 2020-09-29 11:26:34 -04:00
Peter F. Patel-Schneider
815c9755b5 receiver: handle bluetooth-connected devices 2020-09-29 11:26:34 -04:00
Peter F. Patel-Schneider
1e7050595e receiver: add model and node ID and use in configurations 2020-09-29 11:26:34 -04:00
Peter F. Patel-Schneider
fc59c0fbf6 device: only look up feature notifications in SLIDING DPI setting 2020-09-28 14:47:43 -04:00
Peter F. Patel-Schneider
4874d72c16 receiver: fix bug in debug message 2020-09-28 14:47:43 -04:00
Peter F. Patel-Schneider
e6cfd0a0c1 device: increase speed for DPI sliding 2020-09-28 12:59:04 -04:00
Peter F. Patel-Schneider
ebf7984ad0 device: determine SLIDING DPI suitability based on device features 2020-09-28 12:59:04 -04:00
Peter F. Patel-Schneider
2654b6bbe0 ui: add forced-refresh argument to window update 2020-09-28 12:59:04 -04:00
Wojciech Nawrocki
9f7c7209fe device: support DPI sliding with two slots on MX Vertical mouse
Reimplements the entire behaviour of Logitech's software for this
mouse on Windows.
2020-09-28 12:59:04 -04:00
Wojciech Nawrocki
41fb08c059 notify: allow displaying progress 2020-09-28 12:59:04 -04:00
Wojciech Nawrocki
362d43a7a1 backend: allow device objects to handle notifications 2020-09-28 12:59:04 -04:00
Peter F. Patel-Schneider
0259e44c31 cli: ignore DJ pairing notifications in CLI pair command 2020-09-24 18:22:35 -04:00
Peter F. Patel-Schneider
df8b6b488c receiver: add USB information for MX Vertical when wired 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
825b7b6f34 udev: add permissions for any Logitech device 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
b1d4b2f3cd receiver: add model and node ID and use in configurations 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
58823763ea ui: handle wired devices 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
aeb8588e06 cli: make probe and config work for wired devices 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
ebfd26b3d0 receiver: add USB information for G502 Hero when wired 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
95a30a8089 cli: add extra information about features to show command output 2020-09-23 18:03:47 -04:00
Peter F. Patel-Schneider
dca6b4ba38 ui: show all host choices 2020-09-21 08:57:47 -04:00
Peter F. Patel-Schneider
b1706fa9e2 ui: don't show unpaired host choices 2020-09-21 07:44:55 -04:00
Peter F. Patel-Schneider
ff5d744183 ui: improve display strings and ordering for settings 2020-09-21 07:44:55 -04:00
Peter F. Patel-Schneider
377e44c624 ui: add separator before device settings 2020-09-21 07:44:55 -04:00
Peter F. Patel-Schneider
6e986ddf8c docs: add missing word in index.md 2020-09-18 05:49:43 -04:00
Peter F. Patel-Schneider
714f8782b3 cli: reduce chance of connect notifications clashing when pairing 2020-09-18 05:49:43 -04:00
Peter F. Patel-Schneider
ad57db4a39 receiver: permit connection notifications that are not unifying 2020-09-18 05:49:43 -04:00
Peter F. Patel-Schneider
8b5d56feb4 device: if hidraw node is not available wait and try a second time 2020-09-18 05:49:43 -04:00
Peter F. Patel-Schneider
2153035c30 ui: add device path to information panel for non-receivers 2020-09-18 05:49:43 -04:00
Peter F. Patel-Schneider
dbf6226f77 receiver: update strings for several settings 2020-09-18 05:49:43 -04:00
Alex Cherkayev
7a82b93aaf udev: add function to get wpid from udev
base: make workaround flag name more generic
descriptors: fix wpid's for 27Mhz devices
device: Improve wpid and kind processing for 27Mhz devices
notifications: Improve wpid generation for 27Mhz devices
docs: fix wpid's for EX100
2020-09-07 11:43:25 -04:00
Ali Sabzevari
9de4d392d4 Fix broken link to about website 2020-09-04 14:39:25 -04:00
Peter F. Patel-Schneider
b0297694d1 receiver: remove spurious part of special handling for ex100 receiver 2020-09-01 23:13:49 -04:00
Vinícius
7fdba7fe75 ui: disabled ListBoxRow background colour on hover 2020-09-01 18:38:00 -04:00
Vinícius
9f330479c1 docs: filled information about GESTURE2 and some supported devices 2020-09-01 18:38:00 -04:00
Vinícius
36e8dcb396 descriptors: added GESTURE2 to known supported devices 2020-09-01 18:38:00 -04:00
Vinícius
708edbc444 ui: make collapsible sections start collapsed 2020-09-01 18:38:00 -04:00
Vinícius
d87bc594f4 ui: fixed vertical alignment of panel after collapsing widgets 2020-09-01 18:38:00 -04:00
Vinícius
7a65c40312 ui: removed GESTURE2 specs from the panel 2020-09-01 18:38:00 -04:00
Vinícius
6994e1e41c receiver/ui: added labels and tooltips to some settings 2020-09-01 18:38:00 -04:00
Vinícius
1ce67954cb receiver: fixed number of spec "field widths" 2020-09-01 18:38:00 -04:00
Vinícius
1e8956ff96 ui: fixed horizontal alignment and size of multiple toggle/range widgets 2020-09-01 18:38:00 -04:00
Vinícius
c8fe87ee2d receiver: implementation of GESTURE 2 params; improved UI for multiple toggle 2020-09-01 18:38:00 -04:00
Vinícius
aa067b2774 receiver: show GESTURE2 specs on the panel 2020-09-01 18:38:00 -04:00
Vinícius
b3751913b2 receiver: read GESTURE2 param defaults 2020-09-01 18:38:00 -04:00
Vinícius
09394cfbf5 receiver: support GESTURE2 specs 2020-09-01 18:38:00 -04:00
Vinícius
7498febc3a receiver: GESTURE 2 also applies to mice 2020-09-01 18:38:00 -04:00
Vinícius
4a5c0ea523 receiver: initial implementation of boolean GESTURE 2 settings 2020-09-01 18:38:00 -04:00
Peter F. Patel-Schneider
633760e261 receiver: add initial support for GESTURE_2 2020-09-01 18:38:00 -04:00
Peter F. Patel-Schneider
68aebc8c1b cli: slight improvement to probe 2020-09-01 18:35:31 -04:00
Peter F. Patel-Schneider
831287ead6 cli: add full register dump for probe 2020-09-01 18:04:24 -04:00
Peter F. Patel-Schneider
1bba8b26de cli: fix bug in probe.py 2020-08-29 13:38:11 -04:00
Peter F. Patel-Schneider
718c2d4039 receiver: simplify settings interface 2020-08-28 08:41:14 -04:00
Peter F. Patel-Schneider
1516daa6d0 listener: fix misleading connection log message 2020-08-27 08:27:58 -04:00
Peter F. Patel-Schneider
4df84107e1 receiver: don't emit warning for battery status notifications 2020-08-27 05:22:03 -04:00
Peter F. Patel-Schneider
3e4c09380a receiver: be extra cautious when writing key-value pairs for settings 2020-08-27 05:22:03 -04:00
Peter F. Patel-Schneider
e6947d95d8 receiver: use DJ connection notifications to set device active status 2020-08-27 05:22:03 -04:00
Peter F. Patel-Schneider
f5c00a5f2a docs: mention that Solaar udev rule is needed for access to device hidraw nodes 2020-08-25 07:28:09 -04:00
effective-light
246c6cc1b2 udev: add a timeout to find_paired_node because the device might not be instantly ready (e.g. after pairing) 2020-08-25 06:47:07 -04:00
effective-light
2d29db4609 udev: simplify find_paired_node 2020-08-25 06:47:07 -04:00
effective-light
374388daf0 udev: add new rules for the wired devices and have the udev rules apply to paired peripherals 2020-08-25 06:47:07 -04:00
effective-light
fe55e39560 udev: use HID_PHYS instead of HID_UNIQ to look for relevant child nodes 2020-08-25 06:47:07 -04:00
effective-light
535b1f02ce device: report a wired device's serial number 2020-08-25 06:47:07 -04:00
effective-light
eec5df5d56 device: read the serial number properly from the device hidraw nodes 2020-08-25 06:47:07 -04:00
effective-light
c4d2ec4008 device: ensure that the serial ids match since wpids aren't distinct between devices and fallback to the receiver's handle when a match can't be found 2020-08-25 06:47:07 -04:00
effective-light
00ea128775 Prevent the precommit hooks from complaining 2020-08-25 06:47:07 -04:00
effective-light
b98033d558 base: add a number of relevant device ids and print them when the "show" command is executed 2020-08-25 06:47:07 -04:00
effective-light
16823092bc device: add preliminary support for wired devices 2020-08-25 06:47:07 -04:00
effective-light
9a13eb0229 receiver: talk directly to the device where possible 2020-08-25 06:47:07 -04:00
effective-light
35114490d3 cli: print each device's direct path 2020-08-25 06:47:07 -04:00
effective-light
bf3aeff7d8 receiver: open and store each paired device's direct hidraw node 2020-08-25 06:47:07 -04:00
Peter F. Patel-Schneider
d027c66198 receiver: add WPID 0612 for VX Revolution mouse 2020-08-24 08:28:48 -04:00
Peter F. Patel-Schneider
04e8281738 receiver: handle devices with serial numbers that don't provide number of pairings 2020-08-24 08:28:48 -04:00
Peter F. Patel-Schneider
f5c63ccc39 ui: better display of battery information in main window 2020-08-22 10:43:10 -04:00
Peter F. Patel-Schneider
9b8f96e824 receiver: fix bug when setting causes exception 2020-08-17 18:04:11 -04:00
Peter F. Patel-Schneider
5117028c52 misc: ignore exceptions when trying to set locale 2020-08-17 11:03:03 -04:00
Peter F. Patel-Schneider
eda0a95585 receiver: correctly handle settings that share a name in config 2020-08-15 14:41:56 -04:00
Peter F. Patel-Schneider
5041530952 receiver: don't produce pop-up notifications at startup and power on 2020-08-14 10:10:39 -04:00
Peter F. Patel-Schneider
9d0fcea02e receiver: simpler interface for settings 2020-08-13 16:38:11 -04:00
Peter F. Patel-Schneider
1400473877 receiver: make unpairing log messages be INFO, not warning 2020-08-12 19:12:41 -04:00
Peter F. Patel-Schneider
330fadfbce receiver: check that device can retrieve host names before trying that 2020-08-12 19:12:41 -04:00
Kudlaty
b3cc4361e8 receiver: add lightspeed receiver c541 2020-08-12 14:35:05 -04:00
Peter F. Patel-Schneider
2e1e8dc9b5 receiver: fix bug in logging DJ notifications 2020-08-10 05:34:33 -04:00
Peter F. Patel-Schneider
44f85d5dee receiver: change notification before status setup from assertion to warning 2020-08-09 18:20:18 -04:00
Peter F. Patel-Schneider
78a6ae9208 receiver: keep better track of battery voltage status for GUI 2020-08-09 18:20:18 -04:00
Américo Monteiro
4c31adb907 po: Add Portuguese translation 2020-08-09 15:46:06 -04:00
Peter F. Patel-Schneider
15b1965582 receiver: add lightspeed receiver c545 2020-08-09 11:21:28 -04:00
Peter F. Patel-Schneider
6918353a29 cli: improve messages for unpairing errors 2020-08-08 07:58:01 -04:00
Wojciech Nawrocki
1973693cc8 hidpp20: support version 4 of REPROG_CONTROLS_V4 2020-08-07 13:40:36 -04:00
Wojciech Nawrocki
1361af5501 special_keys: uppercase for DPI switch control 2020-08-07 13:40:36 -04:00
Wojciech Nawrocki
6e5d36e59f settings: use KeysArray for key reprogramming 2020-08-07 13:40:36 -04:00
Wojciech Nawrocki
95dc973748 hidpp20: add full support for version 2 of REPROG_CONTROLS_V4 2020-08-07 13:40:36 -04:00
muzena
e7047f4606 Update Croatian translation 2020-08-04 16:31:04 -04:00
John Erling Blad
d1908694c4 linted release page 2020-08-04 07:53:44 -04:00
John Erling Blad
b5bb04b8a2 po: update pot-file 2020-08-04 07:52:43 -04:00
John Erling Blad
14725e42ee po: update translation for Norwegian Bokmal 2020-08-04 07:52:23 -04:00
John erling Blad
5b796bae7d po: update translation for Norwegian Nynorsk 2020-08-04 07:51:38 -04:00
John erling Blad
e4f5d75095 po: update translation for Danish 2020-08-04 07:51:07 -04:00
John erling Blad
409065ed29 po: update translation for Swedish 2020-08-04 07:50:31 -04:00
Peter F. Patel-Schneider
56c6a52941 docs: put absolute links back in index.md 2020-08-04 07:49:47 -04:00
Peter F. Patel-Schneider
fd02b33971 ui: use ngettext for translatable strings with number dependencies 2020-08-02 11:56:56 -04:00
Peter F. Patel-Schneider
e763aeadb4 release 1.0.3 2020-08-02 11:46:13 -04:00
John Erling Blad
aaee650caf cleanup and lint the docs 2020-08-02 11:25:00 -04:00
John Erling Blad
6645b5b04c po: update translation for Swedish 2020-08-02 11:24:24 -04:00
John Erling Blad
e8f169f6f5 po: add translation for Danish 2020-08-02 11:23:45 -04:00
John Erling Blad
19a5fa3911 po: add translation for Norwegian Nynorsk 2020-08-01 15:46:59 -04:00
John Erling Blad
64e20533a0 po: update translation for Norwegian Bokmål 2020-08-01 15:41:28 -04:00
daviddavid
86a49128b4 Update French translation for 1.0.3rc2 release
- by David Geiger <david.david@mageialinux-online.org>
2020-08-01 07:51:52 -04:00
John Erling Blad
a579eb4ded po: update translation for Swedish 2020-07-31 06:23:44 -04:00
Peter F. Patel-Schneider
59296f41ca docs: add instructions on translations to docs/installation.md 2020-07-31 06:21:48 -04:00
Peter F. Patel-Schneider
0b0cf63240 release 1.0.3rc2 2020-07-30 02:58:23 -04:00
Peter F. Patel-Schneider
5dbf691403 receiver: ignore DJ pairing notifications 2020-07-30 02:44:56 -04:00
John Erling Blad
c1b6bf92c7 po: update pot file 2020-07-29 11:20:43 -04:00
John Erling Blad
3909a79149 po: add translation for Norwegian Bokmal 2020-07-29 11:20:43 -04:00
Peter F. Patel-Schneider
97caca023f docs: update devices.md with M720 2020-07-27 17:01:15 -04:00
Peter F. Patel-Schneider
11bc5bde37 docs: add warning about running Solaar as root 2020-07-27 10:21:55 -04:00
Peter F. Patel-Schneider
fb328b3993 release 1.0.3rc1 2020-07-25 21:25:16 -04:00
Peter F. Patel-Schneider
4fbf5aa531 dist: update ChangeLog for release 1.0.3rc1 2020-07-25 21:25:16 -04:00
Peter F. Patel-Schneider
07b42e2b34 dist: require Python 3.6 2020-07-25 21:25:16 -04:00
Peter F. Patel-Schneider
95893f3aac docs: minor documentation cleanup 2020-07-25 21:25:16 -04:00
Peter F. Patel-Schneider
46e6c98523 dist: remove deprecated solaar-cli appliation 2020-07-25 21:25:16 -04:00
Peter F. Patel-Schneider
e4d3f5e61e dist: don't install files in /etc from setup.py 2020-07-25 21:25:16 -04:00
Peter F. Patel-Schneider
a2ac8b46c1 misc: check for udev rule file presence at startup 2020-07-25 21:25:16 -04:00
Vinícius
d2eabe4258 receiver: prevent errors after clicking the name of an idle device 2020-07-25 16:47:05 -04:00
Peter F. Patel-Schneider
204bc6e810 hidapi: fix infinite loop on some write errors 2020-07-20 20:37:15 +01:00
Alex Cherkayev
e436b1bd1d receiver: add support for EX100 keyboard/mouse and receiver (046d:c517)
docs: add EX100 keyboard/mouse combo
device: add EX100 keyboard and mouse
hidpp10: fix notification parsing, add device features flags, fix documentation links
notifications: fix wpid processing for 27 MHz protocol
cli: add display of device features flags for HID++ 1.0 devices
2020-07-20 11:55:59 -04:00
Peter F. Patel-Schneider
4dfa55c96c receiver: add mode and inversion settings for feature THUMB_WHEEL 2020-07-19 08:35:46 -04:00
Lukas Michel
7f70039284 update german translation (#857)
* update german translation

* update german translation: apply suggestions from code review

Co-authored-by: Marcel Schilling <marcel.schilling@uni-luebeck.de>

Co-authored-by: Marcel Schilling <marcel.schilling@uni-luebeck.de>
2020-07-19 07:55:35 -04:00
Peter F. Patel-Schneider
2d2e71daa3 receiver: restore feature number to feature choice settings 2020-07-16 15:06:08 -04:00
Peter F. Patel-Schneider
4ce2abca0a ui: turn off write-backs for values obtained from device 2020-07-16 15:06:08 -04:00
Peter F. Patel-Schneider
bc6b1de472 gui: correctly show initial value for choice settings 2020-07-16 15:06:08 -04:00
Peter F. Patel-Schneider
90cc629f26 receiver: don't write non-persisted settings when applying them 2020-07-16 15:06:08 -04:00
Peter F. Patel-Schneider
de0894bc34 receiver: adjust CHANGE_HOST numbers to user-visible ones 2020-07-13 19:15:44 -04:00
Peter F. Patel-Schneider
e86a50cfa9 receiver: use report rate feature if available to determine polling rate 2020-07-13 13:34:21 -04:00
Peter F. Patel-Schneider
b6615d5abe cli: in config don't apply setting unnecessarily and don't print setting after writing 2020-07-12 18:12:18 -04:00
Peter F. Patel-Schneider
323fb13161 cli: check range values for validity in config 2020-07-12 18:12:18 -04:00
Peter F. Patel-Schneider
fef22de021 cli: don't lower-case choice values and allow numeric selection of choices 2020-07-12 18:12:18 -04:00
Peter F. Patel-Schneider
5a4205d002 receiver: add CHANGE_HOST setting 2020-07-12 18:04:04 -04:00
Peter F. Patel-Schneider
1c2b347512 receiver: allow for settings that do not persist 2020-07-12 18:04:04 -04:00
Peter F. Patel-Schneider
63872b9146 receiver: add settings option to not wait for reply when writing to device 2020-07-12 18:04:04 -04:00
Peter F. Patel-Schneider
c6506b3508 receiver: add option to not wait for a reply when requesting to device 2020-07-12 18:04:04 -04:00
Peter F. Patel-Schneider
c9c472e391 receiver: add setting for MULTIPLATFORM and DUALPLATFORM feature 2020-07-12 17:38:00 -04:00
Peter F. Patel-Schneider
1dc59fd374 docs: update issue templates 2020-07-11 15:36:49 -04:00
Peter F. Patel-Schneider
24798ee310 docs: remove logitech files and outdated information; update supported features 2020-07-11 15:36:49 -04:00
Peter F. Patel-Schneider
e05c1aa90c cli: make config faster 2020-07-10 14:16:41 -04:00
Peter F. Patel-Schneider
fe0ab16cc8 misc: dump threads on SIGINT 2020-07-09 12:51:38 -04:00
Peter F. Patel-Schneider
c38d10a654 receiver: gather host names from HOSTS_INFO feature and show them 2020-07-09 12:44:27 -04:00
Filipe Laíns
d386f4369b git-blame-ignore-revs: add pre-commit bulk change
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 16:10:37 +01:00
Filipe Laíns
ae4a0eba70 git-blame-ignore-revs: fix commit ids due to rebase
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 16:10:37 +01:00
Peter F. Patel-Schneider
72fd2f255e device: mouse m510v1 doesn't have a working smooth scroll so remove from its descriptor 2020-07-07 10:20:00 -04:00
Filipe Laíns
a8d067035d git-blame-ignore-revs: add yapf, isort and flake8 bulk changes
A clean blame can be accessed with:
git blame --ignore-revs-file .git-blame-ignore-revs <file>

Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
27c90fa736 yapf: adjust style to not indent closing brackets
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
bbaa144397 ci: add pre-commit
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
e751f741f7 setup.py: set minimum python version to 3.5
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
8e89aa0038 yapf: set max line lenght to 127
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
627185079f flake8: initial fix
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
de5514aa23 pre-commit: add flake8
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
0bc58d5653 flake8: add config
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
33521558ed pre-commit: initial fix
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
63fa581d13 pre-commit: add initial config
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
e6369e0c3c isort: intial import fix
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
be4e88dc1a isort: add config
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Filipe Laíns
72a8d311bc yapf: change code style to yapf
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-07 15:11:15 +01:00
Peter F. Patel-Schneider
cab523e122 receiver: add direct implementation of NEW FN INVERSION feature
receiver: fix bug in NEW FN INVERSION

receiver: fix bug in NEW FN INVERSION

receiver: fix bug in NEW FN INVERSION
2020-06-30 16:20:38 -04:00
Peter F. Patel-Schneider
070a2bf837 receiver: add new set of special keys from logitech documentation
receiver: descriptor and key for MX Vertical mouse
2020-06-28 02:45:20 +01:00
Peter F. Patel-Schneider
0836766bfb receiver: fix k375s Fn inversion 2020-06-26 05:07:47 -04:00
Peter F. Patel-Schneider
4379bd0613 receiver: update tooltips for several settings 2020-06-23 06:26:21 -04:00
Peter F. Patel-Schneider
ad2660a1bd receiver: minor updates to key remapping 2020-06-23 06:26:21 -04:00
Vinícius
6d16462988 receiver: simpler way to create setting information for device descriptors 2020-06-21 20:19:30 -04:00
Peter F. Patel-Schneider
e69c4c6b4f receiver: don't abort on unexpected device number, just warn 2020-06-21 12:16:04 -04:00
Vinícius
5e4c792a64 receiver: fix error when settings listed on descriptor.py return None
e.g. REPROG_CONTROLS_V4 when no keys can be reprogrammed by Solaar
2020-06-20 20:33:29 -04:00
Peter F. Patel-Schneider
c5ca2c2818 receiver: remove testing line from settings_template.py 2020-06-20 14:01:38 -04:00
Peter F. Patel-Schneider
f631f0f551 receiver: keep track of non-features to not continually try to find them 2020-06-20 13:38:09 -04:00
Vinícius
ef54a750dc receiver: implement KEYBOARD_DISABLE_KEYS feature
(the UI needs some improvement)
2020-06-20 13:30:32 -04:00
Peter F. Patel-Schneider
c99f470dd5 receiver: don't consider group 0 in reprogramming keys 2020-06-20 05:56:00 -04:00
Peter F. Patel-Schneider
1dfc4f22df receiver: add more special keys 2020-06-20 05:56:00 -04:00
Peter F. Patel-Schneider
68b4ca7abf receiver: make key settings structure uniform 2020-06-20 05:56:00 -04:00
Peter F. Patel-Schneider
09125bce2d receiver: filter out DJ reports that are not notifications 2020-06-20 05:31:45 -04:00
Peter F. Patel-Schneider
aeb03df3f7 receiver: fix bug reporting hid++ 1.0 batteries 2020-06-17 09:53:16 -04:00
Peter F. Patel-Schneider
f191d95990 misc: better reporting of errors 2020-06-17 09:53:16 -04:00
Peter F. Patel-Schneider
5926596298 receiver: add special keys and actions from Craft Keyboard 2020-06-16 17:42:34 -04:00
Peter F. Patel-Schneider
97fdcbf3ff receiver: modify and add a few names for special keys and actions 2020-06-16 15:21:10 -04:00
Peter F. Patel-Schneider
66c8621cab receiver: handle gmask 0 and group 0 in reprogrammable keys 2020-06-16 15:21:10 -04:00
Peter F. Patel-Schneider
a4bf1da6f9 docs: add information on key reprogramming 2020-06-16 15:21:10 -04:00
Peter F. Patel-Schneider
922414ae04 ui: add map choice control to ui 2020-06-16 15:21:10 -04:00
Peter F. Patel-Schneider
9beb13a305 receiver: add key reprogramming setting 2020-06-16 15:21:10 -04:00
Peter F. Patel-Schneider
89995656cd receiver: only check for device features once per device 2020-06-08 17:01:32 +01:00
Peter F. Patel-Schneider
f198b2706b cli: use Setting name and value to show feature status if not handled directly 2020-06-08 16:59:38 +01:00
Peter F. Patel-Schneider
bd0f9ca7d7 receiver: add feature to Setting class 2020-06-08 16:59:38 +01:00
Peter F. Patel-Schneider
784661bbc0 ui: remove maximum window size 2020-06-07 13:33:42 +01:00
Peter F. Patel-Schneider
579b09619b receiver: process battery voltage notifications 2020-06-06 12:59:26 -04:00
Peter F. Patel-Schneider
013f383bc8 ui: display battery voltage in ui if available 2020-06-06 12:59:26 -04:00
Peter F. Patel-Schneider
7936d2dd48 receiver: use battery voltage in read_battery if available 2020-06-06 12:59:26 -04:00
Peter F. Patel-Schneider
cb84d3b797 ui: remove translation for several strings that should not be translated in window.py 2020-06-06 12:59:26 -04:00
Peter F. Patel-Schneider
79947dca6c receiver: gather and show battery next level where available 2020-06-06 12:59:26 -04:00
Peter F. Patel-Schneider
d41c35b1c6 docs: minor update to usage.md 2020-06-05 12:18:25 -04:00
Peter F. Patel-Schneider
093169fb23 docs: update features.md with current status and add implementation section 2020-06-05 12:18:25 -04:00
Peter F. Patel-Schneider
6c77aa3b61 receiver: add c53d as a Lightspeed receiver 2020-05-25 20:51:17 -04:00
Peter F. Patel-Schneider
4a108b3ab7 release 1.0.2 2020-05-22 01:43:53 +01:00
Peter F. Patel-Schneider
fac6cd6840 po: minor fix to es translation file 2020-05-22 01:19:20 +01:00
Peter F. Patel-Schneider
edf610d235 doc: add usage document 2020-05-22 01:18:44 +01:00
Peter F. Patel-Schneider
dac9c1bd8e doc: minor improvements to index.md 2020-05-22 01:18:44 +01:00
Peter F. Patel-Schneider
352375aa9a doc: minor improvements to installation.md 2020-05-22 01:18:44 +01:00
Peter F. Patel-Schneider
44722560d2 release 1.0.2rc3 2020-05-17 18:39:31 +01:00
daviddavid
101e24c7bf Update again French translation
- by David Geiger <david.david@mageialinux-online.org>
2020-05-17 11:57:11 -04:00
Peter F. Patel-Schneider
b7e8e646b5 ui: don't complain for receivers in other seats 2020-05-17 11:55:01 -04:00
Peter F. Patel-Schneider
97fa7de28a devices: pass arguments through in feature_choices_dynamic 2020-05-17 11:51:38 -04:00
Peter F. Patel-Schneider
302720b0db ui: add --battery-icons=symbolic option to prefer symbolic icons 2020-05-17 16:29:14 +01:00
daviddavid
813c238704 Update French translation
- by David Geiger <david.david@mageialinux-online.org>
2020-05-14 09:36:32 -04:00
Peter F. Patel-Schneider
354c914bd2 docs: improve installation document 2020-05-13 11:48:06 -04:00
daviddavid
574aee0cc7 po formatting updates (for release 1.0.2rc2) 2020-05-13 15:37:57 +01:00
Peter F. Patel-Schneider
a3cdcf4cd1 git: add lib/solaar.egg-info/ to .gitignore 2020-05-13 15:35:35 +01:00
Peter F. Patel-Schneider
592ced0a53 release 1.0.2rc2 2020-05-10 23:11:37 +01:00
Peter F. Patel-Schneider
3a2593798e release: fix up RELEASE.md 2020-05-10 03:49:32 +01:00
Peter F. Patel-Schneider
67b7d46844 docs: update ChangeLog 2020-05-07 19:33:57 +01:00
Peter F. Patel-Schneider
5411e43b77 ui: use Solaar icon instead of missing battery icons 2020-05-07 19:33:57 +01:00
Peter F. Patel-Schneider
66dc0bd285 release: remove packaging directory as it is not maintained 2020-05-02 18:44:34 +01:00
Peter F. Patel-Schneider
f641554ed5 release: release candidates do not have hyphen before rc 2020-05-02 17:42:13 +01:00
Peter F. Patel-Schneider
beec4c2130 release: change version from 1.0.2-rc1 to 1.0.2rc2 2020-05-02 17:42:13 +01:00
Peter F. Patel-Schneider
f5bf488ffc docs: update ChangeLog for 1.0.2rc2 2020-05-02 17:42:13 +01:00
Steven Lilley
1deaa09142 devices: Add Pebble M350 mouse 2020-05-02 17:25:29 +01:00
Peter F. Patel-Schneider
88a0dfff6f ui: add environment variable to switch to symbolic battery icons in tray 2020-05-02 10:28:51 -04:00
Peter F. Patel-Schneider
f28da6e7c4 docs: add a short discussion of how battery icons work 2020-05-02 10:28:51 -04:00
Peter F. Patel-Schneider
5290980ac8 ui: only use standard battery icons 2020-05-02 10:28:51 -04:00
Peter F. Patel-Schneider
4d23d3abac device: heuristic inference of battery level when charging and no discharging information available 2020-05-02 09:58:24 -04:00
Peter F. Patel-Schneider
0c4e757cf9 docs: add K600 TV, M350 WPID 4080, and MX Keys to devices.md and improve wording in it 2020-05-02 09:26:01 -04:00
Peter F. Patel-Schneider
d487a0d889 ui: remove assert that updated receiver is still in window 2020-05-02 14:07:42 +01:00
Roshan Shariff
65824a4c08 ui: add 'desktop-entry' hint to indicate notification source.
GNOME requires that notifications have a 'desktop-entry' hint to be
able to filter notifications by application. See
https://wiki.gnome.org/Initiatives/GnomeGoals/NotificationSource.

Fixes pwr-Solaar/Solaar#734
2020-05-01 13:56:22 -04:00
tarxf
58a1c7ffb0 docs: dixed name typo for MX Master 2S 2020-04-25 02:38:02 +01:00
Peter F. Patel-Schneider
1f896d2b9e docs: add changing device features to long description of Solaar 2020-04-22 21:37:25 +01:00
Peter F. Patel-Schneider
377c954933 install: remove Daniels email from setup.py 2020-04-20 12:01:57 -04:00
Peter F. Patel-Schneider
4744ce47b2 install: update installation directions and remove outdated rules/install.sh 2020-04-20 12:01:57 -04:00
Peter F. Patel-Schneider
b01b74f2a8 install: install udev rule with pip 2020-04-20 12:01:57 -04:00
Peter F. Patel-Schneider
6282ae05e8 install: remove incorrect code for determining autostart directory from setup.py 2020-04-20 12:01:57 -04:00
Peter F. Patel-Schneider
b5e1f47c50 ui: add setuptools global install share directory to icon directories 2020-04-20 10:32:40 -04:00
Peter F. Patel-Schneider
8ffaeb112f devices: add four older devices 2020-04-20 15:26:37 +01:00
Peter F. Patel-Schneider
2189d4a35b receiver: add new macro for old receivers and use it to set max devices to 6 for C517 2020-04-20 15:26:37 +01:00
Jan Szenborn
706ee2990f Improve polish translations 2020-04-20 15:25:47 +01:00
Peter F. Patel-Schneider
06875fb9ab release: update remaining version 1.0.1 to 1.0.2-rc1 where needed 2020-04-20 15:22:30 +01:00
Peter F. Patel-Schneider
f6b0cc59ed ui: only use file path for tray icon if icon name is file in current directory 2020-04-20 15:21:19 +01:00
Peter F. Patel-Schneider
e3aacdbf05 receiver: don't check that device kind matches feature kind 2020-04-20 15:20:03 +01:00
Peter F. Patel-Schneider
45dc81b4c4 docs: update information on pre-built packages 2020-04-20 15:19:22 +01:00
Peter F. Patel-Schneider
0324fd9a1e ui: more flexible way to determine icon from battery level 2020-04-18 14:27:42 +01:00
Thomas Uhle
ca9f9b3447 ui: add support for Ayatana AppIndicator 2020-04-07 18:58:18 -04:00
Peter F. Patel-Schneider
624247d378 install: fix up errors when required packages not installed 2020-04-05 20:55:32 +01:00
Thomas Uhle
5f8dbdeb6d ui: fix tooltip description
The program's name is printed twice if AppIndicator is used and no receiver
is found because AppIndicator always adds the program's name as a title to
the tooltip.
2020-04-01 11:10:54 -04:00
Thomas Uhle
2bdb844557 ui: fix end of iterative calls to _blink()
Prepare _icon_before_attention for the next iteration by reinitializing it
at the end of the current iteration.
2020-04-01 11:10:54 -04:00
Thomas Uhle
422f336d70 ui: add missing parentheses to function call
Compare function's return value to AppIndicator3.IndicatorStatus.ATTENTION
instead of the function object reference.
2020-04-01 11:10:54 -04:00
Peter F. Patel-Schneider
563ef0d8ef receiver: remove extra argument in call when unpairing 2020-03-22 17:23:28 +00:00
Peter F. Patel-Schneider
3a85c4f64b UI: lookup attention icon filename directly to get around bug in libappindicator 2020-03-17 23:17:59 +00:00
Filipe Laíns
4056f5b9d3 release.sh: simplify script
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-03-16 21:59:41 +00:00
Filipe Laíns
442a7d18a5 release.sh: document release process
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-03-16 21:59:41 +00:00
Filipe Laíns
79be4b20d7 release.sh: don't throw github release creation error on dry run
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-03-16 21:59:41 +00:00
Filipe Laíns
b2f3b56c31 release 1.0.2-rc1
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-03-16 20:57:35 +00:00
Peter F. Patel-Schneider
072f932206 ui: handle devices and receivers with no firmware information 2020-03-16 20:55:18 +00:00
Filipe Laíns
d5a3a4fe7e release.sh: initial script
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-03-16 16:58:41 +00:00
Peter F. Patel-Schneider
a49b7938e0 receiver: Receiver C517 can have two paired devices 2020-03-16 16:04:16 +00:00
Peter F. Patel-Schneider
1eef88eb44 cli: handle receivers with no firmware information 2020-03-16 16:04:16 +00:00
Peter F. Patel-Schneider
eda1399330 cli: force unpairing attempt when using cli 2020-03-15 23:34:51 +00:00
Peter F. Patel-Schneider
8dbc4b5707 docs: Update ChangeLog 2020-03-15 23:33:47 +00:00
Peter F. Patel-Schneider
687a28d2c2 UI: lookup icon filenames directly to get around bug in libappindicator 2020-03-15 22:00:56 +00:00
Peter F. Patel-Schneider
f733390bd1 install: autostart .desktop file has --window=hide 2020-03-15 22:00:21 +00:00
Peter F. Patel-Schneider
ac6fa9643f UI: change default for --window to show 2020-03-15 22:00:21 +00:00
Peter F. Patel-Schneider
f28053a09a docs: improve documentation on required packages 2020-03-15 21:59:42 +00:00
gogogogi
49145ae272 translations: Update Croatian language translation
* Update Croatian language

* Update version
2020-03-15 16:30:00 -04:00
Peter F. Patel-Schneider
af26870e83 docs: use correct name of udev rules file in installation directions 2020-03-08 15:15:17 +00:00
Peter F. Patel-Schneider
007163a563 docs: update ChangeLog 2020-03-08 15:15:17 +00:00
Peter F. Patel-Schneider
a9acdbe47a receiver: add c537 nano receiver 2020-03-06 18:00:37 -05:00
Peter F. Patel-Schneider
955df30c7f upower: properly add signal receiver 2020-02-22 08:46:56 -05:00
Peter F. Patel-Schneider
23c0397764 listener: mark device as inactive after resume so that settings are correctly pushed 2020-02-22 08:46:56 -05:00
Peter F. Patel-Schneider
789f5f05c3 receiver: don't check features when device is not online 2020-02-22 08:46:56 -05:00
Peter F. Patel-Schneider
ea2c22c015 receiver: fix seldom-encountered bug for devices that have no features set up yet 2020-02-21 16:52:28 +00:00
Peter F. Patel-Schneider
1c09b9c45d upower: add in logind signals for suspend/resume 2020-02-21 16:52:28 +00:00
Peter F. Patel-Schneider
dd9626f7a4 docs: ask for git describe output if running a cloned version 2020-02-21 16:48:05 +00:00
Rijnhard Hessel
35909afb0d packaging: remove solaar-gnome3 package 2020-02-21 09:50:30 -05:00
Rijnhard Hessel
8e67bbbc11 receiver: add safety for non-compliant mouse features
receiver: safely handle errors with check_feature to allow device to be detected even if some features are inconsistent
2020-02-21 09:33:14 -05:00
Peter F. Patel-Schneider
a5813e4e23 packaging: remove last vestiges of python2 2020-02-20 19:49:38 +00:00
Peter F. Patel-Schneider
d439d43be6 docs: replace dummy URL for Solaar with real URL 2020-02-20 12:27:41 +00:00
Peter F. Patel-Schneider
11465f2b2a cli: add probe command to show receiver register information 2020-02-18 23:21:59 +00:00
Peter F. Patel-Schneider
079f2dacd4 docs: add information on --windows flag and rewrite other bits of index.md 2020-02-18 08:32:02 -05:00
Peter F. Patel-Schneider
7c6bd4202d receiver: use dictionary for expected message length checking; ignore messages with unknown report ids 2020-02-18 08:14:22 -05:00
Peter F. Patel-Schneider
1740a9a8c4 receiver: segregate and standardly handle DJ notifications separately - just ignore them all for now 2020-02-18 08:14:22 -05:00
Peter F. Patel-Schneider
0cadc3247e receiver: don't create notifications for movement and key reports 2020-02-18 08:14:22 -05:00
Peter F. Patel-Schneider
e23de2ee9f ui: add quit button to main window 2020-02-18 13:14:10 +00:00
Peter F. Patel-Schneider
8fb52a3f37 ui: don't show warning in pairing window for receivers with unlimited pairing 2020-02-18 12:19:45 +00:00
Peter F. Patel-Schneider
3edac85b90 ui: turn on window manager notifications again 2020-02-18 12:17:49 +00:00
Peter F. Patel-Schneider
64c76e51ef receiver,cli,ui: minor code cleanup 2020-02-17 11:53:39 +00:00
Peter F. Patel-Schneider
02cac598a0 receiver: all nano receivers re-pair but don't unpair 2020-02-17 11:53:39 +00:00
Peter F. Patel-Schneider
02a47b4003 install: adjust autostart desktop installation to use usual desktop file 2020-02-17 08:35:47 +00:00
Peter F. Patel-Schneider
4afe8c893b ui: add option to show the main window or run solaar without tray 2020-02-17 08:35:47 +00:00
Peter F. Patel-Schneider
5afa094175 ui: Add message about remaining pairings to pairing window when receiver has limited pairings 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
196705ba1f docs: fix information about receiver c534 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
4c46a999f7 gui: treat nano protocol disconnections correctly when pairing 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
7bd31c0d95 cli: complain when trying to unpair from a receiver that does not unpair 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
dc2a1adf26 ui: handle re-pairing receivers correctly when pairing 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
e89b50cdf2 cli: correct reporting for pairing with receivers that re-pair (i.e., c534) 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
d08e0a9574 cli: Show a positive response instead of an error when receiver pairs on already-used slot in CLI 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
22d37c4c1c ui: Better determination in GUI of when receiver may pair (still might be conservative) 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
546ccb7ac2 receiver: determine remaining pairings (if receiver has this) and display in solaar show and main window 2020-02-17 08:34:53 +00:00
Peter F. Patel-Schneider
1ab03d4c9f receiver: add check for bad results from getting the usb device 2020-02-16 22:16:37 +00:00
Peter F. Patel-Schneider
a6fcb75aa8 receiver: get receiver name from receiver information list 2020-02-16 22:16:37 +00:00
Peter F. Patel-Schneider
907c5ab075 receiver: change usb identification of receivers to dictionary to allow adding other fields, add receiver name to dictionary 2020-02-16 22:16:37 +00:00
Peter F. Patel-Schneider
515f994ab8 receiver: ignore disconnects of disconnected devices 2020-02-16 22:16:37 +00:00
Peter F. Patel-Schneider
25905c5d77 receiver: Show type of receiver in CLI show command 2020-02-16 22:16:37 +00:00
Peter F. Patel-Schneider
babf0f4ded receiver: Show serial number in stringify of receivers 2020-02-16 22:16:37 +00:00
Peter F. Patel-Schneider
41664b8e21 docs: update changelog to 11 February 2020 commits 2020-02-16 22:07:45 +00:00
svntjng
5c080a7831 docs: add supported feature for M330 2020-02-16 22:06:12 +00:00
Peter F. Patel-Schneider
5aa4fa0239 update version in docs/_config.yml to 1.0.1 2020-02-11 15:55:15 +00:00
Peter F. Patel-Schneider
4f4e610635 receiver: battery level 0 is unknown level 2020-02-10 18:44:28 +00:00
Peter F. Patel-Schneider
39791be440 doc: fix typos and improve some wording 2020-02-06 19:09:00 +01:00
Peter F. Patel-Schneider
2814350f9f doc: fix wording about supported Nano receivers 2020-02-06 19:09:00 +01:00
Peter F. Patel-Schneider
4a28b48275 doc: add paragraph on firmware 2020-02-06 19:09:00 +01:00
Peter F. Patel-Schneider
97474a21de doc: fix formatting, add receivers, change version 4.5 to 2.0 2020-02-06 19:09:00 +01:00
Peter F. Patel-Schneider
719106bf0f doc: solaar does keep track of device status 2020-02-06 19:09:00 +01:00
Peter F. Patel-Schneider
0a735a32ed doc: better documentation: devices and capabilities 2020-02-06 19:09:00 +01:00
Dmitriusan
bd26b9340d scripts/debian: switch to python3 2020-02-06 19:06:47 +01:00
Peter F. Patel-Schneider
f45ae5ffad solaar: use python3, not generic python 2020-02-06 17:37:10 +01:00
Peter F. Patel-Schneider
0520dde990 receiver: use None for serial number of c534 2020-02-04 22:04:43 +01:00
Peter F. Patel-Schneider
e53781ec6e install: autostart desktop file starts with tray only 2020-01-22 22:22:14 +00:00
Peter F. Patel-Schneider
1bc189e2fe ui: add --tray option to start without window visible 2020-01-22 22:22:14 +00:00
Peter F. Patel-Schneider
91bcfa28ea docs: minor changes to installation.md to eliminate python2 support 2020-01-21 21:51:35 +00:00
Filipe Laíns
64c1de32da setup.py: drop python 2 support
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-21 21:51:25 +00:00
Peter F. Patel-Schneider
56762b5494 device: move persister from Setting to _DeviceDescriptor to get around problem with settings discovered after startup 2020-01-21 03:23:25 +00:00
Peter F. Patel-Schneider
77e21a0b63 ui: fix crash when styles add padding by not setting 1-pixel columns; slightly better window layout; add style class to window 2020-01-21 03:11:35 +00:00
Peter F. Patel-Schneider
d6fa5269c5 ui: don't ignore offline devices when determining whether pairing is possible 2020-01-21 03:08:49 +00:00
Peter F. Patel-Schneider
0198d58dc7 hidpp20: fix error when showing battery
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-19 18:18:33 +00:00
Filipe Laíns
c30f0a79bd docs: features: add partly working and unsupported status
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-19 18:18:30 +00:00
Filipe Laíns
89ee83b906 docs: features: change checkmark style
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-19 18:18:11 +00:00
Filipe Laíns
0bef7b84f8 docs: features: make the table easier to maintain
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-19 18:18:08 +00:00
Filipe Laíns
c3e90bc73e docs: features: make the table readable in plain ascii
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-19 18:17:54 +00:00
Alex Cherkayev
814b7f30ba docs: features: added some missing feature names and list of implemented features
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-01-19 18:17:18 +00:00
Alex Cherkayev
8039c035a7 devices: Add new variant of K800 keyboard
docs: Add K800 new variant to supported
2020-01-12 16:11:03 +00:00
effective-light
430b70711b hidpp20: features: add BATTERY_VOLTAGE (0x1001) support
Signed-off-by: Filipe Laíns <lains@archlinux.org>

Co-authored-by: Filipe Laíns <lains@archlinux.org>
2020-01-12 16:05:21 +00:00
nightsky30
82915eea4b docs: update the USB IDs list 2019-12-29 14:46:59 +00:00
Peter F. Patel-Schneider
995544396c receiver: don't log messages with unknown report IDs 2019-12-26 16:10:48 +00:00
Peter F. Patel-Schneider
4678f52293 don't have window always be on top 2019-12-24 18:54:12 +00:00
Peter F. Patel-Schneider
26c5a5f9ba clarify license status; fix debian packaging copyight notice 2019-12-24 18:53:43 +00:00
Peter F. Patel-Schneider
c6ccc0638d devices: add M310 2019-12-24 12:49:00 +00:00
drupal-daffie
6ba8c6c3fc setup: use setuptools if available 2019-12-24 12:16:35 +00:00
Peter F. Patel-Schneider
9087f4187c docs: adjust documentation to new changes 2019-12-24 12:13:58 +00:00
drupal-daffie
673c81c096 docs: devices: add MX Master 2s 2019-12-16 15:33:50 +00:00
drupal-daffie
43bfa80753 docs: devices: add Mx Master 3 2019-12-16 12:03:03 +00:00
gogogogi
3884ce14d7 docs: readme: add new ppa 2019-12-14 21:22:25 +00:00
spaced
4fafd4f6be hidpp20: features: add very basic implementation of 0x1982 (Backlight 2)
Fixes #547
2019-12-12 18:56:08 +00:00
Chris Rainey
0bec0e02b1 docd: devices: add M330 2019-12-10 23:36:31 +00:00
Filipe Laíns
59c0367283 github: add issue templates 2019-12-01 21:48:57 +00:00
marcelkarger
63f523dac6 po: update German translation 2019-11-30 23:14:32 +00:00
Heimen Stoffels
4822975acb po: added Dutch translation 2019-11-30 23:13:26 +00:00
Chad Condon
c389c9c2b7 ur: repair low resolution smooth scrolling 2019-11-30 23:12:07 +00:00
KTB
76e70799aa Update devices.md for Anywhere MX 2 - R/W DPI
Simple doc update to show that Solaar supports changing DPI for the Logitech Anywhere MX 2.
2019-10-20 23:55:02 +01:00
Tom Swartz
2a94cc9233 Fix typos in docs 2019-10-20 23:53:45 +01:00
Tom Swartz
ae9e862f19 Fix typos in comments 2019-10-20 23:53:45 +01:00
Tom Swartz
12f4e187d6 Fix typos in logging, output 2019-10-20 23:53:45 +01:00
Filipe Laíns
51dd2a5d28 notifications: add missing protocol names
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-10-20 23:19:34 +01:00
Alex Cherkayev
6981555804 notifications: fix battery status notification parsing
Fix indicator tooltip (duplicate Solaar line, python list instead of battery status).
2019-08-20 09:40:39 +02:00
spaced
3583759d3a devices: basic support for craft keyboard
* basic support for craft keyboard
* fix issue where _(status) throws exception because namedInt with UTF8.decode
2019-08-20 09:39:11 +02:00
david_david
c92a889b68 po: formatting updates
* po formatting updates

- Update French translation by David Geiger <david.david@mageialinux-online.org>
- Update version into setup.py file

* Update version in fr.po
2019-08-20 09:37:15 +02:00
Peter Wu
b9fb005c9c docs: Deduplicate README contents, use a symlink
docs/index.md and README.md are almost identical, except for some paths
and the metadata table on top of the file. Use absolute paths to the
website to avoid breaking links, and symlink README.md.
2019-08-20 09:36:16 +02:00
Zachary Cook
a06ea6de11 data: fix icon theme for battery level
It was previously assigning levels 1-89 to caution and 90+ to full, which was unintended due to the floor division by 100
2019-08-20 09:35:31 +02:00
Andreas Schneider
a868b477e1 Fix reading and storing DPI in config settings
Fixes #328
Fixes #356
Fixes #545
2019-08-20 09:24:22 +02:00
spaced
c799e038de added to list of supported devices 2019-08-20 09:23:38 +02:00
spaced
8468be2126 add doc for silent mouse M585/M590 2019-08-20 09:23:38 +02:00
spaced
1ff9c3a40b support for silent mouse M585/M590 2019-08-20 09:23:38 +02:00
Chris Johnston
9b201f6b0d copy updated README content 2019-07-27 15:56:53 +01:00
Chris Johnston
afda6f9f66 remove all google analytics stuff from page templates 2019-07-27 15:56:53 +01:00
Chris Johnston
5cc0b8854d update config.yml for new repo path 2019-07-27 15:56:53 +01:00
Chris Johnston
f88951c56d Squash previous changes and rebase master branch
Set theme jekyll-theme-slate

update _config.yml

move some files around

add an index file

delete files that will no longer be needed

include jekyll front matter

Update the index page layout to use updated template

re-create the page layout from the updated template

add a favicon

remove manual gh pages build script

use master branch docs/ folder instead

add favicon to default layout

move layouts and includes back because of restriction with gh pages

testing: move index back into project root

move everything under docs, including config.yml

dont put the favicon in _includes

Fix building locally, fix logo

- resize the original logo document so that it doesn't have extra whitespace
- style the logo to match the original page
- fix issue when building locally, repo format was incorrect

Ignore files that are specific to documentation

add a readme that describes how to build the docs

remove downloads, since installation instructions are provided elsewhere

fix broken links in index page

fix the page header on all non-index pages

use site.baseurl for images

fix urls when on testing site with baseurl
2019-07-27 15:56:53 +01:00
Filipe Laíns
2aab7f71fd release 1.0.1
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-26 16:55:51 +01:00
Filipe Laíns
6376980213 udev: fix c52b + MX Master
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-26 17:50:13 +02:00
Filipe Laíns
1bb08d011d base-usb: add new Lightspeed receiver
used in the G305

Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-26 15:23:55 +01:00
Filipe Laíns
966c55e69d base-usb: fix non-unifying for linux 5.2
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-26 15:18:24 +01:00
Filipe Laíns
6b14004a6f udev: fix writting to the device
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-26 15:10:59 +01:00
Daehyeok Mun
7a4f7bbb84 docs: fix broken github.io link to new repo url
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2019-07-26 15:38:16 +02:00
Matthias Fulz
155e2f8c40 fix: #531 #537. Better handling of EPIPE during hid write. 2019-07-26 15:35:21 +02:00
Filipe Laíns
6a1968beff release 1.0.0
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-26 14:33:16 +01:00
Filipe Laíns
f4557233f1 base-usb: add support for Lightspeed receivers
They way we are currently identifying the type of a receiver (unifying,
nano, lightspeed) in the Receiver class is pretty bad. The correct
approach would be to specify the receiver type name string in
base_usb.py.

Signed-off-by: Filipe Laíns <lains@archlinux.org>
2019-07-16 11:10:03 +02:00
muzena
a597b81f5a Update Croatian translation 2019-07-14 23:57:15 +01:00
Peter Wu
a587ae65d1 Merge pull request #477 from doctor64/pointer_info_show
Added status info print and rename some functions
2019-06-29 18:08:52 +02:00
Peter Wu
6522b5fef0 Merge pull request #514 from pdecat/fix-zh_TW
Fix zh_TW translation (nplural=1)
2019-06-29 18:05:49 +02:00
Peter Wu
7f78f0c580 Merge pull request #515 from pdecat/fix-icon-dep
Add gnome-icon-theme as an acceptable dependency for icons
2019-06-29 18:05:14 +02:00
Peter Wu
127a8053d8 Merge pull request #521 from kacpi2442/master
Added basic support for Lenovo dongle,
https://download.lenovo.com/consumer/options/lenovo_n50_wireless_optical_mouse.pdf
2019-06-29 18:04:25 +02:00
Patrick Decat
6c0acee645 Fix UnicodeDecodeError with ngettext and python2 2019-06-29 18:01:54 +02:00
nicolas
60c52eb13f Name for K780
“Multi-Device” and not “Solar”
2019-06-29 17:59:44 +02:00
Benoit Hanotte
8bac8d68f4 Add MX Master settings
Add the same settings to the logitech MX Master as the one from the MX
Master 2 (scroll wheel DPI, smart scoll sensitivity).
2019-06-29 17:57:02 +02:00
Maarti
087a5d2c42 Update of the installation instructions for Debian (#490)
Solaar is available on official Debian repository and the old repo link
`https://pwr.github.io/Solaar/packages/` is dead and causes `404 Not
Found` error and `The repository 'http://pwr.github.io/Solaar/packages
./ Release' does not have a Release file.` error when doing `apt update`
so I updated the installation instructions.
2019-06-29 17:56:07 +02:00
kacpi2442
481511b6c2 Added basic support for Lenovo dongle 2019-04-15 15:40:40 +02:00
Patrick Decat
21d98294bd Add gnome-icon-theme as an acceptable dependency for icons 2019-03-26 15:46:14 +01:00
Patrick Decat
ebbb54758b Fix zh_TW translation (nplural=1) 2019-03-26 15:12:44 +01:00
Peter Wu
c07c115ee3 Avoid collision for wpid 4055 (M185 vs M235)
Hopefully use of a slash does not cause issues. M505 already uses slash
in its codename.

Fixes #499
2019-01-30 16:58:00 +01:00
Peter Dave Hello
8c02320795 docs/devices: Add m235 device information 2019-01-30 16:55:24 +01:00
Markus Heiser
932164458a icons: add application icons from repo's $git-toplevel/share/solaar/
Add application path from the repository to the search paths.

When you Install a project in editable mode (i.e. setuptools "develop mode")
from a local project path, the application path is ``./share``, relative to
git's top level folder. Add this path at the end of search path::

  echo "$(git rev-parse --show-toplevel)/share"
2019-01-30 12:38:54 +01:00
Markus Heiser
de79bf1b5c gtk.main(): make source more readable + comment about cli & gui 2019-01-30 12:38:54 +01:00
Markus Heiser
5944103aef setup.py: fix install_requires and add comment about OS packages 2019-01-30 12:38:54 +01:00
Markus Heiser
ab4226e066 setup.py: fix ModuleNotFoundError: No module named 'solaar'
Fix the "chicken or the egg" problem: while installing solaar, setup.py tries to
import solaar. This will only work if solaar already is installed before. On
first time installation a import exception is raised.::

$ pip install git+https://github.com/pwr/Solaar.git
Collecting git+https://github.com/pwr/Solaar.git
  Cloning https://github.com/pwr/Solaar.git to /tmp/pip-req-build-xzyoskf5
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-xzyoskf5/setup.py", line 11, in <module>
        from solaar import NAME, __version__
    ModuleNotFoundError: No module named 'solaar'
2019-01-30 12:38:54 +01:00
Peter Dave Hello
a66121db0d Optimize PNG images losslessly with zopflipng (#484)
11 images recompressed as below:

jekyll/images/bg_hr.png              | Bin 943 -> 96 bytes
jekyll/images/blacktocat.png         | Bin 1428 -> 432 bytes
jekyll/images/icon_download.png      | Bin 1162 -> 230 bytes
jekyll/images/sprite_download.png    | Bin 16799 -> 14650 bytes
share/solaar/icons/light_000.png     | Bin 1750 -> 1657 bytes
share/solaar/icons/light_020.png     | Bin 1942 -> 1895 bytes
share/solaar/icons/light_040.png     | Bin 1578 -> 1461 bytes
share/solaar/icons/light_060.png     | Bin 2442 -> 2319 bytes
share/solaar/icons/light_080.png     | Bin 1910 -> 1803 bytes
share/solaar/icons/light_100.png     | Bin 2376 -> 2249 bytes
share/solaar/icons/light_unknown.png | Bin 1108 -> 1007 bytes
2019-01-30 12:36:20 +01:00
Peter Dave Hello
eacfdea37f Add zh_TW Traditional translation po file (#485) 2019-01-30 12:35:35 +01:00
Peter Dave Hello
68b1f4e413 Update Data of Wireless Mouse M235 (#486) 2019-01-30 12:35:20 +01:00
CD Athuraliya
947035a7b7 Add K400 Plus (#492) 2019-01-30 12:30:36 +01:00
Xaver Maierhofer
e54134cda9 Update arch package information (#496) 2019-01-30 12:29:58 +01:00
Beni Cherniavsky-Paskin
1609c3e98a Display "K400 Plus" rather than just "Plus" (#483) 2018-12-30 18:19:38 +01:00
Alex Cherkayev
ed9aa76547 Added status info on features MOUSE_POINTER, VERTICAL_SCROLLING, HI_RES_SCROLLING, POINTER_SPEED and LOWRES_WHEEL to solaar show.
Renamed functions for HI_RES_SCROLLING and LOWRES_WHEEL features for consistency.
2018-11-20 16:29:38 +02:00
Danny
b8529030e6 setup.py: detect "--prefix=" correctly. (#433) 2018-08-15 18:46:50 +02:00
Peter Wu
1412a07899 Merge pull request #440 from nostrad/master
Improve trackball support
2018-08-15 15:14:08 +02:00
Mattias Jernberg
f79ad67ea7 Add trackball for all settings that mice have 2018-08-13 18:44:16 +02:00
Mattias Jernberg
dd8018a4d5 Prepare for allowing multiple device kinds in settings 2018-08-13 18:44:16 +02:00
Mattias Jernberg
350784eb70 Print an error message when assertion fails 2018-08-13 18:36:52 +02:00
Peter Wu
f0fc63e5b7 Merge pull request #295 from cschreib/master
Added support for MintX icon set (for Linux Mint integration)
2018-08-13 11:33:10 +02:00
Peter Wu
51375d4510 Merge pull request #454 from lopsided98/tree-scroll-fix
Fix device tree GUI hierarchy (Closes #453).
2018-08-12 12:22:50 +02:00
Ben Wolsieffer
2c0ea34694 Fix device tree GUI hierarchy. 2018-08-11 16:24:15 -04:00
Peter Wu
867edf8516 Merge pull request #146 from tristianc/master
Added border around tree view.
2018-08-11 17:55:37 +02:00
Peter Wu
dcd1a88250 Merge pull request #390 from Toshik1978/master
Added Logitech K375s support
2018-08-11 16:36:13 +02:00
Peter Wu
8f95dd323d Merge pull request #410 from lckarssen/add-mx-ergo
Update devices.md with MX Ergo trackball
2018-08-11 16:27:29 +02:00
Peter Wu
336b778398 Merge pull request #452 from lopsided98/hidpp-4.5-fixes
Fix errors related to sleep and power on/off (especially HID++ >=2.0 devices).

Closes #414 by @SonicFrog who originally came up with a similar fix for the connection notice.
2018-08-11 16:26:25 +02:00
Peter Wu
572c7f5e59 Merge pull request #450 from lopsided98/new-m705
Add support for new version of M705 (M-R0073).
2018-08-11 16:11:37 +02:00
Peter Wu
6b12b7935f Merge pull request #428 from Lin-Buo-Ren/patch-add-mk240-nano-information
Information and comments regarding Logitech MK240 NANO Combo
2018-08-11 16:06:08 +02:00
Peter Wu
ade2fbacec Merge pull request #399 from Valantin/patch-1
Add MX Master 2S descriptor
2018-08-11 16:03:18 +02:00
Ben Wolsieffer
a59368f3e7 Fix issues with HID++ >= 2.0 devices (particularly related to sleep).
* Don't assume 0x41 messages only occur when a device is first paired
    (prevents errors when waking from sleep or turning a device on)
  * Delay reads/writes when a device is powered on, to prevent broken pipe
    errors (hacky solution).
  * Don't clear status when a device connects, preventing settings from being
    cleared when a device sleeps or is turned off.
  * Fix typos.
2018-08-10 23:15:37 -04:00
Jason Tibbitts
d021d87656 Python 3.7 compatibility fixes
This fixes the python 3.7 incompatibilities arising from 'async'
becoming a reserved word.

The file lib/solaar/async.py is renamed to asks.py.  I picked the name
because it defines the TaskRunner class and it's the best I could come
up in fifteen seconds.

The async function in solar/ui/__init__.py is renamed to ui_async, and
the various imports of that function are changed to match.

Without this patch it doesn't build at all.  I am running with this
patch applied and everything appears to work as expected.

Signed-off-by: Jason Tibbitts <tibbs@math.uh.edu>
2018-08-07 12:51:32 -04:00
Ben Wolsieffer
5d0d353c74 Add support for new version of M705 (M-R0073). 2018-08-05 00:10:59 -04:00
林博仁(Buo-ren, Lin)
e00d680fc9 Information and comments regarding Logitech MK240 NANO Combo
Signed-off-by: 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
2018-04-12 14:15:47 +08:00
Peter Wu
59b7285fdf Merge pull request #412 from aimylios/aimylios-fedora
Update link to Fedora package in README.md
2018-02-02 16:20:47 +01:00
aimylios
988bdc2c8d Update link to Fedora package in README.md
The "Fedora Package DB" is not updated any more, refer to the new "Fedora Packages" instead.
2018-01-14 12:15:38 +01:00
Peter Wu
1a67b33860 Merge pull request #382 from mchehab/fix_solaar_start_issues
Fix solaar start issues
2018-01-12 18:11:45 +01:00
Lennart C. Karssen
d43bffc9d9 Update devices.md with MX Ergo trackball
This commit adds the Logitech MX Ergo to the list of supported devices.
2018-01-04 16:52:23 +01:00
Roberto Valentini
f8079f4f9d Add MX Master 2S descriptor
Add descriptor for MX Master 2S to support High Resolution Wheel, correct charge level and DPI configuration
2017-11-16 14:53:27 +01:00
Anton Krivenko
47e7f997d5 Added Logitech K375s support 2017-10-14 22:08:40 +03:00
Peter Wu
8c0cf9fe9b Merge pull request #342 from jrbenito/MK270-desc
Mk270 Combo information and descritptors
2017-09-26 23:16:58 +01:00
Peter Wu
fa8bd83ba3 Merge pull request #387 from ryantig/patch-1
Minor installation.md edit; gpasswd cmd
2017-09-26 23:13:59 +01:00
ryantig
697fb999b4 Minor installation.md edit; gpasswd cmd
Add '-a' after gpasswd to add USER to group plugdev.
Per: ➜ gpasswd --help
Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
  -h, --help                    display this help message and exit
  -Q, --root CHROOT_DIR         directory to chroot into
  -r, --remove-password         remove the GROUP's password
  -R, --restrict                restrict access to GROUP to its members
  -M, --members USER,...        set the list of members of GROUP
  -A, --administrators ADMIN,...
                                set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
2017-09-26 09:23:35 -07:00
Josenivaldo Benito Jr
aeb943fc9e Descriptor for K270 and M185
This K270 is the non unifying version and we know that it has, at
least, one variation (unifying) out there.

M185 mouse is also older, as per PR #337 there is at least two newer
versions of this mouse.

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-09-25 14:57:11 -03:00
Josenivaldo Benito Jr
434af009cb Information regarding MK270 combo
This combo is composed by K270 keyboard (non unifying version) and M185
mouse. Both paired to a nano receiver with PID c534.

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-09-25 14:55:47 -03:00
Peter Wu
cc010cb653 Merge pull request #385 from mchehab/pt-br-translation
Update pt_BR translation
2017-09-21 01:52:22 +01:00
Mauro Carvalho Chehab
e450e959a6 Update pt_BR translation
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-20 21:48:08 -03:00
Peter Wu
10f3421021 Merge pull request #345 from jrbenito/M510_v4.5
Add M510 (new version) to descriptors
2017-09-21 00:30:31 +01:00
Peter Wu
8eba60d617 Merge pull request #360 from lasers/remove-dead-links
Remove dead links
2017-09-21 00:25:11 +01:00
Peter Wu
e3d658ea10 Merge pull request #351 from mchehab/mx_anywhere2-v5
Mx anywhere2 v5
2017-09-21 00:16:15 +01:00
Peter Wu
ef1c051e10 Merge pull request #383 from skarmoutsosv/skarmoutsosv-patch-1
Update el.po
2017-09-21 00:11:04 +01:00
Peter Wu
bc566718b4 Merge pull request #384 from michal2229/master
Updated Polish translation
2017-09-21 00:09:05 +01:00
Michal B
22719f21fc Updated Polish translation 2017-09-19 20:00:43 +02:00
Vangelis Skarmoutsos
c51daa922c Update el.po 2017-09-11 21:02:14 +03:00
Mauro Carvalho Chehab
632d8804be listener: don't add elements if queue is full
When Solaar is loaded, if a large number of events happen,
it will lose the register events, as the queue size is too
small (16). So, check if the queue is full, in order to
avoid losing those important events.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-11 10:36:12 -03:00
Mauro Carvalho Chehab
a4b7194490 listener: fix device registration logic
The "already_known" var actually doesn't track if the device was
already registered or not.

That causes race issues at Solaar, causing it to sometimes not
detect a device.

Change the logic to always call register_new_device if the
corresponding events happen, and updating already_known
to reflect it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-11 10:34:23 -03:00
Mauro Carvalho Chehab
ea80c6d639 ui: notify.py: disable python Notify extension
For whatever reason, this doesn't work on Fedora 26:

06:47:05,925    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[20 02 0100 0000000000000000000000]
06:47:05,925    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <PairedDevice(2,2011,K520)> (1.0) custom notification Notification(2,01,00,000000000$
06:47:05,925  WARNING [ReceiverListener:hidraw1] logitech_receiver.notifications: <PairedDevice(2,2011,K520)>: unrecognized Notification(2,01,00,000000000000000000000$
06:47:08,806    ERROR [MainThread] solaar.ui.notify: showing <Notify.Notification object at 0x7f82c2484640 (NotifyNotification at 0x556fa0fc5a40)>
Traceback (most recent call last):
  File "./devel/solaar/lib/solaar/ui/notify.py", line 145, in show
    n.show()
Error: g-io-error-quark: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached (24)


So, disable it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-11 07:02:48 -03:00
Mauro Carvalho Chehab
a01e4b2efe hidpp20.py: handle gracefully errors at REPROG_CONTROLS_V4
At least with Anywhere Mouse MX 2, one reprogrammed key
fails to read:

    ERROR [MainThread] logitech_receiver.base: (3) device 3 error on feature request {0829}: 2 = invalid argument

That causes "solaar show" to crash.  Instead, let's handle
errors there gracefully, reporting it as:

         7: unknown:00C3              , default: unknown:009C                => unknown:00C3
             virtual, pos:0, group:4, gmask:0

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-10 22:53:19 -03:00
Mauro Carvalho Chehab
801bdfa224 Remove the hid++ high-res wheel notification
The best is to make the logitech-hidpp driver to switch to
hid++ notification mode when it starts. As we don't want users
to mangle with it, let's remove support from it.

PS.: I opted to keep this as a separate patch. This way, if
anyone needs to add support for it, in order to debug the
driver, it is just a matter of reverting this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-10 21:49:18 -03:00
Mauro Carvalho Chehab
410d100dc6 Add notification for high-resolution Wheel events
The event at address 0 is only produced while in HID++ mode.

The rachet event (address 0x10) happens on both HID and
HID++ modes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-10 21:49:18 -03:00
Mauro Carvalho Chehab
7078750a3f MX Anywhere2: Correct feature Smooth Scrool
Set wrongly to HI_RES_SCROLLING. Correct it to HIRES_WHEEL as reported
by MX Anywhere2.

relates to #283

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-09-10 21:49:18 -03:00
Mauro Carvalho Chehab
360c92f6b0 Add support for CLI show to display High Res Wheel settings
Add support for the high resolution wheel found on MX Anywhere 2.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-10 21:44:30 -03:00
lasers
2377fef3a8 Remove dead links 2017-07-24 03:44:00 -05:00
Peter Wu
684afa871e Merge pull request #337 from doctor64/m185
Basic support for M185 mouse
2017-07-17 00:08:19 +02:00
Peter Wu
dd2f884504 Merge pull request #354 from luzfcb/patch-1
update ubuntu solaar package informations
2017-04-16 12:20:27 +02:00
Fábio C. Barrionuevo da Luz
9dd05bb727 update ubuntu solaar package informations 2017-04-10 21:26:23 -03:00
Alex Cherkayev
e96a0fbfbb Add docs on both variants of Logitech M185 2017-03-21 18:03:07 +02:00
Alex Cherkayev
f9618dd0ab Add M185 keys reporting using REPROG CONTROLS V4 in cli
Add smooth scrolling using LOWRES_WHEEL
Add mouse speed selection using POINTER_SPEED
2017-03-21 18:02:59 +02:00
Alex Cherkayev
db0656967b Add basic 0xc534 receiver and M185 mouse support
Fix connection notification protocol for M185
Fixes from review
2017-03-21 18:00:44 +02:00
Peter Wu
53ec751cf1 Merge pull request #343 from jrbenito/K270-unifying
Wireless Keyboard K270 unifying
2017-03-21 00:07:26 +01:00
Peter Wu
45cc161cc7 Merge pull request #344 from jrbenito/MK520
MK520 Combo - Documentation
2017-03-21 00:02:52 +01:00
Peter Wu
1ccd2d1856 Merge pull request #346 from jrbenito/MK220-mouse
MK220 Combo descriptor for Mouse M150 and new docs
2017-03-20 23:58:49 +01:00
Josenivaldo Benito Jr
d9d37edc2f MK220 Combo descriptor for Mouse M150 and new docs
Thanks to @FabioBeneditto for providing information.

Depends on #337

fixes #222

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-03-10 10:47:23 -03:00
Josenivaldo Benito Jr
ae405871fb Add M510 (new version) to descriptors
Depends on #337

fixes #279

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-03-08 19:48:23 -03:00
Josenivaldo Benito Jr
f4700f07ce MK520 Combo
Wireless Keyboard K520
Wireless Mouse M310

Fully functional on Solaar at this point.

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-03-08 18:59:36 -03:00
Josenivaldo Benito Jr
d2d19a615d Wireless Keyboard K270 unifying
Descriptor and docs for K270 unifying version.

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2017-03-08 16:23:30 -03:00
Peter Wu
c36cc506b6 Merge pull request #327 from david-geiger/master
Update French translation
2017-01-03 12:27:22 +01:00
daviddavid
7180693f89 Update French translation
- by David Geiger <david.david@mageialinux-online.org>
2016-12-31 16:43:44 +01:00
Peter Wu
aa08356823 Merge pull request #144 from DJm00n/master
Russian translation added.
2016-12-23 15:16:06 +01:00
Dimitriy Ryazantcev
197ff7365d Add Russian translation 2016-12-21 00:18:01 +02:00
Dimitriy Ryazantcev
a0c6a6ce59 Update l10n pot template 2016-12-21 00:18:01 +02:00
Dimitriy Ryazantcev
934ecb821d Update l10n strings in code 2016-12-21 00:18:01 +02:00
Peter Wu
f0cf949336 Merge pull request #322 from jrbenito/anywhere2
Anywhere MX 2 device information and descriptor
2016-12-20 21:29:10 +01:00
Peter Wu
ecd245e8dc Merge pull request #317 from jrbenito/m560-devinfo
M560 device info contributed by @mhalano
2016-12-03 02:19:04 +01:00
Peter Wu
f65f000d38 Merge pull request #319 from jrbenito/k780
K780 add descriptor support and device information
2016-12-03 02:03:35 +01:00
Josenivaldo Benito Jr
3b60f205f7 K780 add descriptor support and device information
Device information provided by @faassen
Tests provided by @ralphdd

relates to #298

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-30 14:38:44 -02:00
Josenivaldo Benito Jr
d6c93cfcfe Anywhere MX 2 device information and descriptor
Information from mouse Anywhere MX 2 as provided by @fropeter
Descriptor for mouse based on dump provided

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-30 14:24:50 -02:00
Josenivaldo Benito Jr
cbd71f9d24 M510 HID++ V4.5 information
Dump from M510, newer version which uses HID++ V4.5 instead of V1.0.
Wireless PID 4051

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-30 14:07:42 -02:00
Josenivaldo Benito Jr
45d5119a5a M560 device info contributed by @mhalano
Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-30 14:07:27 -02:00
Peter Wu
773cb7f45f Merge pull request #312 from jrbenito/rules
Add receiver to udev rules
2016-11-29 02:16:36 +01:00
Josenivaldo Benito Jr
d74e3a9b92 Add receivers to udev rules
Sync lib/logitech_receiver/base_usb.py PIDs with udev rules

Fixes #125

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-24 09:54:24 -02:00
Peter Wu
fe1fba7ac6 Merge pull request #316 from david-geiger/master
Add French translation on desktop file and update maintainer in README.
2016-11-24 11:09:46 +01:00
daviddavid
4e20ef61c8 Add French translation on desktop file
- update README.md
2016-11-23 20:38:30 +01:00
Peter Wu
a750b32d14 Merge pull request #313 from jrbenito/doc
Update installation to point correct rules file
2016-11-23 13:46:27 +01:00
Josenivaldo Benito Jr
69006c48c6 Update installation to point correct rules file
Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-23 09:55:07 -02:00
Peter Wu
b12d03dfe3 Merge pull request #311 from jrbenito/nanoDocs
README nano receiver broken link
2016-11-22 23:46:00 +01:00
Peter Wu
ddbf93fb24 Merge pull request #309 from jrbenito/pt-br
pt-br: Improve translations
2016-11-22 23:22:23 +01:00
Josenivaldo Benito Jr
65c55b789c README nano receiver broken link
Fixes #261

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-22 11:37:40 -02:00
Josenivaldo Benito Jr
d83530bee3 pt-br: Improve translations
Some pt-br translation where ambiguous or too missing 'not' statement.
Add original translator, Mr. Drovetto, to the documentation.

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-21 17:25:22 -02:00
Peter Wu
e6c02f5c52 Merge pull request #303 from jrbenito/UTF8
UTF-8 file paths error on python 2
2016-11-18 22:22:11 +01:00
Josenivaldo Benito Jr
122d76d061 UTF-8 file paths error on python 2
Python 2 needs UTF-8 decode since it uses 'ascii' decode by default.
Python 3 might have problems converting back to UTF-8 in case of Unicode
surrogates

Signed-off-by: Josenivaldo Benito Jr <jrbenito@benito.qsl.br>
2016-11-18 15:00:20 -02:00
muzena
fb1442dbcb Add croatian translation 2016-11-15 16:34:20 +01:00
muzena
0b8141f092 Logitech G700 and G700s Gaming mouse support 2016-11-14 16:39:23 +01:00
Peter Wu
137c32262b Merge pull request #242 from drovetto/master
Added brazilian portuguese translation
2016-11-10 13:20:25 +01:00
Peter Wu
7c726738b1 Merge pull request #185 from zipperten/patch-4
Update sv.po
2016-11-10 13:19:35 +01:00
Peter Wu
2570f584b9 Merge pull request #228 from berte/master
add turkish translation file
2016-11-10 13:07:29 +01:00
Peter Wu
4c1f568fab Merge pull request #141 from ghost
Italian translations
2016-11-10 13:04:42 +01:00
Peter Wu
27bd71253e Merge pull request #129 from Tomin1/finnish
Finnish translations
2016-11-10 12:57:06 +01:00
Jhonny Oliveira
9a9a82016f Add support to G700 Gaming Mouse receiver 2016-11-10 12:25:54 +01:00
Jhonny Oliveira
aa03cef61f Add support to MK320 mouse and keyboard combo 2016-11-08 09:17:02 +01:00
Peter Wu
c14e30b6f5 Fix crash when AppIndicator3 is unavailable
Convert ValueError to an ImportError (hack!) to allow the fallback code
to function.

Fixes https://github.com/pwr/Solaar/pull/276
2016-11-06 19:50:32 +01:00
cschreib
b5d43cdc3c Added support for MintX icon set (for Linux Mint integration) 2016-10-22 13:49:50 +02:00
Peter Wu
1edd8a577b Merge pull request #290 from verybadsoldier/invert-online-bit
Fixes #289.
2016-10-03 01:58:51 +02:00
vbs
358e0958bb fixed wrong interpretation of bit 6 of the notification byte which indicates if the link could be established (bit cleared) or not (bit set)
https://lekensteyn.nl/files/logitech/logitech_hidpp10_specification_for_Unifying_Receivers.pdf
2016-09-17 18:05:03 +02:00
Peter Wu
fa5fba796b Merge pull request #263 from MagicFab/patch-1
Update es.po
2016-09-04 22:02:38 +02:00
Peter Wu
ce215228f3 Merge pull request #277 from wsargent/patch-1
Use HTTPS for github based repositories
2016-08-09 15:02:03 +02:00
Peter Wu
28e43395ab Merge pull request #259 from javitonino/support-mx-master
Support mx master
2016-07-24 23:09:28 +02:00
Will Sargent
e09231c05a Use HTTPS for github based repositories
Github Pages support HTTPS natively, so it's better for security to default to that.
2016-07-12 09:02:28 -07:00
Javier Torres
f29de0f3dd Update docs: mx master supports smart shift 2016-06-09 19:46:03 +02:00
Javier Torres
ba540338e2 Add smart shift feature for MX master 2016-06-09 19:46:03 +02:00
Javier Torres
2442fee341 Add support for range features in GUI 2016-06-09 19:46:03 +02:00
Javier Torres
bbadd3e755 Add support for range features in CLI 2016-06-09 19:46:03 +02:00
Javier Torres
2fdce2f938 Add range features 2016-06-09 19:46:03 +02:00
Javier Torres
f1fad2d16b Add range validator 2016-06-09 19:46:03 +02:00
Peter Wu
8a5700b44e Merge pull request #270 from cjmayo/appindicator
Fix: "AppIndicator3 was imported without specifying a version first"
2016-05-21 19:28:19 +02:00
Chris Mayo
e046455a05 Fix: "AppIndicator3 was imported without specifying a version first"
PyGIWarning: AppIndicator3 was imported without specifying a version
first. Use gi.require_version('AppIndicator3', '0.1') before import to
ensure that the right version gets loaded.
2016-05-03 20:20:46 +01:00
Peter Wu
ddbc27486c Merge pull request #136 from erik-smit/gobject_not_allow_None
Fixes a TypeError on older GObject libraries (as evident with Ubuntu 12.04 and OpenSUSE 12.3).
2016-04-17 14:11:15 +02:00
Peter Wu
2041007b38 Merge branch 'features'
Automatically detect FN swap feature and DPI adjustment on some newer
devices. DPI adjustment partially addresses support for the MX Master
(#208), Smart shift is still missing.
2016-04-17 12:43:15 +02:00
Fabian Rodriguez
7b7e17819e Fixed "Hardware" following comments 2016-04-01 07:55:13 -04:00
Fabian Rodriguez
f855cd60e1 Update es.po
MIssing spaces, small terms corrections, typos
2016-03-31 19:22:55 -04:00
Peter Wu
883ed9549d Fix DPI list assertion 2016-03-25 00:06:00 +01:00
Peter Wu
d1858f747b Assume 7 words for the DPI list response
HID++ 2.0 responses are 20 bytes, once you strip the 4 byte common
header and 1 byte sensorIdx, you have 15 bytes left. Since DPI values
are 16-bit words, only 14 bytes should be used.
2016-03-24 16:59:05 +01:00
Peter Wu
aa7d1b6410 Skip sensorIdx in getSensorDpiList response 2016-03-24 15:13:06 +01:00
Peter Wu
bc3a98ddb2 Merge pull request #258 from cjmayo/gentoo
readme Gentoo link updated with official package
2016-03-24 14:58:34 +01:00
Peter Wu
5b01f375e0 Merge pull request #254 from emerham/master
Adding Logitech mx 1100 cordless laser mouse to discriptors
2016-03-24 14:56:55 +01:00
Peter Wu
dd2755909d cli/config: fix error message
Attempt to fix:

    $ bin/solaar config master dpi higher
    solaar: error: coercing to Unicode: need string or buffer, int found

The DPI choices are integers, therefore cast it to a str.
2016-03-18 12:27:16 +01:00
Peter Wu
b052ab9ef0 Fix thinko in Adjustable DPI setting
There are three bytes forming the parameter, the sensor ID is the MSB,
not LSB.
2016-03-18 12:14:15 +01:00
Peter Wu
9c768d60a1 Add full support for adjustable DPI
Feature 0x2201 as used by the MX Master. Valid DPI values are read
directly from the device. Based on Logitech specifications.
2016-03-15 23:37:39 +01:00
Matthew Brabham
d1d0ab85ff Updated mouse device settings and deffinition. Added docs for the MX 1100 2016-03-14 13:05:05 -07:00
Peter Wu
e1eee2e078 Fix "Gtk was imported without specifying a version first"
Fixes the following warnings:

    sys:1: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
    sys:1: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded.
2016-03-14 11:33:05 +01:00
Peter Wu
5c38f90cd6 Merge branch 'issue/199'
Fixes #136.
2016-03-14 11:10:49 +01:00
Peter Wu
45d49b9de8 settings: fix Python 3 compat for boolean values
As observed for the fn-swap setting.
2016-03-14 01:48:56 +01:00
Peter Wu
4ccb8ab26d Merge pull request #257 from hobarrera/subtle-critical-battery-notification
Don't open a main window when battery is critical
2016-03-14 00:36:26 +01:00
Peter Wu
ab162583e4 cli: do not die on missing description
The DPI setting has no description, do not try to display it.
2016-03-13 23:59:21 +01:00
Chris Mayo
e25b47aa1c readme Gentoo link updated with official package 2016-03-05 16:27:16 +00:00
Hugo Osvaldo Barrera
63a98819a6 Don't open a main window when battery is critical
The main window suddenly opening when a battery is critical is very
disruptive. It can pop up on all sort of undesirable scenarios.

Rather than catch users of guard, merely show a notification that the
battery is critical.
2016-02-19 03:25:55 -03:00
Peter Wu
27d3d80d30 Merge pull request #256 from SlySven/add_m175DestinguishingDetails
add: wpid for M175 to distinguish between it and M185 wireless mouse (Fixes #255)
2016-02-11 18:30:02 +01:00
Stephen Lyons
478381a994 add: wpid for M 175 to distinguish between it and M185 wireless mouse
I own the former and wanted to correct this detail which caused the wrong
model to be shown in GUI.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
2016-02-10 19:09:25 +00:00
Matthew Brabham
51a15a960f Adding Logitech mx 1100 cordless laser mouse to discriptors 2016-01-26 11:04:47 -08:00
Peter Wu
92967eed23 Merge pull request #249 from mulkieran/master-pyudev
Fix some bugs in udev.get_indexed_string.
2016-01-13 15:24:51 +01:00
Peter Wu
57338303e8 Merge pull request #239 from marcbelmont/patch-1
Add setting for K400 Plus keyboard

devices.md was updated in #174
2016-01-09 12:37:35 +01:00
Peter Wu
e735ce10f0 Merge pull request #174 from IrvinPoe/patch-1
Update devices.md with K400 Touch
2016-01-09 12:36:27 +01:00
mulhern
d75b6d2f2b Fix some bugs in udev.get_indexed_string.
* from_device_number raises an exception if no device found, rather than
returning None. So, instead of checking the result, catch the exception.
* Use Attributes.get() method instead of checking containment and using the
index operator. This is really the only correct way, see rhbz#1267584.

Effect of the changes:
Previously, if no device was found this method would raise an exception.
Now it returns None instead.
Previously this method read the value of the attribute corresponding to key
twice, once via 'key in attributes' and again when accessing the key.
Now, it just reads it the one time.

Reason for noticing all these problems:
In pyudev-0.18 the Attributes class is fixed, and no longer has the []
operator or __contains__ method or other methods which require a total
mapping. This patch fixes several bugs while simultaneously avoiding these
removed operators.

Signed-off-by: mulhern <amulhern@redhat.com>
2015-12-23 09:22:48 -05:00
sadj
bd1470dad7 Added brazilian portuguese translation. 2015-10-08 18:52:14 -03:00
Marc Belmont
15f97681ef Add setting for K400 Plus keyboard
The new_fn_swap works on the K400 Plus model.
2015-08-24 19:01:21 +02:00
Behzat
7075ce910a add turkish translation file 2015-07-16 22:07:38 +03:00
Peter Wu
5ba816dd38 [WIP] Support MX Master with DPI adjustment support (#208)
It's not known whether the DPI ranges can be queried, so let's set
hard-code some values for now. Step size is 200. Does this need to
be changed?

TODO: need a capture of whether this is really a read function.
2015-05-31 15:53:26 +02:00
Peter Wu
a515cc3860 Auto-detect FN swap feature for newer devices 2015-05-31 10:56:57 +02:00
Peter Wu
73344cbf26 Simplify feature checking
Make mapping features to settings more readable. No functional changes.
2015-05-31 10:38:49 +02:00
Peter Wu
cf27328d13 Merge branch 'updates'
Documentation updates.
2015-05-27 23:43:10 +02:00
Peter Wu
869f1e4791 doc/devices.md: add MX Master
Information from (IRC) xaver. See also #208.

Product page at http://www.logitech.com/product/mx-master
2015-05-27 23:40:58 +02:00
Peter Wu
e2d65a690e hidpp20: update features list
Based on SetPoint6.65.62_32.exe and Options_2.10.73.exe (features.xml,
defaults.xml, LogiOptionsMgr.exe).

The names are based on the named next to the feature ID. For duplicates,
_2 is appended to the name.

This commands helps parsing numbers from debug prints:

    strings LogiOptionsMgr.exe |
    sed -nr 's/.*(Feature[0-9a-fA-F]{4})/\1 /p' | sort |
    awk 'tolower(a)!=tolower($1){print"";a=$1}1;' | less -S
2015-05-27 23:20:43 +02:00
Peter Wu
3141f06472 Fix crash due to non-locatable icon names (#199) 2015-05-27 23:16:39 +02:00
Peter Wu
b88cf5a07b Ignore HID++ devices on Linux 3.19+
Additionally update the docuentation to reflect new module names.
2015-05-14 23:28:04 +02:00
Peter Wu
a344ad9867 docs: document Smooth Scrolling for more devices
Based on the HI_RES_SCROLLING feature (0x2120) in docs/devices/. Tested
with a M525.
2015-05-14 23:06:14 +02:00
CzBiX
76e327d2fa update docs for M325 2015-05-08 13:27:29 +08:00
CzBiX
0ae0ef195a support switch smooth scroll feature 2015-05-08 13:20:46 +08:00
Peter Wu
b1f74a1280 Merge pull request #213 from titanofold/add-M570
Add M570 Trackball device information
2015-04-24 09:39:37 +02:00
Aaron W. Swenson
30431fbfb8 Add M570 Trackball detail 2015-04-20 14:18:07 -04:00
Peter Wu
fb4c055fbf Merge pull request #193 from dmsc/master
Add support for MK220 mouse-keyboard combo device.
2015-03-07 18:12:21 +01:00
Daniel Serpell
3ea51fe1a2 Add support for MK220 mouse-keyboard combo device.
The MK220 receiver has usbid 046d:c52e, adding this id as a generic
receiver is enough to show the mouse and keyboard charge status.
2015-03-06 08:07:22 -03:00
Peter Wu
afd36764c2 Merge pull request #202 from decibyte/master
k830 support + support for NEW FN INVERSION
2015-03-06 11:45:53 +01:00
Mikkel Munch Mortensen
b694809394 Updates to dos for k830 keyboard. 2015-03-05 19:17:00 +01:00
Mikkel Munch Mortensen
66296265ba Descriptor for k830. 2015-03-05 19:15:12 +01:00
Mikkel Munch Mortensen
952495ce04 Support for NEW_FN_INVERSION. 2015-03-05 19:14:28 +01:00
Peter Wu
29eb377267 Merge pull request #203 from HugoJH/master
Added Spanish Translation
2015-03-05 15:04:45 +01:00
Hugo Jiménez Hernández
47345e1dcb Added Spanish Translation 2015-03-05 13:05:59 +00:00
Peter Wu
36fc6de760 Merge pull request #168 from jtsagata/master
Add Greek language translation
2015-03-05 13:07:25 +01:00
Peter Wu
6c0aca8c63 Merge pull request #170 from SubOptimal/translation
add german translation
2015-03-05 13:06:52 +01:00
Peter Wu
bd93689109 Merge pull request #171 from dirtycold/master
added Chinese (simplified) translation
2015-03-05 13:06:08 +01:00
Peter Wu
4e5d4853d6 Merge pull request #173 from stickster/master
Add Fedora package information to README.md
2015-03-05 13:05:37 +01:00
zipperten
bb2361a986 Update sv.po
minor changes
2014-10-23 09:49:05 +02:00
IrvinPoe
7c8d4815f0 Update devices.md
Add Nano receiver 046d:c52b in the supported devices, and FN swap works on K400.
2014-08-17 17:47:48 +02:00
Paul W. Frields
0f05589cd6 Add Fedora package information to README.md 2014-07-30 14:39:46 -04:00
ZH
21db60a14e fix compiling Chinese simplified translation 2014-07-13 15:13:10 +08:00
ZH
091c28ca8b added Chinese (simplified) translation 2014-07-13 10:13:17 +08:00
Frank Dietrich
9af353dd32 add german translation 2014-07-02 02:12:16 +02:00
Giannis Tsagatakis
981ff00ca3 Add Greek language translation 2014-06-13 14:32:57 +03:00
Daniel Pavel
ec0197df3d Merge pull request #154 from mmehnert/patch-1
Update TK820 compatibility information
2014-04-20 22:54:27 +03:00
mmehnert
2111107ff4 Update TK820 compatibility information 2014-04-19 14:50:21 +02:00
Tristin Celestin
2b08c5e0c9 Added border around tree view. 2014-01-01 21:45:44 -05:00
Daniel Pavel
cc8a6c4ab5 Merge pull request #134 from FrederikNS/patch-1
Added Smooth Scrolling to the Performance Mouse MX
2013-12-13 09:43:16 -08:00
Michele Olivo
437e17cf37 Added Italian translation 2013-12-13 18:09:46 +01:00
Daniel Pavel
22191d7d0c Merge pull request #139 from parkerlreed/patch-1
Update devices.md
2013-12-13 07:48:21 -08:00
parkerlreed
ba890c2d2e Update devices.md
Added a little bit of info for the M325
2013-12-02 10:46:47 -05:00
erik-smit
9a6cdd9cee TypeError: Argument 3 does not allow None as a value 2013-10-31 11:16:38 +01:00
Frederik Nordahl Sabroe
32324f3e66 Added Smooth Scrolling to the Performance Mouse MX
I tested solaar with my Performance Mouse MX, and the smooth scrolling worked like a charm, I just need to find a way to make the scrolling speed slower now.
System is Linux Mint 15.
2013-10-14 17:18:49 +02:00
Tomi Leppänen
ffe297b239 Merge branch 'finnish' of github.com:Tomin1/Solaar into finnish
Conflicts:
	po/fi.po
	po/solaar.pot
2013-09-29 16:37:33 +03:00
Tomi Leppänen
7fe5983f7c Fixed a bit Finnish translation.
Some fixes to Finnish translation.
A few strings were marked as fuzzy.
Run po-compile.sh.
2013-09-29 16:34:02 +03:00
Tomi Leppänen
d5f14bb5f8 Merge branch 'master' into finnish
Conflicts:
	po/solaar.pot - run po-compile.sh
2013-09-29 16:24:06 +03:00
Daniel Pavel
f3049ed451 Merge pull request #126 from slaveriq/master
Fixing a crash when level is type None
2013-09-25 10:08:09 -07:00
David Plassmann
8485494ea7 It should check for None specificly 2013-09-25 14:12:53 +02:00
David Plassmann
7a75813a84 level is returned as None in hidpp10.py when the performanceMX mouse is
charging. Since the battery state is unknown when beeing recharged it
will now return "N/A".
Before it would crash becasue level was None and could not be inserted
using %d.
2013-09-24 16:56:50 +02:00
Daniel Pavel
35830e3d50 Merge pull request #121 from Lekensteyn/doc-updates
Documentation updates: DJ pdf and devices
2013-09-04 16:56:46 -07:00
Tomi Leppänen
46fd4dac56 Merge branch 'master' into finnish
Conflicts:
	po/solaar.pot - Run tools/po-compile.sh
2013-09-01 12:21:51 +03:00
Peter Wu
ebd8635f84 docs/devices: add K750 (from Julien Danjou)
Received from Julien Danjou on the devkit mailing list.
2013-08-29 19:06:03 +02:00
Peter Wu
efbf43b472 docs/logitech: Add DJ receiver spec
docx files is taken from hidpp20 public folder[1] and was converted to
PDF format using:

    loffice --convert-to pdf ...docx
    qpdf --linearize orig.pdf ...pdf

Mirrored on https://lekensteyn.nl/files/logitech/.

 [1]: https://drive.google.com/#folders/0BxbRzx7vEV7eWmgwazJ3NUFfQ28
2013-08-27 18:06:29 +02:00
Peter Wu
8a6d8e2ed1 docs/devices/m525: add ltunify and solaar output 2013-08-27 18:06:29 +02:00
Peter Wu
bff99799ab docs/devices/t650: add reprogrammable keys 2013-08-27 18:06:29 +02:00
Peter Wu
1434b2a50d Update features and keys list
Updated to information available from SetPoint 6.61.15.
2013-08-27 17:55:45 +02:00
Daniel Pavel
c3fdbfb643 translate battery alerts (fixes #119) 2013-08-25 23:03:25 +03:00
Daniel Pavel
a9ebac264f po formatting updates 2013-08-25 01:34:27 +03:00
Daniel Pavel
60a591ab6b Merge pull request #114 from zipperten/patch-2
Update sv.po
2013-08-24 15:32:23 -07:00
Daniel Pavel
ab3a6b50d4 Merge pull request #118 from Lekensteyn/fixes
Regression fixes: --hidraw option, python3, hidpp10
2013-08-24 14:05:11 -07:00
Peter Wu
b193b39701 Fix missing reprogrammable keys
The assumption that the Features IDs are in increasing order does not
hold. This causes the feature check for REPROG CONTROLS (1B00) to fail,
therefore remove the micro-optimisation.

While at it, rename variables and document the functions better.
2013-08-23 21:33:45 +02:00
Daniel Pavel
806d67a72f Merge pull request #117 from Lekensteyn/doc-updates
docs: added T400, T650, Anywhere MX dumps
2013-08-21 13:12:23 -07:00
Peter Wu
9c465cd998 Fix wrong register name for illumination (hidpp10)
Broken since 9a2a28e, this causes a lot of exceptions for every move.
2013-08-21 21:47:24 +02:00
Peter Wu
024a71b618 solaar: add --hidraw option again
This options allows the devices list to be restricted which got removed
in:

    commit 3b75b69970
    Author: Daniel Pavel <daniel.pavel@gmail.com>
    Date:   Fri Aug 9 12:25:47 2013 +0200

        merged solaar-cli functionality into main solaar binary

solaar-cli is still busted, but since it is deprecated, it's probably
fine.
2013-08-21 21:47:24 +02:00
Peter Wu
f144816256 solaar-cli: fix argument parsing in Python 3 again
Fix from e3a887f36c, this got removed
in:

    commit 3b75b69970
    Author: Daniel Pavel <daniel.pavel@gmail.com>
    Date:   Fri Aug 9 12:25:47 2013 +0200

        merged solaar-cli functionality into main solaar binary
2013-08-21 21:47:24 +02:00
Peter Wu
f0eeea8625 docs/devicesmd: update with T400 and Anywhere MX 2013-08-21 21:45:04 +02:00
Peter Wu
72819b6130 docs/devices: add Anywhere MX mouse
Thanks to Nestor from Logitech for providing me this device.

This mouse has two buttons on the left, currently mapped to 8 (bottom
button) and 9 (top button).

Note: setting bit 1 of register 01 does odd things in KDE. I looked in
SetPoint 6.61.15 and could not find an option for "Side Scroll",
perhaps it is not applicable here?
2013-08-21 21:45:04 +02:00
Peter Wu
23e4f32e11 docs/devices: add T650 touchpad
Thanks to Nestor from Logitech for providing me this device.

The firmware on this touchpad features out-of-the-box tap-to-click
(no host software needed). The following features work with no
additional software (tested in Linux 3.11-rc6 with KDE 4.11):

- Left-click: single tap
- Middle-click ("scroll-wheel click"): three finger tap
- Right-click ("context menu"): two finger tap or tap in right corner
- Navigate left ("Back"): three finger slide to left
- Navigate right ("Forward"): three finger swipe to the right
- Scroll (up/down/right/left): slide with two fingers
- Move pointer (any direction): slide

Click and drag is also possible (for example, for selecting text or
moving windows with Super + right/left-click in KDE), just press harder
on the surface. Right click is in the bottom-right corner, left is
anywhere else.

Sliding with three fingers up acts if you pressed Super. Sliding with
three fingers down triggers a key press of Super + D (normally the
"Show Desktop" in MSWIN).

Not working as it requires additional software:

- Pinch-to-zoom.
- Four-finger gestures, likely needs to be controlled via features as
  there are no HID messages at all.
2013-08-21 21:45:04 +02:00
Peter Wu
243d1548dc docs/devices: add Zone Touch Mouse T400
Thanks to Nestor from Logitech for providing me this device.

User experience note: the upper part (covering two-third) of the middle
button is the "METRO START SCREEN" button, the smaller bottom part
provides the "middle mouse button" (MIDLLE BUTTON). This might be OK
for a desktop user, but it's awful if you have a big hand like me and
make much use of it for opening URLs in a new tab or pasting stuff.

On the other hand, the middle button can be remapped and there is both
horizontal and vertical scrolling functionality.
2013-08-21 21:45:04 +02:00
zipperten
c3bc56f306 Update sv.po
fix for paring lock notification.
2013-08-20 22:49:08 +02:00
Daniel Pavel
288c607069 Merge pull request #113 from david-geiger/patch-1
Ouch. Added 'solaar.cli' on setup.py files (line 74 "packages=").
2013-08-13 02:20:58 -07:00
david_david
55c307d0e5 added 'solaar.cli' on setup.py files (line 74 "packages=")
missing packages 'cli' from "/lib/solaar/" and needed for building package rpm.

[david@david ~]$ solaar -dd
Traceback (most recent call last):
  File "/usr/bin/solaar", line 43, in <module>
    import solaar.gtk
  File "/usr/lib/python2.7/site-packages/solaar/gtk.py", line 26, in <module>
    import solaar.cli as _cli
ImportError: No module named cli
2013-08-13 11:02:13 +02:00
Daniel Pavel
69febfcea5 don't rely on upower to check devices after wake-up (#111)
still use upower resume events to ping devices, just in case
the old behaviour is available with a command-line option
2013-08-12 15:22:34 +02:00
Daniel Pavel
9934755566 more translation fixes (#108) 2013-08-12 00:32:19 +02:00
Tomi Leppänen
a7561eaa9b Updated Finnish translation
Merge branch 'finnish' of github.com:Tomin1/Solaar into finnish

Conflicts:
	po/fi.po
2013-08-11 17:24:06 +03:00
Tomi Leppänen
689661169a Updated Finnish translation. 2013-08-11 17:22:40 +03:00
Tomi Leppänen
eac40abc3e Updated Finnish translation. 2013-08-11 16:56:30 +03:00
Tomi Leppänen
372e4e0949 Merge branch 'master' into finnish
Conflicts:
	po/solaar.pot - run tools/po-compile.sh
2013-08-11 16:48:12 +03:00
Daniel Pavel
e42f7f1393 jekyll configuration update 2013-08-09 12:29:02 +02:00
Daniel Pavel
3860d4a56b changelog update 2013-08-09 12:28:47 +02:00
Daniel Pavel
3b75b69970 merged solaar-cli functionality into main solaar binary 2013-08-09 12:25:47 +02:00
Daniel Pavel
a4f0eab855 updated descriptors with a few more devices 2013-08-08 22:44:23 +02:00
Daniel Pavel
f54ea27d97 updated translator credits in about dialog 2013-08-08 22:43:32 +02:00
Daniel Pavel
db48fe1b40 re-formatted translation files 2013-08-08 22:41:57 +02:00
Daniel Pavel
d0a0e902a7 added translator credits to i18n documentation 2013-08-08 22:38:59 +02:00
Daniel Pavel
95a6412d5c po-update.sh without arguments re-formats all translation files 2013-08-08 22:22:39 +02:00
Daniel Pavel
5faecbf4f3 some strings were untranslated; fixes #100 2013-08-08 21:50:04 +02:00
Daniel Pavel
5af1719384 tray: always pick the lowest battery, if the user hasn't already 2013-08-08 21:49:59 +02:00
Daniel Pavel
6a66370ffe scrolling over the tray icon switches among devices; fixes #101
It now works for the standard systray as well, not just the
appindicator.
2013-08-08 21:49:54 +02:00
Daniel Pavel
c0874220d2 don't str() translated device status; fixes #108 2013-08-08 21:49:50 +02:00
Daniel Pavel
9c67b1b494 debian packaging updates 2013-08-08 21:49:35 +02:00
Daniel Pavel
22656d5b82 use Gtk.Application properly 2013-08-08 21:49:35 +02:00
Daniel Pavel
d55963caba clean-up in usb IDs 2013-08-08 21:49:35 +02:00
Daniel Pavel
413cebe40f delay some UI initialization until necessary 2013-08-08 21:49:35 +02:00
Daniel Pavel
140ffae01a Merge pull request #106 from damsweb/master
Update fr.po to fix a few typo/mistakes
2013-08-08 07:12:01 -07:00
Daniel Pavel
68251777fb Merge pull request #107 from damsweb/patch-2
Update README.md to add Mageia
2013-08-08 06:29:21 -07:00
Damien Lallement
188b20a4f1 Update README.md to add Mageia 2013-08-07 16:43:46 +02:00
Damien Lallement
5fba1db11c Update fr.po to fix a few typo/mistakes
Fixing feminine words and fix bad translations for connection.
2013-08-07 14:47:46 +02:00
Daniel Pavel
21b1a722fc Merge pull request #102 from david-geiger/patch-1
Add French translation (fr.po) (pwr/Solaar#97)
2013-08-06 07:51:32 -07:00
Daniel Pavel
715c50685b Merge pull request #103 from zipperten/master
Added Swedich translation
2013-08-06 07:50:46 -07:00
Tomi Leppänen
dd0ba17351 The first version of Finnish translation.
I don't have much experience in translating, so I'd like my translations
to be reviewed by someone with more experience.
Some translations aren't that good. Especially I'd like to know if there
is any better or newer word for pairing in Finnish. Some problems I've
already marked in po/fi.po. I'd imagine that the longest texts need the
most fixing.
2013-08-05 19:47:03 +03:00
david_david
576dd4cdd4 Update fr.po
update "Last-Translator:"
2013-08-05 08:15:44 +02:00
david_david
a2a0380401 Update fr.po
#: lib/solaar/ui/about.py:49
#: lib/solaar/ui/window.py:640
2013-08-04 23:08:47 +02:00
david_david
f1a85f45bd Update fr.po 2013-08-04 11:51:53 +02:00
david_david
200cf48df4 Update fr.po 2013-08-04 11:50:24 +02:00
david_david
14b5993dc3 Create fr.po 2013-08-03 16:48:12 +02:00
david_david
585ba93588 Create fr.po 2013-08-03 16:44:30 +02:00
zipperten
e30a692a6e Added Swedich translation 2013-07-30 01:51:35 +02:00
Daniel Pavel
edc563e0e4 release 0.9.2 2013-07-24 11:40:54 +02:00
Daniel Pavel
969ca59948 translation credits: order languages alphabetically 2013-07-24 11:39:45 +02:00
Daniel Pavel
53abd22176 packaging: add compiled locale files 2013-07-24 11:06:58 +02:00
Daniel Pavel
f449b37bda minor update to the devices doc 2013-07-23 22:50:37 +02:00
Daniel Pavel
c97f4082dd translation credits updated 2013-07-23 22:49:47 +02:00
Daniel Pavel
5e6761c61b use relative paths in .pot/.po comments
otherwise the comments get changed when someone else run po-update
2013-07-23 22:48:59 +02:00
Daniel Pavel
b2c87b4f80 Merge pull request #95 from nexces/master
Added Polish translation
2013-07-23 13:36:30 -07:00
Adrian 'Nexces' Piotrowicz
58fcb074ff Updated po-update.sh script for use in (x)buntu.
Added another location to scan in function unfmt() due to fact that gtk30.mo and gtk30-properties.mo are found in /usr/share/locale-langpack/ instead of /usr/share/locale/.
2013-07-23 10:49:25 +02:00
Adrian 'Nexces' Piotrowicz
dbff65a4d1 Updated POT (translation template) 2013-07-23 10:49:05 +02:00
Adrian 'Nexces' Piotrowicz
a7ac589692 Added Polish translation 2013-07-23 10:46:56 +02:00
Daniel Pavel
3d4570cd1f check the Gtk bindings version at start-up 2013-07-20 06:22:15 +02:00
Daniel Pavel
b6bc35ed3e K800: added support for hand detection 2013-07-19 11:49:30 +02:00
Daniel Pavel
5d4d0c07ad use () instead of [] where possible 2013-07-19 11:48:40 +02:00
Daniel Pavel
15cb97c56e udev devices may not have all the attributes; fixes #93 2013-07-19 11:46:50 +02:00
Daniel Pavel
f902b32755 m515 device scan 2013-07-18 20:40:38 +02:00
Daniel Pavel
fcfc7cd6fc a few more asserts in descriptors
just testing stuff...
2013-07-18 20:38:05 +02:00
Daniel Pavel
c3718d22d6 minor clean-ups 2013-07-18 20:36:27 +02:00
Daniel Pavel
2829acd6f5 added side-scrolling toggle setting 2013-07-18 20:35:39 +02:00
Daniel Pavel
c35ae8ffc9 added wpid to T650 descriptor 2013-07-18 20:34:29 +02:00
Daniel Pavel
f7159e9338 properly mask flags when writing device settings; fixes #86 2013-07-18 20:33:52 +02:00
Daniel Pavel
4074fb7750 trim the codename to the declared length (fixes #90) 2013-07-18 16:23:34 +02:00
Daniel Pavel
444169d84b added descriptor for V550 Nano 2013-07-18 15:26:53 +02:00
Daniel Pavel
5d5f97a776 Gtk.Application.get_dbus_object_path my be missing 2013-07-18 14:06:51 +02:00
Daniel Pavel
a8c5d3bc24 Nano receivers were unsupported on kernel 3.2; fixes #88 2013-07-18 14:01:36 +02:00
Daniel Pavel
dd2a18d60e added documentation for translators 2013-07-17 20:36:39 +02:00
Daniel Pavel
a3f9860181 added descriptor for V450 Nano; fixes #89 2013-07-17 20:02:31 +02:00
Daniel Pavel
1fed000855 added wpid to M515 desccriptor 2013-07-17 19:54:28 +02:00
Daniel Pavel
61dfefde94 internationalized most strings; fixes #79
some might have slipped through the cracks
2013-07-17 19:53:21 +02:00
Daniel Pavel
454fbcbc6e Merge remote-tracking branch 'origin/master' 2013-07-16 16:41:53 +02:00
Daniel Pavel
8112e90ded website: replace the png logo with embedded svg 2013-07-16 16:36:00 +02:00
Daniel Pavel
a4c0ad3d73 added M345 descriptor info 2013-07-16 12:51:01 +02:00
Daniel Pavel
30f2afacb7 debian packaging: cleaned-up the debian/ files
according to feedback on debian bug #715172
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=715172)
2013-07-16 12:50:47 +02:00
Daniel Pavel
2a27c1d14e Merge pull request #87 from Lekensteyn/updates
docs/devices: add M345 (HID++ 2.0)
2013-07-16 03:39:28 -07:00
Peter Wu
cccf4ec428 docs/devices: add M345 (HID++ 2.0) 2013-07-16 12:31:56 +02:00
Daniel Pavel
38c76393b1 added copyright notices to all source files 2013-07-15 17:54:42 +02:00
Daniel Pavel
ce9b10dc2d started i18n support 2013-07-15 17:16:44 +02:00
Daniel Pavel
13e89dc219 post-build updates: debian/changelog and jekyll config 2013-07-13 13:23:52 +02:00
Daniel Pavel
16af3a9acc version 0.9.1 2013-07-13 11:24:41 +02:00
Daniel Pavel
c690b2c9e9 minor descriptors clean-up 2013-07-13 11:15:23 +02:00
Daniel Pavel
43ab629a26 moved logitech.unifying_receiver package to logitech_receiver 2013-07-12 22:48:09 +02:00
Daniel Pavel
b83a14e16f minor clean-ups and formatting 2013-07-12 22:39:17 +02:00
Daniel Pavel
a966bbff6f fixed handling of protocol version when the device is offline 2013-07-12 22:23:03 +02:00
Daniel Pavel
141a5c3dee don't ping devices known to be offline 2013-07-12 22:07:58 +02:00
Daniel Pavel
994bb07bc4 descriptors updated 2013-07-12 21:55:32 +02:00
Daniel Pavel
24f658d8fe support multiple Wireless PIDs for same device model 2013-07-12 21:53:23 +02:00
Daniel Pavel
49d77a2f90 handle unknown devices slightly better 2013-07-12 20:30:46 +02:00
Daniel Pavel
876cf35954 automatically detect the latest source.changes file generated 2013-07-12 17:14:15 +02:00
Daniel Pavel
46c0448854 got rid of /opt/extras sillyness in ubuntu packaging 2013-07-12 17:02:17 +02:00
Daniel Pavel
d78c7ed9be make sure items in window tree are sorted by number (fixed #73) 2013-07-12 15:24:49 +02:00
Daniel Pavel
51d0ccf654 only popup the window once per device on battery alerts 2013-07-12 14:35:16 +02:00
Daniel Pavel
9c8252b59f on alert popups, selected the device that triggered the popup 2013-07-12 14:10:26 +02:00
Daniel Pavel
488a78cc52 fixed #75 (pair button disappearing) 2013-07-12 10:35:28 +02:00
Daniel Pavel
0e6d088372 fixed some awkward path joining stuff 2013-07-11 22:46:29 +02:00
Daniel Pavel
d4d1a4f8e2 install the .desktop file in /etc/xdg/autostart (fixes #77) 2013-07-11 22:45:29 +02:00
Daniel Pavel
34801bfd1e install the application icon in hicolor/scalable/apps 2013-07-11 22:24:57 +02:00
Daniel Pavel
948b4c4d51 updated descriptors and devices doc for Anywhere MX 2013-07-11 15:34:36 +02:00
Daniel Pavel
85efe92d30 replaced appinstance with GtkApplication 2013-07-09 17:52:07 +02:00
Daniel Pavel
b01636e05d build-updated files for 0.9.0 2013-07-09 15:26:38 +02:00
Daniel Pavel
c0a7838429 version 0.9.0 2013-07-09 14:42:46 +02:00
Daniel Pavel
eda4112501 removed obsolete old window code 2013-07-08 21:21:53 +02:00
Daniel Pavel
dbb9025e26 replaced _ dummies with _ignore 2013-07-08 21:21:14 +02:00
Daniel Pavel
beee0bc8c2 typo in comment 2013-07-08 20:51:30 +02:00
Daniel Pavel
1bd6fd512b debian changelog updated 2013-07-07 22:15:00 +02:00
Daniel Pavel
ab8421b2f2 simplified (again) the deb build script
This time also check for consistency of .orig archives.
2013-07-07 22:07:31 +02:00
Daniel Pavel
1be56dd072 version 0.8.99.12 2013-07-07 21:58:33 +02:00
Daniel Pavel
c023f81f1a ChangeLog clean-up 2013-07-07 21:58:06 +02:00
Daniel Pavel
47f64d40de explicit encoding in main scripts 2013-07-07 21:54:35 +02:00
Daniel Pavel
d0b8233c9a minor clean-up 2013-07-07 21:40:55 +02:00
Daniel Pavel
39534d11dd make sure all debug and info loggings are if-guarded 2013-07-07 17:18:42 +02:00
Daniel Pavel
ca2f5f927c configuration: save on every change (fixes #80) 2013-07-07 16:06:27 +02:00
Daniel Pavel
2ab040591c major clean-up of debian building script 2013-07-07 14:06:03 +02:00
Daniel Pavel
8b26759731 release 0.8.99.11 2013-07-07 14:04:11 +02:00
Daniel Pavel
0e43287386 added a symlink to README.md to pacify sdist 2013-07-07 12:25:12 +02:00
Daniel Pavel
7221ceb7b4 forget battery status when the device has been offline for too long 2013-07-07 12:23:58 +02:00
Daniel Pavel
66416ff4cc fixed parsing of custom battery messages 2013-07-07 12:23:23 +02:00
Daniel Pavel
0d89d1e6c8 formatting fix in unpairing error dialog 2013-07-07 01:31:22 +02:00
Daniel Pavel
81765ee971 clean-ed up and documented gh_pages build script 2013-07-06 18:10:05 +02:00
Daniel Pavel
b72273b2a9 jekyll: made all image/css links relative 2013-07-06 18:08:52 +02:00
Daniel Pavel
e697a2d6cf updated debian build & upload scripts 2013-07-06 14:47:07 +02:00
Daniel Pavel
94d07eed53 version 0.8.99.10 2013-07-06 14:35:34 +02:00
Daniel Pavel
64ce3872b4 changelog updated 2013-07-06 14:24:17 +02:00
Daniel Pavel
508444526a commented-out the poll-ticking feature
not useful right now, and less code to worry about
2013-07-06 14:23:56 +02:00
Daniel Pavel
faa6de3b75 more explicit error dialogs, when possible 2013-07-06 14:20:50 +02:00
Daniel Pavel
77d2ae5249 omit the date in logging, is not important and the lines are shorter 2013-07-06 14:20:12 +02:00
Daniel Pavel
e2f94a9e0e be more lax as to when to allow pairing new devices 2013-07-06 13:55:22 +02:00
Daniel Pavel
ba55e4d9bd import * cleanups 2013-07-05 16:19:49 +02:00
Daniel Pavel
8e9ff939f3 hidconsole: enable hidpp automatically when talking to a Logitech Recevier 2013-07-05 16:19:24 +02:00
Daniel Pavel
bd3198f6f0 correctly handle out-of-process pairing and unpairing 2013-07-05 16:06:38 +02:00
Daniel Pavel
3319feeb73 replaced type() with isinstance() where possible 2013-07-05 16:02:38 +02:00
Daniel Pavel
47bcd4478c prettier error message if unpair fails 2013-07-05 14:35:06 +02:00
Daniel Pavel
065b8628d2 don't always show Notifications in details 2013-07-05 14:34:37 +02:00
Daniel Pavel
87e2f1cad7 solaar-cli: clearer handling of invalid device numbers 2013-07-05 14:34:18 +02:00
Daniel Pavel
373b07f271 fixed pairing in solaar-cli 2013-07-05 14:33:58 +02:00
Daniel Pavel
58f598fc88 version 0.8.99.9 2013-07-04 13:49:48 +02:00
Daniel Pavel
8f44c294d7 still getting strange messages from some devices 2013-07-04 13:37:39 +02:00
Daniel Pavel
f65079ad6d formatting fix for notifications 2013-07-04 13:35:23 +02:00
Daniel Pavel
edce56cd20 use a single separate thread for all possibly long-running stuff in GUI 2013-07-04 13:23:25 +02:00
Daniel Pavel
cd437c3809 only set NOTIFICATION_FLAGS for 1.0 devices 2013-07-04 13:22:35 +02:00
Daniel Pavel
007cbef086 better coverage of incoming events 2013-07-04 13:20:00 +02:00
Daniel Pavel
a03cc9ce64 more chair switching -- moved notifications handling into own .py 2013-07-03 08:21:40 +02:00
Daniel Pavel
3275aa4c12 allow most receivers to unpair (or at least try) 2013-07-03 08:18:47 +02:00
Daniel Pavel
a0f880fbba fix for NoneType crash 2013-07-02 19:43:18 +02:00
Daniel Pavel
833f087fdf also show polling rate in Hz 2013-07-02 12:23:47 +02:00
Daniel Pavel
9a2a28e0aa replaced hard-coded register numbers with constants
also re-worked the battery reading code a bit
2013-07-02 12:23:12 +02:00
Daniel Pavel
bf5fc42f07 fixed duplicate entries in keyboard tasks 2013-07-02 00:40:34 +02:00
Daniel Pavel
fb495fd2fc version 0.8.99.8 2013-07-01 19:35:46 +02:00
Daniel Pavel
90ab7af069 Anywhere MX and M600 descriptor updates 2013-07-01 19:22:46 +02:00
Daniel Pavel
0914e4c48d scan-registers: more lax interpretation of arguments 2013-07-01 19:01:37 +02:00
Daniel Pavel
3436055c7f re-worked (AGAIN) the way the devices are initially set-up
There is absolutely no consistency between the registers and
features receivers have, even if they're the same product_id!
2013-07-01 19:00:26 +02:00
Daniel Pavel
20aa797e96 configuration: use wpid in device key 2013-07-01 18:53:10 +02:00
Daniel Pavel
5ebc2634ae (hopefully) better serial read-out for devices 2013-07-01 18:40:03 +02:00
Daniel Pavel
94464a40b8 show the battery charge in the devices tree, if available (fixes #71) 2013-07-01 18:39:17 +02:00
Daniel Pavel
1194abf125 don't know yet how to tell if the receiver supports the unifying protocol 2013-07-01 15:28:05 +02:00
Daniel Pavel
ceba698678 moved settings templates into separate .py 2013-07-01 15:24:30 +02:00
Daniel Pavel
b1e9480f5a minor logging tweaks 2013-07-01 15:00:21 +02:00
Daniel Pavel
eaa38c858c properly format battery status string for 0x07 devices 2013-07-01 11:51:20 +02:00
Daniel Pavel
4504045bc6 extended descriptor for M305 2013-07-01 11:49:44 +02:00
Daniel Pavel
a9ea69b9a1 more explicit error message when trying to pair uncompatible devices 2013-07-01 11:41:47 +02:00
Daniel Pavel
9a8d089c73 handle some mystery data packets from older devices 2013-07-01 11:34:54 +02:00
Daniel Pavel
0d56cfbded clean-up in get/set notification flags computation 2013-06-30 17:12:44 +02:00
Daniel Pavel
9896875180 cleaner import 2013-06-30 15:03:39 +02:00
Daniel Pavel
a1c04ce39f renamed 'leds' register to '3leds', in case other may be found later 2013-06-30 15:02:58 +02:00
Daniel Pavel
da541e000a put usb ids into separate py file 2013-06-30 14:34:53 +02:00
Daniel Pavel
e490162e4f the K400 also has the FN swap feature 2013-06-30 14:04:14 +02:00
Daniel Pavel
a0b7d39f83 use the wpid to identify devices, when possible 2013-06-30 13:49:35 +02:00
Daniel Pavel
c464e049bf allow settings to be bound to certain device types
avoids stuff like smooth-scroll being attached to a keyboard
2013-06-29 21:26:25 +02:00
Daniel Pavel
daad9b5d5f cleaned-up NamedInts, added int2bytes and bytes2int generic functions 2013-06-29 20:37:04 +02:00
Daniel Pavel
2682722cb1 cleaned-up config_panel code 2013-06-29 20:35:35 +02:00
Daniel Pavel
8d5718178f load the configuration when the device is detected
and apply it every time the device comes online
2013-06-29 20:35:02 +02:00
Daniel Pavel
1d438f098f handle 0x07 battery notifications with indicating charging, but with no battery level 2013-06-29 20:26:29 +02:00
Daniel Pavel
1d305db29e minor UI layout tweaks 2013-06-29 19:02:19 +02:00
Daniel Pavel
c2a549c114 the K800 also has 3 leds, use them to indicate battery charge 2013-06-28 17:09:05 +02:00
Daniel Pavel
f43e298ac7 clean-up configuration on load and save 2013-06-26 16:05:14 +02:00
Daniel Pavel
c25b769578 repr() formatting cleanups 2013-06-26 13:40:46 +02:00
Daniel Pavel
0cf1f1983d handle backlight notifications from register 0x17 2013-06-26 13:38:36 +02:00
Daniel Pavel
39ec568ab1 descriptors table and devices documentation updated 2013-06-25 18:54:27 +02:00
Daniel Pavel
5b94ebae34 enable the backlight notifications on devices, if available 2013-06-25 18:53:18 +02:00
Daniel Pavel
a857b5fc43 fixed transparency in generated site icons 2013-06-25 17:11:28 +02:00
Daniel Pavel
eb8791ec47 fixed gh_pages script to use solaar.svg 2013-06-25 16:18:05 +02:00
Daniel Pavel
ff6da43007 version 0.8.99.7 2013-06-25 16:08:47 +02:00
Daniel Pavel
d42fdf8a4a updated debian copyright file (added svgs) 2013-06-25 16:06:13 +02:00
Daniel Pavel
adab25ad44 changelog updated 2013-06-25 16:02:21 +02:00
Daniel Pavel
90b057938b recommend python-dbus and upower in debian package control 2013-06-25 16:02:14 +02:00
Daniel Pavel
fc5c72e164 some clean-ups in descriptors 2013-06-25 16:01:29 +02:00
Daniel Pavel
bd5c03812f replaced solaar png icons with svgs 2013-06-25 15:59:49 +02:00
Daniel Pavel
6b0b7ea823 minor clean-ups and formatting 2013-06-24 17:04:19 +02:00
Daniel Pavel
dd24ed5fe0 brought solaar-cli in sync with the latest gui code 2013-06-24 17:02:45 +02:00
Daniel Pavel
f64942b51d if the battery level is approximative, show a string instead of percentage 2013-06-24 17:02:00 +02:00
Daniel Pavel
375db9996f fixed reading correct device kind on link notification 2013-06-24 16:58:41 +02:00
Daniel Pavel
20dfc063ff initial support for performance mx leds
The leds light up when we get updates about the battery level.
Right now they are not (programatically) turned off.
2013-06-23 20:59:16 +02:00
Daniel Pavel
70c341e268 don't use proxies for receiver/device objects
they should be unnecessary now that their status is properly tracked
2013-06-23 18:37:50 +02:00
Daniel Pavel
dc59c79bd3 properly handle tree re-selection when removing a receiver 2013-06-23 18:35:23 +02:00
Daniel Pavel
422cd26b92 some extra asserts on hid++ 1.0 register r/w 2013-06-23 18:16:13 +02:00
Daniel Pavel
cec892ce88 disable poll ticking
It was necessary to periodically check if the peripherals are still
online -- suspend/resume may cause Solaar to (wrongfully) remember the
status of devices after a resume.

Now that is handled by the optional upower module -- the hard way -- by
restarting all listeners on resume.
2013-06-23 18:15:19 +02:00
Daniel Pavel
d5374b9f51 optionally listen for upower suspend/resume events to stop/start all receiver listeners 2013-06-23 18:11:42 +02:00
Daniel Pavel
51e2d965cf version 0.8.99.6 2013-06-23 15:46:16 +02:00
Daniel Pavel
a6c8f2212a suggest appindicator library in solaar package 2013-06-23 15:45:07 +02:00
Daniel Pavel
b3aac40246 dropped activate_on_single_click, requires gtk 3.8 2013-06-23 13:44:34 +02:00
Daniel Pavel
fb138b77ff version 0.8.99.5 2013-06-23 13:09:44 +02:00
Daniel Pavel
273284da39 use number instead of serial to pick devices in ui (faster start-up) 2013-06-23 12:09:46 +02:00
Daniel Pavel
7102229937 properly handle ^C in console 2013-06-22 21:32:19 +02:00
Daniel Pavel
be80ba3b3b version 0.8.99.4 2013-06-21 22:27:18 +02:00
Daniel Pavel
4410cb6dc6 comment-out old main window 2013-06-21 22:25:04 +02:00
Daniel Pavel
df8df2bffa don't force a battery read on link active, will happen anyway 2013-06-21 22:24:28 +02:00
Daniel Pavel
ae4c921300 cleaner start-up of paired devices 2013-06-21 22:23:53 +02:00
Daniel Pavel
3d1aa6698d only check for non-unifying protocol only on nano receviers 2013-06-21 22:19:31 +02:00
Daniel Pavel
613b115eb4 fixed clean-up of config panel when unpairing devices 2013-06-21 16:51:39 +02:00
Daniel Pavel
e19b690bd5 fixed reading of polling rate 2013-06-21 16:47:19 +02:00
Daniel Pavel
888be8e8a8 be a bit more patient when pairing, the device notification may come after the pairing lock is closed 2013-06-21 16:40:00 +02:00
Daniel Pavel
5785896007 status: the device may be invalid when processing the unpair notification 2013-06-21 16:39:30 +02:00
Daniel Pavel
8d522de7e7 drop some unnecessary logging when ignoring request replies 2013-06-21 16:39:04 +02:00
Daniel Pavel
81ae4c8d4d forgot about pairing notification on receiver... 2013-06-21 16:32:29 +02:00
Daniel Pavel
8cd3b8fdef save configuration a little early, better timing on shutdown 2013-06-21 15:21:49 +02:00
Daniel Pavel
c1aa341a7a tweaked timing of enabling receiver notifications 2013-06-21 15:20:52 +02:00
Daniel Pavel
f9c192c47a only look for a different tray battery icon if the changed device is a peripheral 2013-06-21 15:19:07 +02:00
Daniel Pavel
cdc6da844e made the config_panel self-contained 2013-06-21 15:18:21 +02:00
Daniel Pavel
fd35f23af7 one a separate flag to check if the device is active 2013-06-21 15:17:14 +02:00
Daniel Pavel
c04851f64e better handling of timeouts in base.request 2013-06-21 15:05:48 +02:00
Daniel Pavel
3a63c3ad43 fixed reading encrypted link status in pairing window 2013-06-21 15:04:06 +02:00
Daniel Pavel
431f1c97cf added read/write_register to receiver and devices 2013-06-21 15:03:36 +02:00
Daniel Pavel
1b68a3d5a9 fixed request timeouts for devices 2013-06-20 19:51:54 +02:00
Daniel Pavel
c797808a40 fixed status keys in pairing 2013-06-20 19:35:54 +02:00
Daniel Pavel
d810ccba84 tray icon: pick the battery of the lowest _active_ device 2013-06-20 17:25:53 +02:00
Daniel Pavel
2fea5d9af2 disable the unpair button for peripherals of a Nano receiver 2013-06-20 17:21:58 +02:00
Daniel Pavel
1d9a3bf23a fixed checking for features of offline 2.0 devices 2013-06-20 17:21:23 +02:00
Daniel Pavel
3d8c764eb0 relax timeouts for device requests 2013-06-20 17:13:49 +02:00
Daniel Pavel
eb317f0d46 version 0.8.99.2 2013-06-20 14:49:02 +02:00
Daniel Pavel
27de1aea11 tray/window: append new devices rather than inserting them at the top 2013-06-20 14:43:49 +02:00
Daniel Pavel
92f7e761ee don't save the configuration if it hasn't been loaded first 2013-06-20 14:27:18 +02:00
Daniel Pavel
b2f1786eff use consistent naming of offline state for devices 2013-06-20 14:18:36 +02:00
Daniel Pavel
f8369e7c63 properly style the details panel 2013-06-20 14:18:03 +02:00
Daniel Pavel
f095a74f2a make the main window a regular window (visible in tasks list) 2013-06-20 13:51:42 +02:00
Daniel Pavel
4e3fccb009 fixed sizing of details panel 2013-06-20 13:41:05 +02:00
Daniel Pavel
a2995ed3c5 minor build_deb script update 2013-06-20 13:13:14 +02:00
Daniel Pavel
5edff9235b changelog update 2013-06-20 13:12:39 +02:00
Daniel Pavel
31e134c1e0 don't wait so long on the first idle poll 2013-06-20 13:12:29 +02:00
Daniel Pavel
47e22b788f version 0.8.99, will become 0.9 on release 2013-06-20 13:12:12 +02:00
Daniel Pavel
798628fdf8 add the USB id for the receiver in the details panel 2013-06-20 13:10:55 +02:00
Daniel Pavel
ca9825d262 support for the VX Nano mouse 2013-06-20 13:10:30 +02:00
Daniel Pavel
1a36ec65ee faster checking of feature-based settings 2013-06-20 12:55:48 +02:00
Daniel Pavel
d07a20e6f8 improved reading device properties 2013-06-20 12:54:27 +02:00
Daniel Pavel
783b317281 added a protocol field to the device descriptors 2013-06-20 11:04:17 +02:00
Daniel Pavel
4bc525f250 minor clean-ups 2013-06-20 11:02:45 +02:00
Daniel Pavel
11cfc7ea09 enable notification on recevier as soon as possible 2013-06-19 19:46:54 +02:00
Daniel Pavel
a806f2672d group all status keys into one object 2013-06-19 19:45:39 +02:00
Daniel Pavel
2fee88e54b fixed battery charge display in device info 2013-06-19 19:23:18 +02:00
Daniel Pavel
7e1a2a6e4f more fixes for device unpairing 2013-06-19 17:21:28 +02:00
Daniel Pavel
d5b311760e clean obsolete settings controls when devices are unpaired 2013-06-19 17:04:01 +02:00
Daniel Pavel
dffe6f8b91 fix display of firmware in details panel 2013-06-19 17:03:16 +02:00
Daniel Pavel
b4bca4670b cache notification flags when possible
avoids unnecessary reads from devices when the status hasn't changed
2013-06-19 17:03:01 +02:00
Daniel Pavel
150c43f41f some logging in udev 2013-06-19 16:49:20 +02:00
Daniel Pavel
9fc11df229 fixed window update when unpairing 2013-06-19 16:22:44 +02:00
Daniel Pavel
56a7a960c3 polling: it may happen that the receiver is removed mid-poll 2013-06-19 16:14:04 +02:00
Daniel Pavel
cd44cc6396 new single-window UI 2013-06-19 15:28:13 +02:00
Daniel Pavel
4af714f1dd K750: register the FN swap setting statically, no need to detect it at runtime 2013-06-18 16:48:02 +02:00
Daniel Pavel
836719587c renamed NANO receiver id 2013-06-18 16:45:44 +02:00
Daniel Pavel
2d6fab6e14 gh_pages build script updated 2013-06-17 16:48:04 +02:00
Daniel Pavel
0ae58a3346 fixed ubuntu dh_link 2013-06-17 16:47:44 +02:00
Daniel Pavel
f32e958984 version 0.8.9.4 2013-06-17 16:12:32 +02:00
Daniel Pavel
0703d927ca document Logitech receiver USB ids 2013-06-17 16:12:09 +02:00
Daniel Pavel
62b5deb77d debconf translation support (just english for now) 2013-06-17 16:11:46 +02:00
Daniel Pavel
82e718b3d1 create the plugdev group in postinst, not config 2013-06-17 16:11:17 +02:00
Daniel Pavel
41409c9b94 use debconf to check if the plugdev group is necessary 2013-06-17 14:45:45 +02:00
Daniel Pavel
57c759773a attach configuration to device settings objects 2013-06-17 11:00:53 +02:00
Daniel Pavel
9d6402a4f7 shorter thread name on receiver listener 2013-06-17 08:00:17 +02:00
Daniel Pavel
a29609df21 only save the configuration once when Solaar ends 2013-06-17 08:00:00 +02:00
Daniel Pavel
04ea8293a8 persist and restore device settings 2013-06-16 17:41:03 +02:00
Daniel Pavel
bde54aba3b proper shutdown of receiver listeners 2013-06-16 17:10:46 +02:00
Daniel Pavel
687e1be3e5 simplify debian/rules a bit 2013-06-16 17:10:46 +02:00
Daniel Pavel
a44d9b7ca8 fix battery display in main window 2013-06-16 17:10:46 +02:00
Daniel Pavel
febf571d84 account for devices going out-of-range while active 2013-06-16 17:10:46 +02:00
Daniel Pavel
818ece9f10 Merge pull request #67 from Lekensteyn/updates
udev: Use uaccess instead of plugdev (pwr/Solaar#66)
2013-06-16 08:10:04 -07:00
Peter Wu
ec10c9c70c udev: Use uaccess instead of plugdev (pwr/Solaar#66)
Rules are taken from https://git.lekensteyn.nl/ltunify/. The "VX Nano" receivers
(c51a and c526) have been removed as these are only used for Cordless mice and
are not even enabled in Solaar.

The installer is updated to check for the existence of a group and `mktemp` to
create temporary files. (relying on `$TMPDIR` is a bad idea.) This installer is
too fancy, most users will be fine with `install -m644
rules.d/42-logitech-unify-permissions.rules /etc/udev/rules.d/`. If you are lazy
and want to make `solaar-cli` work over SSH, then this installer will help you.
It won't add you to the `plugdev` group, instead it will edit the rule to use
your user's primary group.

Oh, and it does not change this group to "root" as that is pretty useless given
that root is the default.
2013-06-16 11:33:37 +02:00
Daniel Pavel
8852d50971 mark device status as inactive after idling out 2013-06-12 14:31:46 +02:00
Daniel Pavel
908f6763be updated deb/ppa build scripts 2013-06-12 14:31:16 +02:00
Daniel Pavel
03e20842fb cleaned-up gtk ui initialization 2013-06-12 14:29:34 +02:00
Daniel Pavel
084913ac91 updated devices documentation 2013-06-12 14:29:01 +02:00
Daniel Pavel
d9801e2d57 fixed firmware info for some HID++ 2.0 devices 2013-06-12 14:21:31 +02:00
417 changed files with 109388 additions and 8299 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

10
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1,10 @@
# yapf bulk change
72a8d311bce64b1536c08e754d22bb91efb66460
# isort bulk change
e6369e0c3c240715a0a2daede6c3b225ed63cf60
# pre-commit bulk change
33521558ed7007c24b24127f1448c2c23ecbfb35
# flake8 bulk change
627185079f65c9cc471194b7927c833682e4a7a3
# yapf style update
27c90fa736d8a7a1ef6acda4345d3599862e185c

68
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,68 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**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 Solaar's udev rule is running by executing
`ls -l /dev/hidraw*` and looking for + as the last character of the permissions. -->
<!-- Do not bother opening an issue for a version older than 1.1.14.
Upgrade to the current version and see if your issue persists. -->
<!-- If you are not running the current version of Solaar,
strongly consider upgrading to the current version. -->
<!-- Note that some distributions have very old versions of Solaar
as their default version. -->
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository):
- Distribution:
- Kernel version (ex. `uname -srmo`):
- Output of `solaar show`:
<!-- To run `solaar show` in 1.1.18 you have to clone Solaar from this repository
and `run bin/solaar show` from the download directory. -->
<details>
```
SOLAAR SHOW OUTPUT HERE
```
</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 -ddd`, after killing any running Solaar processes to
have Solaar log debug, informational, warning, and error messages to stdout. -->
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,35 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Information**
<!-- 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`):
- Distribution:
- Kernel version (ex. `uname -srmo`):
- Output of `solaar show` for the target device (if applicable):
<details>
```
OUTPUT HERE
```
</details>
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

16
.github/workflows/checks.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: checks
on: [push, pull_request]
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
- name: Run pre-commit
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.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.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 }}

17
.gitignore vendored
View File

@@ -2,13 +2,30 @@
*.pyo
__pycache__/
*.log
*.mo
/lib/Solaar.egg-info/
/lib/solaar.egg-info/
/lib/solaar/commit
/build/
/sdist/
/dist/
/deb_dist/
/MANIFEST
.coverage
/htmlcov/
/docs/captures/
/share/logitech_icons/
/share/locale/
/po/*.po~
/.idea/
.DS_Store
._*
Pipfile
Pipfile.lock

20
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,20 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-ast
- id: check-builtin-literals
- id: check-merge-conflict
- id: check-yaml
- id: check-toml
- id: debug-statements
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.2.2
hooks:
- id: ruff
name: ruff lint
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
name: ruff format

1
.python-version Normal file
View File

@@ -0,0 +1 @@
3.11

991
CHANGELOG.md Normal file
View File

@@ -0,0 +1,991 @@
# 1.1.19
* New Georgian translation
* Remove test that doesn't work in older Pythons
* Update help messages for CLI commands
* Allow solaar config to change LED settings
* Add python3-devel to install-dnf in Makefile
* hidconsole can send an HID command non-interactively
* Add info about new lightspeed receiver
* Update Swedish and zh_TW translation
* Fix bug when showing details about direct-connected device
* Drop testing of Python before 3.13
* Fix crash in solaar show when showing notification flags. (#3070)
# 1.1.18
* Fix crash when showing notification flags
# 1.1.17
* Add dark icons
* Permit onboard profiles version 5
* Update Russian and Polish translations
* Add onboard profiles warning to sensitivity tooltip
* Better error messages for solaar profile
* Remove Solaar name for mice with WPID 4008
* Prevent lock failure when showing debug messages
* Replace color picker (#3028)
* Add setting for HAPTIC feature
* Add setting to adjust force needed for force-sensing buttons
* Expand new settings type
* Add new settings type for structure-backed setting
* Use PATH instead of hardcoded absolute paths (#3014)
* Add scroll ratchet force setting
* Fix debug messages for MouseClick rule
* Improve debug message for rule evaluation
* App wrapper and launch agent scripts for MacOS
* Ignore hidden features
* Don't pop up window in response to ADC changes
* Update bug report template
* Fixed malformed doc file by adding closing tag
* Fix error in low-level request for device with no recevier
* Update documentation files
# 1.1.16
* Add new flags for reprogrammable keys feature
* Correctly handle missing battery feature
# 1.1.15
* Correctly re-raise permissions exception
* Add several new special keys and tasks
* Update several translations
* 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,2 +1,14 @@
Copyright 2012, 2013
Daniel Pavel <daniel.pavel@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 2.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

View File

@@ -1,34 +0,0 @@
0.8.9:
* Improved support for gnome-shell/Unity.
* 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,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -1,2 +1,3 @@
include COPYRIGHT COPYING README.md ChangeLog
include COPYRIGHT LICENSE.txt README.md CHANGELOG.md lib/solaar/version lib/solaar/commit
recursive-include rules.d *
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 dnf"
sudo dnf install gtk3 python3-devel 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

127
README.md
View File

@@ -1,89 +1,68 @@
**Solaar** is a Linux device manager for Logitech's [Unifying Receiver][unifying]
peripherals. It is able to pair/unpair devices to the receiver, and for most
devices read battery status.
# <img src="https://pwr-solaar.github.io/Solaar/img/solaar.svg" width="60px"/> Solaar
It comes in two flavors, command-line and GUI. Both are able to list the
devices paired to a Unifying Receiver, show detailed info for each device, and
also pair/unpair supported devices with the receiver.
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.
[unifying]: http://logitech.com/en-us/66/6079
## Supported Devices
**Solaar** will detect all devices paired with your Unifying Receiver, and at
the very least display some basic information about them.
For some devices, extra settings (usually not available through the standard
Linux system configuration) are supported. For a full list of supported devices
and their features, see [docs/devices.md](docs/devices.md).
<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> -
<a href="https://pwr-solaar.github.io/Solaar/issues">Known Issues</a>
## Pre-built packages
[![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)
Pre-built packages are available for a few Linux distros.
<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>
* Debian 7 (Wheezy) or higher: packages in this [repository][debian]
* Ubuntu/Kubuntu 12.04+: [ppa:daniel.pavel/solaar][ppa]
<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>
The `solaar` package uses a standard system tray implementation; to ensure
integration with *gnome-shell* or *Unity*, install `solaar-gnome3`.
Solaar supports:
- pairing/unpairing of devices with receivers
- configuring device settings
- custom button configuration
- running rules in response to special messages from devices
* a [Gentoo overlay][gentoo], courtesy of Carlos Silva
* an [OpenSUSE rpm][opensuse], courtesy of Mathias Homann
* an [Arch package][arch], courtesy of Arnaud Taffanel
[ppa]: http://launchpad.net/~daniel.pavel/+archive/solaar
[debian]: http://pwr.github.io/Solaar/packages/
[gentoo]: http://code.r3pek.org/gentoo-overlay/src
[opensuse]: http://software.opensuse.org/package/Solaar
[arch]: http://aur.archlinux.org/packages/solaar
For more information see
<a href="https://pwr-solaar.github.io/Solaar/index">the main Solaar documentation page.</a> -
## Manual installation
## Installation Packages
See [docs/installation.md](docs/installation.md) for the step-by-step
procedure for manual installation.
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]
## Known Issues
Solaar is available from some other repositories
but may be several versions behind the current version:
- KDE/Kubuntu: if some icons appear broken in the application, make sure you've
properly configured the Gtk theme and icon theme in KDE's control panel.
- 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
- Some devices using the [Nano Receiver][nano] (which is very similar to the
Unifying Receiver) are supported, but not all. For details, see
[docs/devices.md](docs/devices.md).
- Running the command-line application (`bin/solaar-cli`) while the GUI
application is also running *may* occasionally cause either of them to become
confused about the state of the devices. I haven't encountered this often
enough to be able to be able to diagnose it properly yet.
[nano]: http://logitech.com/mice-pointers/articles/5926
## License
This software is distributed under the terms of the
[GNU Public License, v2](COPYING).
## Thanks
This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s
logitech-solar-k750 project on GitHub (no longer available). It was developed
further thanks to the diggings in Logitech's HID++ protocol done by many other
people:
- [Julien Danjou](http://julien.danjou.info/blog/2012/logitech-k750-linux-support),
who also provided some internal
[Logitech documentation](http://julien.danjou.info/blog/2012/logitech-unifying-upower)
- [Lars-Dominik Braun](http://6xq.net/git/lars/lshidpp.git)
- [Alexander Hofbauer](http://derhofbauer.at/blog/blog/2012/08/28/logitech-performance-mx)
- [Clach04](http://bitbucket.org/clach04/logitech-unifying-receiver-tools)
- [Peter Wu](https://lekensteyn.nl/logitech-unifying.html)
- [Nestor Lopez Casado](http://drive.google.com/folderview?id=0BxbRzx7vEV7eWmgwazJ3NUFfQ28)
provided some more Logitech specifications for the HID++ protocol
Also thanks to Douglas Wagner, Julien Gascard and Peter Wu for helping with
application testing and supporting new devices.
[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

18
RELEASE.md Normal file
View File

@@ -0,0 +1,18 @@
# Solaar releases
## Please read before making a release
We support two type of releases: normal releases (ex. `1.0.0`) and release
candidates (ex. `1.0.0rc1`). Release candidates must have a `rcX` suffix.
Release routine:
- Update version in `lib/solaar/version`
- 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`
- Push commit to Solaar repository
- Invoke `./release.sh`
- Git tags are signed so you must have GPG set up
- You are required to have a github token with `public_repo` access
in `~/.github-token`

198
Release_Notes.md Normal file
View File

@@ -0,0 +1,198 @@
# Notes on Major Changes in Releases
## Version 1.1.18
* Solaar is only guaranteed to work in Python 3.13 or later.
## Version 1.1.17
* Several new features have been added related to the MX Master 4
* The scroll ratchet force can be adjusted
* The force required to click the button under your thumb can be adjusted
* The haptic force can be adjusted
* Haptic feeback can be triggered by commands like `solaar config 'mx master 4' haptic-play 'HAPPY ALER'`
## Version 1.1.16
* Two bugs that were affecting users in 1.1.15 are fixed.
## Version 1.1.15
* Some key names have been changed to match Logitech names. Rules that use removed names will no longer work and will end up with a key of 0.
* 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
* 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 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
* 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 rules partly work under Wayland. There is no access to the current process in Wayland. Simulated input uses uinput if XTest extension not available, requiring read and write permissions on /dev/uinput.
* There is a setting to divert gestures so that they can trigger rules.
* There is a setting to disable Onboard Profiles, which can interfere with the Polling Rate and M-Key LEDs settings. The Polling Rate setting no longer disables onboard profiles.
* There is a setting for the Persistent Remappable Keys feature.
* There is a new rule condition that tests device settings.
* There are new settings to set M-Key LEDs and MR-Key LED.
* There is a new kind of Solaar rule action to change settings for devices.
## Version 1.1.1
* There is a new setting to switch keyboard crowns between smooth and ratchet scrolling.
## Version 1.1.0
* Solaar now supports Bolt receivers and devices that connect to them, including authentication of devices when pairing.
* A setting has been added for the DPI CHANGE button to switch movement sensitivity.
## Version 1.0.7
* Solaar rules can now trigger on both pressing and releasing a diverted key.
* The new rule condition MouseProcess is like the Process condition except for the process of the window under the mouse.
* Mouse gestures have been upgraded. A mouse gesture is now a sequence of movements separated by no movement periods while the mouse gesture button is held down. The MouseGesture rule condition matches mouse gesture sequences. The old mouse-up, etc., tests are converted to MouseGesture conditions.
## Version 1.0.6
* The sliding DPI setting now looks for suitable keys to use to trigger its effects.
* If a mouse has a suitable button it can generate mouse gestures, which trigger rule processing. Mouse gestures need to be turned on and the button diverted to produce mouse gestures.
* Settings can now be ignored by clicking on the icon at the right-hand edge of a setting until the dialog error icon (usually a red icon) appears. Solaar will not try to restore the value for an ignored setting.
* Icon handling in the tray and the tray menu has been updated to work better with some system tray implementations.
* The process rule condition also matches against the current X11 WM_CLASS.
* The SMART SHIFT ENHANCED feature is supported.
## Version 1.0.5
* Solaar has rules that can perform actions such as pressing keys or scrolling when certain HID++ feature notifications happen. Users can change these rules either by editing ~/.config/solaar/rules.yaml or via a GUI. Rules depend on X11 and so are only available under X11. This is an experimental feature for Solaar and may undergo changes in the future.
* Each setting has a clickable lock icon that determines whether the setting can be changed.
## Version 1.0.4
* Devices that connect directly via Bluetooth or USB are now supported. These devices show up in the GUI as separate lines, not under a receiver. A device that is directly connected and also paired to a receiver will show up twice, but the entry under the receiver will not be active. With this change identifying devices becomes more difficult so occasionally check your Solaar configuration file (at ~/.config/solaar/config.json) to see that there is only one entry for each of your devices.
* There are new settings for gestures, thumb wheels, adjusting the wheel ratchet behavior, and changing DPI using a DPI Switch button.
* Solaar's Udev rule now adds seat permissions for all Logitech devices. Users who install Solaar themselves will have to install the new Udev rule and activate the rule. One way to do this is to restart the user's computer.
## Version 1.0.3
* The separate deprecated solaar-cli command has been removed.
* Devices can be switched between hosts using the Change Host setting. The device will try to connect to the other host. Some devices will detect that there is no active host on the other connections and reconnect back.
## Version 1.0.2
* The separate unneeded solaar-gnome3 command has been removed. The packaging directories have been removed.
* Non-unifying receivers are modelled better. Many of them cannot unpair but instead new pairings replace existing pairings.
* Battery icon selection has been simplified.

View File

@@ -1,28 +1,42 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# -*- python-mode -*-
"""Takes care of starting the main function."""
# -*- coding: UTF-8 -*-
from __future__ import absolute_import, unicode_literals
## Copyright (C) 2012-2013 Daniel Pavel
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
def init_paths():
"""Make the app work in the source tree."""
import sys
import os.path as _path
"""Make the app work in the source tree."""
import os.path
import sys
prefix = _path.normpath(_path.join(_path.realpath(sys.path[0]), '..'))
src_lib = _path.join(prefix, 'lib')
share_lib = _path.join(prefix, 'share', 'solaar', 'lib')
for location in src_lib, share_lib:
init_py = _path.join(location, 'solaar', '__init__.py')
# print ("sys.path[0]: checking", init_py)
if _path.exists(init_py):
# print ("sys.path[0]: found", location, "replacing", sys.path[0])
sys.path[0] = location
break
root = os.path.join(os.path.realpath(sys.path[0]), "..")
prefix = os.path.normpath(root)
src_lib = os.path.join(prefix, "lib")
share_lib = os.path.join(prefix, "share", "solaar", "lib")
for location in src_lib, share_lib:
init_py = os.path.join(location, "solaar", "__init__.py")
if os.path.exists(init_py):
sys.path[0] = location
break
if __name__ == '__main__':
init_paths()
import solaar.gtk
solaar.gtk.main()
if __name__ == "__main__":
init_paths()
import solaar.gtk
solaar.gtk.main()

View File

@@ -1,26 +0,0 @@
#!/usr/bin/env python
# -*- python-mode -*-
"""Takes care of starting the main function."""
from __future__ import absolute_import, unicode_literals
def init_paths():
"""Make the app work in the source tree."""
import sys
import os.path as _path
prefix = _path.normpath(_path.join(_path.realpath(sys.path[0]), '..'))
src_lib = _path.join(prefix, 'lib')
share_lib = _path.join(prefix, 'share', 'solaar', 'lib')
for location in src_lib, share_lib:
init_py = _path.join(location, 'solaar', '__init__.py')
if _path.exists(init_py):
sys.path[0] = location
break
if __name__ == '__main__':
init_paths()
import solaar.cli
solaar.cli.main()

6
docs/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
# ignore documentation-specific files
.jekyll-metadata
Gemfile
Gemfile.lock
_site/

132
docs/LICENSE.txt Normal file
View File

@@ -0,0 +1,132 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the program's name and an idea of what it does.
Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see
<https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'. This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.
signature of Moe Ghoul, 1 April 1989
Moe Ghoul, President of Vice
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

4
docs/README.text Normal file
View File

@@ -0,0 +1,4 @@
# Documentation Readme
This project's documentation is hosted using GitHub pages, which serves static pages using Jekyll.
[Please refer to the official documentation for instructions for how to build the site locally.](https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/)

317
docs/capabilities.md Normal file
View File

@@ -0,0 +1,317 @@
---
title: Solaar Capabilities
layout: page
---
# Solaar Capabilities
[**Solaar**][solaar] reports on and controls [Logitech][logitech] devices
(keyboards, mice, and trackballs) that connect to your computer via a
Logitech USB receiver (a very small piece of hardware that plugs into one of
your USB ports).
Solaar is designed to detect all connected devices,
and at the very least display some basic information about them.
At this moment, all [Unifying][unifying] receivers are supported (e.g., devices
with USB ID `046d:c52b` or `046d:c532`) as are several Lightspeed Receivers
and many Nano receivers.
Solaar also reports on and controls some Logitech devices that directly connect
to your computer using a USB cable or via Bluetooth.
Not all such devices supported in Solaar as information needs to be added to Solaar
for each device type that directly connects.
## HID++
The devices that Solaar handles use Logitech's HID++ protocol.
HID++ is a Logitech-proprietary protocol that extends the standard HID
protocol for interfacing with receivers, keyboards, mice, and so on. It allows
Logitech receivers to communicate with multiple devices and modify some
features of the device. As the HID++ protocol is
proprietary, many aspects of it are unknown. Some information about HID++
has been obtained from Logitech but even that is subject to change and
extension.
There are several versions of HID++ and many Logitech
receivers and devices that utilize it. Different receivers and devices
implement different portions of HID++ so even if two devices appear to be
the same in both physical appearance and behavior they may work
differently underneath. (For example, there are versions of the
M510 mouse that use different versions of the HID++ protocol.)
Contrariwise, two different devices may appear different physically but
actually look the same to software. (For example, some M185 mice look the
same to software as some M310 mice.)
The software identity of a receiver can be determined by its USB product ID
(reported by Solaar and also viewable in Linux using `lsusb`). The software
identity of a device that connects to a receiver can be determined by
its wireless PID as reported by Solaar. The software identity of devices that
connect via a USB cable or via bluetooth can be determined by their USB or
Bluetooth product ID.
## Pairing and Unpairing
Solaar is able to pair and unpair devices with
receivers as supported by the device and receiver.
For Unifying and Bolt receivers, pairing adds a new paired device, but
only if there is an open slot on the receiver. So these receivers need to
be able to unpair devices that they have been paired with or else they will
not have any open slots for pairing. Some Nano and Lightspeed receivers, like the
Nano receiver with USB ID `046d:c534`, can only pair with one keyboard and one mouse
and pairing a new device replaces whatever device of that kind was
previously paired to the receiver. These receivers cannot unpair. Further,
some receivers can pair an unlimited number of times but others can only
pair a limited number of times.
Bolt receivers add an authentication phase to pairing,
where the user has type a passcode or click some buttons to authenticate the device.
Only some connections between receivers and devices are possible. It should
be possible to connect any device with a Unifying logo on it to any receiver
with a Unifying logo on it and any device with a Bolt logo on it to any receiver
with a Bolt logo on it.
Many receivers without the Unifying or Bolt logo
can connect only to the model of devices they were bought with and many devices
without the Unifying or Bolt logo can only connect to a receiver
that matches the one they were bought with.
## Device Settings
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.md).
Solaar does not do much beyond using the HID++ protocol to change the
behavior of receivers and devices via changing their settings.
In particular, Solaar cannot change how
the operating system turns the keycodes that a keyboard produces into
characters that are sent to programs. That is the province of HID device
drivers and other software (such as X11).
Settings can only be changed in the Solaar GUI when they are unlocked.
To unlock a setting click on the icon at the right-hand edge of the setting
until an unlocked lock appears (with tooltop "Changes allowed").
Solaar keeps track of most of the changeable settings of a device.
Devices forget most changed settings when the device is turned off
or goes into a power-saving mode.
Exceptions include the setting to change the host the device is connected to,
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
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.
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
at the right-hand edge of the setting until a red icon appears (with tooltip
"Ignore this setting").
Solaar keeps track of settings independently on each computer.
As a result if a device is switched between 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++
interactions. These interactions can temporarily slow down the device, so
Solaar tries to internally cache information about devices while it is
running. If the device
state is changed by some other means, even sometimes by another invocation
of Solaar, this cached information may become incorrect. Currently there is
no way to force an update of the cached information besides restarting Solaar.
Logitech receivers and devices have firmware in them. Some firmware
can be updated using Logitech software in Windows. For example, there are
security issues with some Logitech receivers and devices and Logitech has
firmware updates to alleviate these problems. Some Logitech firmware can
also be updated in Linux using `fwupdmgr`.
WARNING: Updating firmware can cause a piece of hardware to become
permanently non-functional if something goes wrong with the update or the
update installs the wrong firmware.
## Other Solaar Capabilities
Solaar has a few capabilities that go beyond simply changing device settings.
### Rule-based Processing of HID++ Notifications
Solaar can process HID++ Notifications from devices to, for example,
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 more information on this capability of Solaar see
[the rules page](https://pwr-solaar.github.io/Solaar/rules).
Users can edit rules using a GUI by clicking on the `Rule Editor` button in the Solaar main window.
### Sliding DPI
A few mice (such as the MX Vertical) have a button that is supposed to be used to change
the sensitivity (DPI) of the mouse by pressing the button and moving the mouse left and right.
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.
The `Key/Button Diversion` setting can assign buttons to adjust sensitivity by setting the value for the button to `Sliding DPI`.
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,
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.
Notifications from Solaar are displayed showing the setting that will be applied.
### Mouse Gestures
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
have a button specific for this purpose but have buttons that can be used for it.
The `Key/Button Diversion` setting can assign buttons to initiate mouse gestures by setting the value for the button to `Mouse Gestures`.
This capability is only present if the device can support it.
Pressing a button when it is set to `Mouse Gestures` causes the mouse pointer to stop moving.
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).
### Keyboard Key Names and Locations
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 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
Solaar's GUI normally uses an icon in the system tray.
This allows users to close Solaar and reopen from the tray.
This aspect of Solaar depends on having an active system tray which may
require some special setup when using Gnome, particularly under Wayland.
If you are running Gnome, you most likely need the
`gnome-shell-extension-appindicator` package installed.
In Fedora, this can be done by running
```
sudo dnf install gnome-shell-extension-appindicator
```
The likely command in Ubuntu and related distributions is
```
sudo apt install gnome-shell-extension-appindicator
```
You may have to log out and log in again before the system tray shows up.
## Battery Icons
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
several heuristics determined which icon names to use for this purpose,
but as more and more battery icon schemes have been developed this has
become impossible to do well. Solaar now uses the eleven standard
battery icon names `battery-{full,good,low,critical,empty}[-charging]` and
`battery-missing`.
Solaar will use the symbolic versions of these icons if started with the
option `--battery-icons=symbolic`. Because of external bugs,
these symbolic icons may be nearly invisible in dark themes.
[solaar]: https://github.com/pwr-Solaar/Solaar
[logitech]: https://www.logitech.com
[unifying]: https://en.wikipedia.org/wiki/Logitech_Unifying_receiver

View File

@@ -1,7 +0,0 @@
# Debian repository
To use this repository with your Debian machine, create a file `solaar.list` in
`/etc/apt/sources.list.d/`, with the following contents:
deb http://pwr.github.io/Solaar/packages/ ./
deb-src http://pwr.github.io/Solaar/packages/ ./

8
docs/debian.md Normal file
View File

@@ -0,0 +1,8 @@
---
title: Debian Repository
layout: page
---
# Debian repository
Solaar is now part of the [official Debian repository](https://packages.debian.org/solaar). To install it on your Debian machine, use the following command: `sudo apt install solaar`

View File

@@ -1,125 +1,245 @@
# Supported devices
---
title: Supported Devices
layout: page
---
**Solaar** will detect all devices paired with your receiver, and at the very
least display some basic information about them.
# Supported receivers and devices
At this moment, all [Unifying Receiver][unifying] are supported (devices with
USB ID `046d:c52b` or `046d:c532`), but only some newer [Nano Receiver][nano]s
(devices with USB ID `046d:c52f`). You can check your connected Logitech devices
by running `lsusb -d 046d:` in a console.
Solaar only supports Logitech receivers and devices that use the Logitech proprietary HID++ protocol.
For some devices, extra settings (usually not available through the standard
Linux system configuration) are supported:
Solaar supports most Logitech Nano, Unifying, and Bolt receivers.
Solaar supports some Lightspeed receivers.
See the receiver table below for the list of currently supported receivers.
* The [K750 Solar Keyboard][K750] is also queried for its solar charge status.
Pressing the `Light-Check` button on the keyboard will pop-up the application
window and display the current lighting value (Lux) as reported by the
keyboard, similar to Logitech's *Solar.app* for Windows.
Solaar supports all Logitech devices (keyboards, mice, trackballs, touchpads, and headsets)
that can connect to supported receivers.
Solaar supports all Logitech devices that can connect via a USB cable or via Bluetooth,
as long as the device uses the HID++ protocol.
* The state of the `FN` key can be toggled on some keyboards ([K360][K360],
[MK700][K700], [K750][K750] and [K800][K800]). It changes the way the function
keys (`F1`..`F12`) work, i.e. whether holding `FN` while pressing the function
keys will generate the standard `Fx` keycodes or the special function (yellow
icons) keycodes.
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.
* The DPI can be changed on the [Performance MX Mouse][P_MX].
* Smooth scrolling (higher sensitivity on vertical scrolling with the wheel) can
be toggled on the [M705 Marathon Mouse][M705] and [M510 Wireless Mouse][M510].
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.
# Supported features
## Supporting old devices
These tables list all known Logitech [Unifying][unifying] devices, and to what
degree their features are supported by Solaar. If your device is not listed here
at all, it is very unlikely Solaar would be able to support it.
Some old Logitech devices use an old version of HID++.
For Solaar to support these devices well, Solaar needs some information about them.
The information in these tables is incomplete, based on what devices myself and
other users have been able to test Solaar with. If your device works with
Solaar, but its supported features are not specified here, I would love to hear
about it.
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.
The HID++ column specifies the device's HID++ version.
## Adding new receivers
The Battery column specifies if Solaar is able to read the device's battery
level.
Adding a new receiver requires knowing whether the receiver is a regular
Unifying receiver, a Nano receiver, a Bolt receiver, or a Lightspeed receiver.
This can generally be found using `lsusb`.
For mice, the DPI column specifies if the mouse's sensitivity is fixed (`-`),
can only be read (`R`), or can be read and changed by Solaar (`R/W`).
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
to be specified. Then add the receiver to the tuple of receivers (ALL).
The reprog(rammable) keys feature is currently not fully supported by Solaar.
You are able to read this feature using solaar-cli, but it is not possible to
assign different keys.
### Supported Receivers
| USB ID | Kind | Max Paired Devices |
------------|------------|--------------------|
| 046d:c517 | 27MHz | 4 |
| 046d:c518 | Nano | 1 |
| 046d:c51a | Nano | 1 |
| 046d:c51b | Nano | 1 |
| 046d:c521 | Nano | 1 |
| 046d:c525 | Nano | 1 |
| 046d:c526 | Nano | 1 |
| 046d:c52b | Unifying | 6 |
| 046d:c52e | Nano | 1 |
| 046d:c52f | Nano | 1 |
| 046d:c531 | Nano | 1 |
| 046d:c532 | Unifying | 6 |
| 046d:c534 | Nano | 2 |
| 046d:c537 | Nano | 2 |
| 046d:c539 | Lightspeed | 1 |
| 046d:c53a | Lightspeed | 1 |
| 046d:c53d | Lightspeed | 1 |
| 046d:c53f | Lightspeed | 1 |
| 046d:c541 | Lightspeed | 1 |
| 046d:c542 | Nano | 1 |
| 046d:c545 | Lightspeed | 1 |
| 046d:c547 | Lightspeed | 1 |
| 046d:c548 | Bolt | 6 |
| 17ef:6042 | Nano | 1 |
Some Nano receivers are only partly supported
as they do not implement the full HID++ 1.0 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.
The receiver with USB ID 046d:c517 is an old 27 MHz receiver, supporting only
a subset of the HID++ 1.0 protocol. Only hardware pairing is supported.
Keyboards:
| Device | HID++ | Battery | Other supported features |
|------------------|-------|---------|-----------------------------------------|
| K230 | 2.0 | yes | |
| K270 | | | |
| K340 | | | |
| K350 | | | |
| K360 | 2.0 | yes | FN swap, reprog keys |
| K400 Touch | 2.0 | yes | |
| K750 Solar | 2.0 | yes | FN swap, Lux reading, light button |
| K800 Illuminated | 1.0 | yes | FN swap, reprog keys |
| MK700 | 1.0 | yes | FN swap, reprog keys |
## 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)
| Device | WPID | HID++ |
|------------------|------|-------|
| K230 | 400D | 2.0 |
| K270 | 4003 | 2.0 |
| K340 | 2007 | 1.0 |
| K350 | 200A | 1.0 |
| K360 | 4004 | 2.0 |
| K375s | 4071 | |
| K400 Touch | 400E | 2.0 |
| K400 Touch | 4024 | 2.0 |
| K400 Plus | 404D | 2.0 |
| K520 | 2011 | 1.0 |
| K600 TV | 4078 | 2.0 |
| K750 Solar | 4002 | 2.0 |
| K780 | 405B | 2.0 |
| K800 Illuminated | 2010 | 1.0 |
| K800 (new ver) | 406E | 2.0 |
| K830 Illuminated | 4032 | 2.0 |
| MX Keys | 408A | 2.0 |
| N545 | 2006 | |
| TK820 | | 2.0 |
| Craft | 4066 | 2.0 |
Mice:
### Keyboards (Lightspeed)
| Device | HID++ | Battery | DPI | Other supported features |
|------------------|-------|---------|-------|---------------------------------|
| M215 | 1.0 | yes | | |
| M310 | | | | |
| M315 | | | | |
| M325 | | | | |
| M345 | | | | |
| M505 | | | | |
| M510 | 1.0 | yes | | smooth scrolling |
| M515 Couch | 2.0 | yes | - | |
| M525 | 2.0 | yes | - | |
| M705 Marathon | 1.0 | yes | - | smooth scrolling |
| T400 Zone Touch | | | | |
| T620 Touch | | | | |
| Performance MX | 1.0 | yes | R/W | |
| Anywhere MX | | | | |
| Cube | | | | |
| Device | WPID | HID++ |
|------------------|------|-------|
| G915 TKL | 408E | 4.2 |
### Mice (Unifying)
| Device | WPID | HID++ |
|------------------|------|-------|
| M150 | 4022 | 2.0 |
| M185 | 4055 | 2.0 |
| M310 | 4031 | 2.0 |
| M310 | 4055 | 2.0 |
| M317 | | |
| M325 | 400A | 2.0 |
| M330 | | 2.0 |
| M345 | 4017 | 2.0 |
| M350 | 101C | 1.0 |
| M350 | 4080 | 2.0 |
| M505 | 101D | 1.0 |
| M510 | 1025 | 1.0 |
| M510 | 4051 | 2.0 |
| M515 Couch | 4007 | 2.0 |
| M525 | 4013 | 2.0 |
| M560 | | 2.0 |
| M585 | 406B | 2.0 |
| M590 | 406B | 2.0 |
| M600 Touch | 401A | 2.0 |
| M705 Marathon | 101B | 1.0 |
| M705 Marathon | 406D | 2.0 |
| M720 Triathlon | 405E | 2.0 |
| T400 Zone Touch | | 2.0 |
| T620 Touch | | 2.0 |
| Performance MX | 101A | 1.0 |
| Anywhere MX | 1017 | 1.0 |
| Anywhere MX 2 | 404A | 2.0 |
| MX Master | 4041 | 2.0 |
| MX Master 2S | 4069 | 2.0 |
| Cube | | 2.0 |
| MX Vertical | 407B | 2.0 |
### Mice (Nano)
| Device | WPID | HID++ |
|------------------|------|-------|
| G7 | 1002 | 1.0 |
| G700 | 1023 | 1.0 |
| G700s | 102A | 1.0 |
| V450 Nano | 1011 | 1.0 |
| V550 Nano | 1013 | 1.0 |
| VX Nano | 100B | 1.0 |
| VX Nano | 100F | 1.0 |
| M175 | 4008 | |
| M185 (old) | 4038 | 2.0 |
| M185 (new) | 4054 | 2.0 |
| M187 | 4019 | 2.0 |
| M215 | 1020 | 1.0 |
| M235 | 4055 | 2.0 |
| M305 | 101F | 1.0 |
| M310 | 1024 | 1.0 |
| M315 | | |
| M330 | | ?.? |
| MX 1100 | 1014 | 1.0 |
* (old): M185 with P/N: 810-003496
* (new): M185 with P/N: 810-005238 or 810-005232
### Mice (Mini)
| Device | WPID | HID++ |
|-------------------|------|-------|
| MX610 | 1001 | 1.0 |
| MX610 left handed | 1004 | 1.0 |
| MX620 | 100A | 1.0 |
| MX620 | 1016 | 1.0 |
| V400 | 1003 | 1.0 |
| V450 | 1005 | 1.0 |
| VX Revolution | 1006 | 1.0 |
| VX Revolution | 100D | 1.0 |
| MX Air | 1007 | 1.0 |
| MX Air | 100E | 1.0 |
| MX Revolution | 1008 | 1.0 |
| MX Revolution | 100C | 1.0 |
Trackballs:
### Mice (Lightspeed)
| Device | HID++ | Battery | DPI | Other supported features |
|------------------|-------|---------|-------|---------------------------------|
| M570 Trackball | | | | |
| Device | WPID | HID++ |
|------------------------------|------|-------|
| G604 Wireless Gaming Mouse | 4085 | 4.2 |
| PRO X Superlight Wireless | 4093 | 4.2 |
### Trackballs (Unifying)
Touchpads:
| Device | WPID | HID++ |
|-------------------|------|-------|
| M570 Trackball | | 1.0 |
| MX Ergo Trackball | | 2.0 |
| Device | HID++ | Battery | DPI | Other supported features |
|------------------|-------|---------|-------|---------------------------------|
| T650 Touchpad | | | | |
### Touchpads (Unifying)
| Device | WPID | HID++ |
|------------------|------|-------|
| Wireless Touch | 4011 | 2.0 |
| T650 Touchpad | 4101 | 2.0 |
Mouse-Keyboard combos:
### Mice and Keyboards sold as combos
| Device | HID++ | Battery | Other supported features |
|------------------|-------|---------|-----------------------------------------|
| MK330 | | | |
| MK520 | | | |
| MK550 | | | |
| MK710 | 1.0 | yes | FN swap, reprog keys |
| Device | WPID | HID++ |
|------------------|------|-------|
| MK220 | | 2.0 |
| MK270 | 4023 | 2.0 |
| MK320 | 200F | |
| MK330 | | |
| MK345 | 4023 | 2.0 |
| MK520 | | M2/K1 |
| MK550 | | |
| MK700 | 2008 | 1.0 |
| MK710 | | 1.0 |
| EX100 keyboard | 0065 | 1.0 |
| EX100 mouse | 003f | 1.0 |
[unifying]: http://logitech.com/en-us/66/6079
[nano]: http://logitech.com/mice-pointers/articles/5926
[K360]: http://logitech.com/product/keyboard-k360
[K700]: http://logitech.com/product/wireless-desktop-mk710
[K750]: http://logitech.com/product/k750-keyboard
[K800]: http://logitech.com/product/wireless-illuminated-keyboard-k800
[M510]: http://logitech.com/product/wireless-mouse-m510
[M705]: http://logitech.com/product/marathon-mouse-m705
[P_MX]: http://logitech.com/product/performance-mouse-mx
[A_MX]: http://logitech.com/product/anywhere-mouse-mx
* 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,34 @@
1: Couch Mouse M515
Codename : M515
Kind : mouse
Wireless PID : 4007
Protocol : HID++ 2.0
Polling rate : 8 ms
Serial number: BED587E9
Firmware: RQM 24.00.B0023
Bootloader: DFU 00.02.B0010
The power switch is located on the base.
Supports 16 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
3: DEVICE NAME {0005}
4: DFUCONTROL {00C0}
5: BATTERY STATUS {1000}
6: unknown:1A30 {1A30} hidden
7: REPROG CONTROLS {1B00}
8: WIRELESS DEVICE STATUS {1D4B}
9: unknown:1DF3 {1DF3} hidden
10: VERTICAL SCROLLING {2100}
11: HI RES SCROLLING {2120}
12: MOUSE POINTER {2200}
13: unknown:1F02 {1F02} hidden
14: unknown:1F03 {1F03} hidden
15: unknown:1E80 {1E80} hidden
Has 5 reprogrammable keys:
0: LEFT CLICK => LeftClick mse, reprogrammable
1: RIGHT CLICK => RightClick mse, reprogrammable
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
3: BACK AS BUTTON 4 => BackEx mse, reprogrammable
4: FORWARD AS BUTTON 5 => BrowserForwardEx mse, reprogrammable
Battery: 65%, discharging,

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

@@ -0,0 +1,200 @@
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
# Old notification flags: 000100
>> ( 0.035) [10 FF 8100 000100] '\x10\xff\x81\x00\x00\x01\x00'
<< ( 0.015) [10 FF 8101 000000] '\x10\xff\x81\x01\x00\x00\x00'
>> ( 0.020) [10 FF 8101 000200] '\x10\xff\x81\x01\x00\x02\x00'
<< ( 0.030) [10 FF 8102 000000] '\x10\xff\x81\x02\x00\x00\x00'
>> ( 0.036) [10 FF 8102 000200] '\x10\xff\x81\x02\x00\x02\x00'
--
<< ( 0.142) [10 FF 8109 000000] '\x10\xff\x81\t\x00\x00\x00'
>> ( 0.148) [10 FF 8109 010000] '\x10\xff\x81\t\x01\x00\x00'
--
<< ( 1.790) [10 FF 8170 000000] '\x10\xff\x81p\x00\x00\x00'
>> ( 1.796) [10 FF 8170 012100] '\x10\xff\x81p\x01!\x00'
<< ( 1.806) [10 FF 8171 000000] '\x10\xff\x81q\x00\x00\x00'
>> ( 1.812) [10 FF 8171 011200] '\x10\xff\x81q\x01\x12\x00'
--
<< ( 1.838) [10 FF 8173 000000] '\x10\xff\x81s\x00\x00\x00'
>> ( 1.844) [10 FF 8173 643F00] '\x10\xff\x81sd?\x00'
--
<< ( 2.046) [10 FF 8180 000000] '\x10\xff\x81\x80\x00\x00\x00'
>> ( 2.052) [10 FF 8180 030000] '\x10\xff\x81\x80\x03\x00\x00'
--
<< ( 3.326) [10 FF 81D0 000000] '\x10\xff\x81\xd0\x00\x00\x00'
>> ( 3.332) [10 FF 81D0 000000] '\x10\xff\x81\xd0\x00\x00\x00'
devices
01 mouse
Red button pressed
>> ( 1676.106) [10 01 0810 000000] '\x10\x01\x08\x10\x00\x00\x00'
>> ( 1676.114) [10 01 4600 000021] '\x10\x01F\x00\x00\x00!'
>> ( 1676.122) [10 FF 4600 211100] '\x10\xffF\x00!\x11\x00'
Power lewel?
?? Input: 10 01 81 07 00 00 00
<< ( 1739.032) [10 01 8107 000000] '\x10\x01\x81\x07\x00\x00\x00'
>> ( 1739.040) [10 01 8107 030000] '\x10\x01\x81\x07\x03\x00\x00'
[10 01 8107 070000] '\x10\x01\x81\x07\x07\x00\x00'
power change
>> ( 2441.563) [10 01 0703 000000] '\x10\x01\x07\x03\x00\x00\x00'
>> ( 100.159) [10 01 0707 000000] '\x10\x01\x07\x07\x00\x00\x00'
enable power event
<< ( 59.190) [10 01 8000 100000] '\x10\x01\x80\x00\x10\x00\x00'
>> ( 59.193) [10 01 8000 000000] '\x10\x01\x80\x00\x00\x00\x00'
03 keyboard
Power level?
?? Input: 10 03 81 07 00 00 00
<< ( 1777.961) [10 03 8107 000000] '\x10\x03\x81\x07\x00\x00\x00'
>> ( 1777.967) [10 03 8107 070000] '\x10\x03\x81\x07\x07\x00\x00'
power on
>> ( 1571.805) [10 03 0810 000000] '\x10\x03\x08\x10\x00\x00\x00'
>> ( 1574.709) [10 03 0800 000000] '\x10\x03\x08\x00\x00\x00\x00'
red button pressed
>> ( 1619.043) [10 03 0810 000000] '\x10\x03\x08\x10\x00\x00\x00'
>> ( 1619.051) [10 03 4600 000011] '\x10\x03F\x00\x00\x00\x11'
>> ( 1619.059) [10 FF 4600 221100] '\x10\xffF\x00"\x11\x00'
>> ( 1621.747) [10 03 0800 000000] '\x10\x03\x08\x00\x00\x00\x00'
Fn pressed
>> ( 1651.715) [10 03 032C 100000] '\x10\x03\x03,\x10\x00\x00'
>> ( 1652.170) [10 03 0300 000000] '\x10\x03\x03\x00\x00\x00\x00'
Battery status:
1.9V critical
2.3V low
2.5V full

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,71 @@
solaar version 1.1.13+dfsg-1
1: G515 LS TKL
Device path : None
WPID : 40B4
Codename : G515 LS TKL
Kind : keyboard
Protocol : HID++ 4.2
Report Rate : 8ms
Serial number: 54FEF928
Model ID: B38940B4C355
Unit ID: 54FEF928
1: BL2 19.01.B0011
3:
0: MPK 25.01.B0011
3:
The power switch is located on the top right corner.
Supports 34 HID++ 2.0 features:
0: ROOT {0000} V0
1: FEATURE SET {0001} V0
2: DEVICE FW VERSION {0003} V6
Firmware: Bootloader BL2 19.01.B0011 ABD580558692
Firmware: Other
Firmware: Firmware MPK 25.01.B0011 40B480558692
Firmware: Other
Unit ID: 54FEF928 Model ID: B38940B4C355 Transport IDs: {'btleid': 'B389', 'wpid': '40B4', 'usbid': 'C355'}
3: DEVICE NAME {0005} V3
Name: G515 LS TKL
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B} V0
5: CONFIG CHANGE {0020} V0
Configuration: 11000000000000000000000000000000
6: DEVICE FRIENDLY NAME {0007} V0
Friendly Name: G515 LS TKL
7: unknown:0011 {0011} V0
8: UNIFIED BATTERY {1004} V5
Battery: 82%, discharging.
9: RGB EFFECTS {8071} V4
LED Control (saved): Solaar
LED Control : Solaar
LEDs Primary (saved): !LEDEffectSetting {ID: 1, color: 16776960, intensity: 26, period: 2167, ramp: 1, speed: 0}
LEDs Primary : HID++ error {'number': 1, 'request': 2537, 'error': 7, 'params': b'\x00'}
10: PER KEY LIGHTING V2 {8081} V0
Per-key Lighting (saved): {A:indian red, B:indian red, C:indian red, D:indian red, E:indian red, F:indian red, G:indian red, H:indian red, I:indian red, J:indian red, K:indian red, L:indian red, M:indian red, N:indian red, O:indian red, P:indian red, Q:indian red, R:indian red, S:indian red, T:indian red, U:indian red, V:indian red, W:indian red, X:indian red, Y:indian red, Z:indian red, 1:orange, 2:orange, 3:orange, 4:orange, 5:orange, 6:orange, 7:orange, 8:orange, 9:orange, 0:yellow, ENTER:green, ESC:green, BACKSPACE:red, TAB:yellow, SPACE:yellow, -:indian red, =:indian red, [:indian red, \:indian red, KEY 46:white, ~:indian red, ;:indian red, ':indian red, `:indian red, ,:indian red, .:indian red, /:indian red, CAPS LOCK:red, F1:indian red, F2:indian red, F3:indian red, F4:indian red, F5:indian red, F6:indian red, F7:indian red, F8:indian red, F9:indian red, F10:indian red, F11:indian red, F12:indian red, PRINT:red, SCROLL LOCK:orange, PASTE:indian red, INSERT:green, HOME:indian red, PAGE UP:yellow, DELETE:red, END:indian red, PAGE DOWN:yellow, RIGHT:indian red, LEFT:indian red, DOWN:indian red, UP:indian red, KEY 97:indian red, COMPOSE:white, POWER:white, KEY 100:indian red, KEY 101:red, KEY 102:red, KEY 103:red, LEFT CTRL:indian red, LEFT SHIFT:yellow, LEFT ALT:indian red, LEFT WINDOWS:blue, RIGHT CTRL:indian red, RIGHT SHIFT:yellow, RIGHT ALTGR:blue, RIGHT WINDOWS:indian red, KEY 254:white}
Per-key Lighting : {A:No change, B:No change, C:No change, D:No change, E:No change, F:No change, G:No change, H:No change, I:No change, J:No change, K:No change, L:No change, M:No change, N:No change, O:No change, P:No change, Q:No change, R:No change, S:No change, T:No change, U:No change, V:No change, W:No change, X:No change, Y:No change, Z:No change, 1:No change, 2:No change, 3:No change, 4:No change, 5:No change, 6:No change, 7:No change, 8:No change, 9:No change, 0:No change, ENTER:No change, ESC:No change, BACKSPACE:No change, TAB:No change, SPACE:No change, -:No change, =:No change, [:No change, \:No change, KEY 46:No change, ~:No change, ;:No change, ':No change, `:No change, ,:No change, .:No change, /:No change, CAPS LOCK:No change, F1:No change, F2:No change, F3:No change, F4:No change, F5:No change, F6:No change, F7:No change, F8:No change, F9:No change, F10:No change, F11:No change, F12:No change, PRINT:No change, SCROLL LOCK:No change, PASTE:No change, INSERT:No change, HOME:No change, PAGE UP:No change, DELETE:No change, END:No change, PAGE DOWN:No change, RIGHT:No change, LEFT:No change, DOWN:No change, UP:No change, KEY 97:No change, COMPOSE:No change, POWER:No change, KEY 100:No change, KEY 101:No change, KEY 102:No change, KEY 103:No change, LEFT CTRL:No change, LEFT SHIFT:No change, LEFT ALT:No change, LEFT WINDOWS:No change, RIGHT CTRL:No change, RIGHT SHIFT:No change, RIGHT ALTGR:No change, RIGHT WINDOWS:No change, KEY 254:No change}
11: unknown:1B10 {1B10} V0
12: unknown:4523 {4523} V1
13: KEYBOARD LAYOUT 2 {4540} V1
14: BRIGHTNESS CONTROL {8040} V0
Brightness Control (saved): 40
Brightness Control : 40
15: unknown:8101 {8101} V0
16: unknown:1B05 {1B05} V0
17: unknown:8051 {8051} V0
18: DFU {00D0} V3
19: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
20: unknown:1803 {1803} V1 internal, hidden, unknown:000010
21: unknown:1807 {1807} V3 internal, hidden, unknown:000010
22: unknown:1817 {1817} V0 internal, hidden, unknown:000010
23: OOBSTATE {1805} V0 internal, hidden
24: unknown:1830 {1830} V0 internal, hidden, unknown:000010
25: unknown:1890 {1890} V9 internal, hidden, unknown:000008
26: unknown:1891 {1891} V9 internal, hidden, unknown:000008
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:18B0 {18B0} V1 internal, hidden, unknown:000010
33: unknown:1801 {1801} V0 internal, hidden, unknown:000010
Battery: 82%, discharging.

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,41 @@
# Provided by Mikkel Munch Mortensen
(solaar)
3: Illuminated Living-Room Keyboard K830
Codename : K830
Kind : keyboard
Wireless PID : 4032
Protocol : HID++ 4.1
Polling rate : 8 ms (125Hz)
Serial number: 9F7C6FD7
Firmware: RQK 56.00.B0020
The power switch is located on the edge of top right corner.
Supports 27 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
3: DEVICE NAME {0005}
4: WIRELESS DEVICE STATUS {1D4B}
5: unknown:0020 {0020}
6: BATTERY STATUS {1000}
7: BACKLIGHT {1981}
8: unknown:1B04 {1B04}
9: unknown:2005 {2005}
10: NEW FN INVERSION {40A2}
11: ENCRYPTION {4100}
12: unknown:4521 {4521}
13: TOUCHPAD RAW XY {6100} hidden
14: unknown:6501 {6501}
15: unknown:00C1 {00C1}
16: unknown:1811 {1811} internal, hidden
17: unknown:1830 {1830} internal, hidden
18: unknown:1890 {1890} internal, hidden
19: unknown:18A0 {18A0} internal, hidden
20: unknown:1DF3 {1DF3} internal, hidden
21: unknown:1E00 {1E00} hidden
22: unknown:1EB0 {1EB0} internal, hidden
23: unknown:1861 {1861} internal, hidden
24: unknown:1A20 {1A20} internal, hidden
25: unknown:18B0 {18B0} internal, hidden
26: unknown:1F07 {1F07} internal, hidden
Battery: 50%, discharging.

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.

Binary file not shown.

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:
# writing 0x10 in this register will generate an event
@@ -36,7 +54,7 @@ registers:
<< ( 259.270) [10 02 81F1 000000] '\x10\x02\x81\xf1\x00\x00\x00'
>> ( 259.283) [10 02 8F81 F10300] '\x10\x02\x8f\x81\xf1\x03\x00'
# writing 01 here will trigger an avalance of events, most likely
# writing 01 here will trigger an avalanche of events, most likely
# raw input from the mouse; disable by writing 00
<< ( 261.300) [10 02 81F3 000000] '\x10\x02\x81\xf3\x00\x00\x00'
>> ( 261.315) [10 02 81F3 000000] '\x10\x02\x81\xf3\x00\x00\x00'

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%.

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