Closed GTRONICK closed 2 years ago
I'm assuming that you change the DPI with the DPI Switch button not the middle button itself.
If you run as solaar -ddd
you will see a lot of debugging output, including all the messages sent to and from the mouse. If DPI Sliding is working you should see something like the following each time you press the DPI Sliding button:
12:16:44,781 DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 01 0900 00C40000000000000000000000000000]
12:16:44,782 DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(1,4082,MX Master 3 Wireless Mouse,198E3EB8)>: notification for feature REPROG CONTROLS V4, report 0, data 00C40000000000000000000000000000
12:16:44,782 DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(1,4082,MX Master 3 Wireless Mouse,198E3EB8)>: diverted controls pressed: 0xc4, 0x0, 0x0, 0x0
12:16:44,921 DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 01 0900 00000000000000000000000000000000]
12:16:44,922 DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read NamedInt(2450, '2450') from <Device(1,4082,MX Master 3 Wireless Mouse,198E3EB8)>
12:16:44,922 DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: setting write NamedInt(1650, '1650') to <Device(1,4082,MX Master 3 Wireless Mouse,198E3EB8)>
12:16:44,923 DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings prepare write(1650) => b'\x00\x06r'
12:16:44,923 DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (17) <= w[11 01 0C3D 00067200000000000000000000000000]
12:16:44,945 DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (17) => r[11 01 0C3D 00067200000000000000000000000000]
The first line is the notification from the mouse that the DPI Sliding button has been pressed. It might look a bit different but the third group of numbers has to read 0900
(for your mouse). If you don't see this then the mouse did not send a message that can be used to start DPI Sliding. The next two lines are Solaar responding to the message. The second-last line is the command Solaar sends to the mouse to change the DPI and the last line is the response from the mouse.
Please post the lines that you see.
Thanks for the quick response! I can see the events, but it always seems to send the same DPI value:
12:08:27,273 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0900 00FD0000000000000000000000000000]
12:08:27,273 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: notification for feature REPROG CONTROLS V4, report 0, data 00FD0000000000000000000000000000
12:08:27,273 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: diverted controls pressed: 0xfd, 0x0, 0x0, 0x0
12:08:27,281 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0910 FE9000A4000000000000000000000000]
12:08:27,281 DEBUG [ReceiverListener:hidraw3] logitech_receiver.settings: dpi: settings read 2400 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,281 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: notification for feature REPROG CONTROLS V4, report 0, data FE9000A4000000000000000000000000
12:08:27,281 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: rawXY dx=-368 dy=164
12:08:27,371 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0900 00000000000000000000000000000000]
12:08:27,371 DEBUG [ReceiverListener:hidraw3] logitech_receiver.settings: dpi: setting write NamedInt(2400, '2400') to <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,371 DEBUG [ReceiverListener:hidraw3] logitech_receiver.settings: dpi: settings prepare write(2400) => b'\x00\t`'
12:08:27,371 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) <= w[11 02 0E3B 00096000000000000000000000000000]
12:08:27,386 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0E3B 00096000000000000000000000000000]
12:08:27,386 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
12:08:27,386 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
12:08:27,386 DEBUG [MainThread] solaar.ui: status changed: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)> (NONE) None
12:08:27,386 DEBUG [MainThread] solaar.ui.icons: battery icon for 100:False = battery-full
12:08:27,386 DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw7', 255, 'Bluetooth Multi-Device Keyboard K380', {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
12:08:27,386 DEBUG [MainThread] solaar.ui.icons: battery icon for 50:False = battery-good
12:08:27,387 DEBUG [MainThread] solaar.ui.icons: battery icon for 100:False = battery-full
12:08:27,387 DEBUG [MainThread] solaar.ui.icons: battery icon for 100:False = battery-full
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: lowres-scroll-mode: settings read False from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 2400 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: dpi-sliding: settings read 253 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {82: 82, 83: 83, 86: 86, 253: 253} from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {82: 0, 83: 0, 86: 0, 253: 1} from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:27,387 DEBUG [AsyncUI] logitech_receiver.settings: change-host: settings read NamedInt(0, '1:gtronick') from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,816 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0900 00FD0000000000000000000000000000]
12:08:32,816 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: notification for feature REPROG CONTROLS V4, report 0, data 00FD0000000000000000000000000000
12:08:32,816 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: diverted controls pressed: 0xfd, 0x0, 0x0, 0x0
12:08:32,823 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0910 FEA0FFC2000000000000000000000000]
12:08:32,823 DEBUG [ReceiverListener:hidraw3] logitech_receiver.settings: dpi: settings read 2400 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,823 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: notification for feature REPROG CONTROLS V4, report 0, data FEA0FFC2000000000000000000000000
12:08:32,824 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: rawXY dx=-352 dy=-62
12:08:32,921 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0900 00000000000000000000000000000000]
12:08:32,921 DEBUG [ReceiverListener:hidraw3] logitech_receiver.settings: dpi: setting write NamedInt(2400, '2400') to <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,921 DEBUG [ReceiverListener:hidraw3] logitech_receiver.settings: dpi: settings prepare write(2400) => b'\x00\t`'
12:08:32,921 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) <= w[11 02 0E39 00096000000000000000000000000000]
12:08:32,936 DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (13) => r[11 02 0E39 00096000000000000000000000000000]
12:08:32,936 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
12:08:32,936 DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
12:08:32,936 DEBUG [MainThread] solaar.ui: status changed: <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)> (NONE) None
12:08:32,937 DEBUG [MainThread] solaar.ui.icons: battery icon for 100:False = battery-full
12:08:32,937 DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw7', 255, 'Bluetooth Multi-Device Keyboard K380', {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
12:08:32,938 DEBUG [MainThread] solaar.ui.icons: battery icon for 50:False = battery-good
12:08:32,938 DEBUG [MainThread] solaar.ui.icons: battery icon for 100:False = battery-full
12:08:32,938 DEBUG [MainThread] solaar.ui.icons: battery icon for 100:False = battery-full
12:08:32,938 DEBUG [AsyncUI] logitech_receiver.settings: lowres-scroll-mode: settings read False from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,938 DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 2400 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,939 DEBUG [AsyncUI] logitech_receiver.settings: dpi-sliding: settings read 253 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,939 DEBUG [AsyncUI] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,939 DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {82: 82, 83: 83, 86: 86, 253: 253} from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,939 DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {82: 0, 83: 0, 86: 0, 253: 1} from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
12:08:32,939 DEBUG [AsyncUI] logitech_receiver.settings: change-host: settings read NamedInt(0, '1:gtronick') from <Device(2,B031,LIFT VERTICAL ERGONOMIC MOUSE,E86E35D0)>
If I start Solaar in normal mode, from the applications menu, I can switch between two DPIs with a single click in the DPI button, but It only works sometimes. If I start Solaar from the terminal with -ddd, that function seems not to work at all, and just always sends the same DPI value.
Using the sliding feature to change the DPI works pretty well when started from the terminal, showing the notification an all, but if I start it from the applications menu, the sliding feature still seems to work, but the notification does not appear, maybe I'm using the application in the wrong way?
For the moment, I have edited the application entry modifying the command as: solaar -ddd --window=hide
, the notification when sliding showed up the first time, but then It stopped showing up.
Thanks in advance!
Solaar normally has both a window and an icon in the system tray (assuming that you have a working system tray). You can use the system tray icon to open the Solaar window and Solaar will continue to run even when its window is closed.
As Solaar depends on the system tray and the notification server it is sensitive to problems in both of them. Some system trays interact badly with Solaar.
Note that Solaar tries to reuse notifications so that if you change the DPI several times in quick succession only one notification will appear.
What I see from your two log examples is that they both are changing the DPI to 2400. It also looks as if your mouse reports an initial large movement, which does not correspond to any actual movement of the mouse and may be causing problems. Try actually moving the mouse to change the DPI and see whether you experience problems there. You could also try looking at issue #1662 and running the PR mentioned there.
Solaar should not be sensitive to from where it is being invoked, except that there may be multiple versions of Solaar installed on your machine and different invocation methods may end up running different versions. You do need to run Solaar with your UID, and maybe from your login session, as the system tray and notifications may be sensitive to UID or login session.
Thank you so much for the help!. I'll check it out. Testing again with your recommendations I can see that the DPI change using the sliding method works nice, so I'll close the issue as this is enough for me to make the system usable. I also want to report that the horizontal scrolling works perfectly using the default configuration (back or forward button + wheel). Thanks a lot and keep the good work!
Hi, first of all thanks for this awesome work! it is great to have this on my Linux system and be able to use some of the capabilities of my new mouse :)
Changing the DPI with the middle button, sometimes works, sometimes does not. Sometimes Solaar shows the notification on change, but sometimes it doesn't. I have started solaar with
solaar -dd -w show
, but I do not see any errors when I press the DPI button, I can notice however when the DPI changes and the terminal updates, but most of the times it is ignored and thus no updates in the terminal are shown. Below the information I can gather for the moment: