Closed herbertp closed 1 year ago
What you appear to want is some way to determine whether a device is connected via a receiver or via bluetooth. A potential reason to do this is that the Linux HID++ mouse driver sets the mouse to high-resolution scrolling when connected via the receiver but not when connected via bluetooth. This is not a Solaar problem but is instead a problem with the driver or a problem caused by both Solaar and the driver trying to control the mouse wheel resolution.
The best thing to do is to set the HIRES WHEEL setting to ignore so that the driver controls the wheel resolution. It may be that the mouse will still misbehave because the wheel resolution is not correctly set when it is switched between the receiver and bluetooth but that is definitely a driver issue.
Solaar does not currently have any means to differentiate between the mouse connected to a receiver and the mouse connected via bluetooth.
I kindly disagree here, I think it has (means) and it does (differentiate between the mouse connected via receiver or bluetooth) as can be seen in the following screenshots ...
... note that both entries refer to the same mouse as can be seen by the Unit ID. This 'differentiation' works as long as solaar is running.
Solaar keeps information about every device it has seen in ~/.config/solaar/config.yaml Devices are identified by one of two combinations of their attributes because not all devices have the same collection of attributes and not all the attributes are available all the time. The idea is that Solaar should be able to identify each physical device it has seen based on attributes of the device that are supposed to be unique to it. (Some low-end devices can only be identified by model so this is no always possible.) Unfortunately, some devices do not follow the available documentation. (For example, there are two ways of obtaining a serial number for a device. Devices that provide both ways are supposed to return the same number but there are a few that don't. Solaar tries to perform correctly for these devices.)
Your config.yaml file has only one entry for an MX Anywhere 3, so Solaar is only remembering one set of settings for it. It may be that there is a bug in Solaar that creates two internal copies of these settings and allows you to change one. If you think this might be the case, please let me know.
By the way, because scroll wheel resolution is also set by the Linux HID++ driver, it is now recommended that this setting be set to ignore. From https://github.com/pwr-Solaar/Solaar
The Linux HID++ driver modifies the Scroll Wheel Resolution setting to 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. The mouse has to be reset (e.g., by turning it off and on again) before this fix will take effect.
Thanks for the 'repeated' hint regarding Scroll Wheel Resolution (and setting it to ignore), this seems to solve the issue for me, as now the scroll wheel works fine for both connections. Appreciated!
And yes, I got the impression, that solaar keeps two internal versions depending on how the device is connected but only saves one of them to the config.
In an ideal world, solaar would know the channel choice of the device (1, 2 or 3) and keep separate settings based on this information, which would also allow to create different setups and easily switch between them just by pressing the button on the mouse. But I do not think this information is easily available and thus identifying the mouse by Unit ID (only) is probably the best option for now.
Thanks for the quick feedback, Herbert
What Solaar does is have two representations of the device that share a single structure that stores the saved settings. When a setting is changed on one of the devices this change is push to the saved settings, which then is saved to the configuration file. This only matters for devices that have been connected via both a receiver and some other method where the receiver-connected device representation persists when the device is disconnected from the receiver.
I don't think that it is worth modifying this behaviour.
Information
solaar show
:~/.config/solaar/config.yaml
(or~/.config/solaar/config.json
if~/.config/solaar/config.yaml
not present):Describe the bug The MX Anywhere 3 can be operated via the Logitech receiver as well as without using Bluetooth. My MX Anywhere 3 is configured to use the receiver on connection '1' and Bluetooth on connection 3 so that I can easily switch between them. When the mouse is working via the receiver, the Mouse Wheel Resolution needs to be set to High to make scrolling useful (otherwise too slow) but when connected via Bluetooth, the same setting needs to be set to Off to get comparable scrolling (otherwise it is too fast). This works perfectly fine as long as soolar is running, but needs to be configured every time solaar is (re-)started (I assume this is because solaar sees the same Unit ID and does not differentiate between RF receiver and Bluetooth)
To Reproduce Steps to reproduce the behavior:
Screenshots If applicable, add screenshots to help explain your problem.
Additional context Note: the assumption here is that different settings for the same mouse connected via Receiver or Bluetooth should be possible with solaar as they are visualized as 'different leaves' in the device tree.