Skip to content

Commit

Permalink
Merge branch 'master' into macos_support
Browse files Browse the repository at this point in the history
  • Loading branch information
pfps authored Nov 28, 2023
2 parents 9b14ca7 + d9e5e33 commit 5c40185
Show file tree
Hide file tree
Showing 42 changed files with 3,740 additions and 2,592 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ 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/ -->
<!-- Do not bother opening an issue for a version older than 1.1.0. Upgrade to the latest version and see if your issue persists. -->
<!-- If you not running the current version of Solaar, strongly consider upgrading to the newest version. -->
<!-- Do not bother opening an issue for a version older than 1.1.8. Upgrade to the latest version and see if your issue persists. -->
<!-- If you are not running the current version of Solaar, strongly consider upgrading to the newest version. -->
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository):
- Distribution:
- Kernel version (ex. `uname -srmo`): `KERNEL VERSION HERE`
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ assignees: ''
---

**Information**
<!-- Please update to Solaar from this repository before asking for a new feature. -->
<!-- The version of Solaar in this repository has more features than released vesions. Update to this version before asking for a new feature. -->
- Solaar version (`solaar --version` and `git describe --tags`):
- Distribution:
- Kernel version (ex. `uname -srmo`):
Expand Down
28 changes: 28 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
# 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
Expand Down
6 changes: 6 additions & 0 deletions Release_Notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Notes on Major Changes in Releases

## 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.
Expand Down
1 change: 0 additions & 1 deletion docs/capabilities.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ 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).
Some features of rules do not work under Wayland.

Users can edit rules using a GUI by clicking on the `Rule Editor` button in the Solaar main window.

Expand Down
4 changes: 4 additions & 0 deletions docs/devices.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@ 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++ |
Expand Down Expand Up @@ -202,6 +205,7 @@ and are not being updated for new devices that are supported by Solaar.
| MX Master | 4041 | 2.0 |
| MX Master 2S | 4069 | 2.0 |
| Cube | | 2.0 |
| MX Vertical | 407B | 2.0 |

### Mice (Nano)

Expand Down
49 changes: 49 additions & 0 deletions docs/devices/G502 Proteus Spectrum Optical Mouse C332.txt
Original file line number Diff line number Diff line change
@@ -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.
44 changes: 44 additions & 0 deletions docs/devices/G502 SE Hero Gaming Mouse C08B.txt
Original file line number Diff line number Diff line change
@@ -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.
63 changes: 63 additions & 0 deletions docs/devices/G815 Mechanical Keyboard C33F.txt
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 16 additions & 14 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ and pair and unpair a Logitech device showing the Bolt logo
with any Bolt receiver,
and
can pair and unpair Lightspeed devices with Lightspeed receivers for the same model.
Solaar can pair some Logitech devices with Logitech Nano receivers but not all Logitech
Solaar can pair some Logitech devices with Logitech Nano receivers, but not all Logitech
devices can be paired with Nano receivers.
Logitech devices without a Unifying or Bolt logo
generally cannot be paired with Unifying or Bolt receivers.
Expand All @@ -102,12 +102,13 @@ and their features, see [the devices page](https://pwr-solaar.github.io/Solaar/d
Up-to-date prebuilt packages are available for some Linux distros
(e.g., Fedora 33+) in their standard repositories.
If a recent version of Solaar is not
available from the standard repositories for your distribution you can try
available from the standard repositories for your distribution, you can try
one of these packages.

- Arch solaar package in the [community repository][arch]
- Arch solaar package in the [extra repository][arch]
- Ubuntu/Kubuntu stable packages: use the [Solaar stable ppa][ppa2], courtesy of [gogo][ppa4]
- Ubuntu/Kubuntu git build packages: use the [Solaar git ppa][ppa1], courtesy of [gogo][ppa4]
- NixOS Flake: see [Svenum/Solaar-Flake][nix flake]

Solaar is available from some other repositories
but they are several versions behind the current version.
Expand All @@ -122,10 +123,11 @@ Solaar uses a standard system tray implementation; solaar-gnome3 is no longer re
[ppa2]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/stable
[ppa1]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/ppa
[ppa]: http://launchpad.net/~daniel.pavel/+archive/solaar
[arch]: https://www.archlinux.org/packages/community/any/solaar/
[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
[universe repository]: http://packages.ubuntu.com/search?keywords=solaar&searchon=names&suite=all&section=all
[nix flake]: https://github.com/Svenum/Solaar-Flake

## Manual installation

Expand All @@ -139,7 +141,7 @@ for the step-by-step procedure for manual installation.
will likely result in unexpected device behavior.

- The Linux HID++ driver modifies the Scroll Wheel Resolution setting to
implement smooth scrolling. If Solaar later changes this setting scrolling
implement smooth scrolling. If Solaar later changes this setting, scrolling
can be either very fast or very slow. To fix this problem
click on the icon at the right edge of the setting to set it to
"Ignore this setting", which is the default for new devices.
Expand All @@ -150,16 +152,16 @@ for the step-by-step procedure for manual installation.
to restore reversed scrolling.

- The driver sends messages to devices that do not conform with the Logitech HID++ specification
resulting in reponses being sent back that look like other messages. For some devices this causes
resulting in responses being sent back that look like other messages. For some devices this causes
Solaar to report incorrect battery levels.

- If the Python hid-parser package is not available Solaar will not recognize some devices.
- If the Python hid-parser package is not available, Solaar will not recognize some devices.
Use pip to install hid-parser.

- Solaar normally uses icon names for its icons, which in some system tray implementatations
- Solaar normally uses icon names for its icons, which in some system tray implementations
results in missing or wrong-sized icons.
The `--tray-icon-size` option forces Solaar to use icon files of appropriate size
for tray icons instead, which produces better results in some system tray implementatations.
for tray icons instead, which produces better results in some system tray implementations.
To use icon files close to 32 pixels in size use `--tray-icon-size=32`.

- The icon in the system tray can show up as 'black on black' in dark
Expand All @@ -169,17 +171,17 @@ for the step-by-step procedure for manual installation.

- Many gaming mice and keyboards have the ONBOARD PROFILES feature.
This feature can override other features, including polling rate and key lighting.
To make the Polling Rate and M-Key LEDs settings effective the Onboard Profiles setting has to be disabled.
To make the Polling Rate and M-Key LEDs settings effective, the Onboard Profiles setting has to be disabled.
This may have other effects, such as turning off backlighting.

- Solaar will try to use uinput to simulate input from rules under Wayland or if Xtest is not available
but this needs write permission on /dev/uinput.
For more information see [the rules page](https://pwr-solaar.github.io/Solaar/rules).

- Diverted keys remain diverted and so do not have their normal behaviour when Solaar terminates
or a device disconnects from a host that is running Solaar. If necessary, their normal behaviour
- Diverted keys remain diverted and so do not have their normal behavior when Solaar terminates
or a device disconnects from a host that is running Solaar. If necessary, their normal behavior
can be reestablished by turning the device off and on again. This is most important to restore
the host switching behaviour of a host switch key that was diverted, for example to switch away
the host switching behavior of a host switch key that was diverted, for example to switch away
from a host that crashed or was turned off.

- When a receiver-connected device changes hosts Solaar remembers which diverted keys were down on it.
Expand All @@ -189,7 +191,7 @@ for the step-by-step procedure for manual installation.

## Contributing to Solaar

Conributions to Solaaar are very welcome.
Contributions to Solaar are very welcome.

Solaar has complete or partial translations of its GUI strings in several languages.
If you want to update a translation or add a new one see [the translation page](https://pwr-solaar.github.io/Solaar/i18n) for more information.
Expand Down
19 changes: 17 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ layout: page

An easy way to install the most recent release version of Solaar is from the PyPI repository.
First install pip, and then run
`pip install --user 'solaar[report-descriptor,git-commit]'`.
`pip install --user solaar`.
If you are using pipx add the `--system-site-packages` flag.

This will not install the Solaar udev rule, which you will need to install manually by copying
`~/.local/share/solaar/udev-rules.d/42-logitech-unify-permissions.rules`
Expand Down Expand Up @@ -47,7 +48,7 @@ The `udev` package must be installed and its daemon running.

Solaar requires Python 3.7+ and requires several packages to be installed.
If you are running the system version of Python you should have the
`python3-pyudev`, `python3-psutil`, `python3-xlib`, `python3-evdev`, `python3-typing-extensions`,
`python3-pyudev`, `python3-psutil`, `python3-xlib`, `python3-evdev`, `python3-typing-extensions`, `dbus-python`,
and `python3-yaml` or `python3-pyyaml` packages installed.

To run the GUI Solaar also requires Gtk3 and its GObject introspection bindings.
Expand All @@ -57,6 +58,7 @@ in Debian/Ubuntu you should have the
In Fedora you need `gtk3` and `python3-gobject`.
You may have to install `gcc` and the Python development package (`python3-dev` or `python3-devel`,
depending on your distribution).
Other system packages may be required depending on your distribution, such as `python-gobject-common-devel`.
Although the Solaar CLI does not require Gtk3,
`solaar config` does use Gtk3 capabilities to determine whether the Solaar GUI is running
and thus should tell the Solaar GUI to update its information about settings
Expand Down Expand Up @@ -148,6 +150,19 @@ If you want to have Solaar's user messages in some other language you need to ru
`tools/po-compile.sh` to create the translation files before running or installing Solaar
and set the LANGUAGE environment variable appropriately when running Solaar.

# Setting up Solaar's icons

Solaar uses a number of custom icons, which have to be installed in a place where GTK can access them.

If Solaar has never been installed, and only run from the download directory then Solaar will not be able to find the icons.
If Solaar has only been installed for a user (e.g., via pip) then Solaar will be able to find the icons,
but they may not show up in the system tray.

One solution is to install a version of Solaar on a system-wide basis.
A more-recent version of Solaar can then be installed for a user or Solaar can be run out of the download directory.
Another solution is to copy the Solaar custom icons from share/solaar/icons to a place they can be found by GTK,
likely /usr/share/icons/hicolor/scalable/apps.

# Running Solaar at Startup

Distributions can cause Solaar can be run automatically at user login by installing a desktop file at
Expand Down
Loading

0 comments on commit 5c40185

Please sign in to comment.