pwr-Solaar / Solaar

Linux device manager for Logitech devices
https://pwr-solaar.github.io/Solaar
GNU General Public License v2.0
5.37k stars 401 forks source link

(Fixed by running the pre-release once?) Settings and battery not showing up with Logitech MX Master 3s #2289

Closed florian-obernberger closed 7 months ago

florian-obernberger commented 7 months ago

Information

``` solaar version 1.1.10 USB and Bluetooth Devices 1: MX Master 3S Device path : /dev/hidraw0 USB id : 046d:B034 Codename : MX Master 3S Kind : mouse Protocol : HID++ 4.5 Serial number: Model ID: B03400000000 Unit ID: 7C9B0C5C Bootloader: BL1 69.01.B0006 Firmware: RBM 22.01.B0006 Other: 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.01.B0006 B034BB5190E8 Firmware: Firmware RBM 22.01.B0006 B034BB5190E8 Firmware: Other Unit ID: 7C9B0C5C 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: CONFIG CHANGE {0020} V0 6: CRYPTO ID {0021} V1 7: DEVICE FRIENDLY NAME {0007} V0 Friendly Name: MX Master 3S 8: UNIFIED BATTERY {1004} V3 Battery status unavailable. 9: REPROG CONTROLS V4 {1B04} V5 10: CHANGE HOST {1814} V1 Change Host : 3:feder 11: HOSTS INFO {1815} V2 Host 0 (paired): feder Host 1 (paired): Logitech Bolt receiver Host 2 (paired): feder 12: XY STATS {2250} V1 13: ADJUSTABLE DPI {2201} V2 14: SMART SHIFT {2110} V0 Scroll Wheel Ratcheted (saved): Ratcheted Scroll Wheel Ratcheted : Ratcheted Scroll Wheel Ratchet Speed (saved): 16 Scroll Wheel Ratchet Speed : 16 15: HIRES WHEEL {2121} V1 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 16: THUMB WHEEL {2150} V0 Thumb Wheel Direction (saved): False Thumb Wheel Direction : False Thumb Wheel Diversion (saved): False Thumb Wheel Diversion : 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 status unavailable. ```
``` - 1.1.10 - _NAME: K540/K545 _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore} _serial: 21AE2EB4 _wpid: '4076' - _NAME: Wireless Mouse MX Master 2S _absent: [hi-res-scroll, lowres-scroll-mode, thumb-scroll-invert, thumb-scroll-mode, onboard_profiles, report_rate, pointer_speed, speed-change, backlight, backlight-timed, fn-swap, persistent-remappable-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, gesture2-params, sidetone, equalizer, adc_power_management] _battery: 4096 _modelId: B01940690000 _sensitive: {divert-keys: false, gesture2-divert: true, hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore} _serial: E8529FE9 _unitId: DF31E44F _wpid: '4069' change-host: null divert-keys: {82: 0, 83: 0, 86: 0, 195: 2, 196: 0} dpi: 1000 gesture2-divert: {46: false} gesture2-gestures: {45: true, 46: true} hires-scroll-mode: false hires-smooth-invert: false hires-smooth-resolution: true reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196} scroll-ratchet: 2 smart-shift: 16 - _NAME: MX Keys Keyboard _absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, scroll-ratchet, smart-shift, thumb-scroll-invert, thumb-scroll-mode, onboard_profiles, report_rate, pointer_speed, dpi, speed-change, backlight-timed, reprogrammable-keys, persistent-remappable-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management] _battery: 4096 _modelId: B35B408A0000 _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore} _serial: 7EF5B17A _unitId: 7EF5B17A _wpid: 408A backlight: true change-host: null disable-keyboard-keys: {} divert-keys: {10: 0, 110: 0, 111: 0, 191: 0, 199: 0, 200: 0, 209: 0, 210: 0, 211: 0, 224: 0, 225: 0, 226: 0, 227: 0, 228: 0, 229: 0, 230: 0, 231: 0, 232: 0, 233: 0, 234: 0, 235: 0, 236: 0} fn-swap: true multiplatform: null - _NAME: MX Master 3S _absent: [hi-res-scroll, lowres-scroll-mode, thumb-scroll-invert, thumb-scroll-mode, report_rate, pointer_speed, speed-change, backlight, backlight-timed, reprogrammable-keys, persistent-remappable-keys, divert-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management, onboard_profiles, fn-swap, onboard_profiles, fn-swap] _battery: 4100 _modelId: B03400000000 _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore} _unitId: 7AF27856 change-host: null dpi: 1000 hires-scroll-mode: false hires-smooth-invert: false hires-smooth-resolution: true scroll-ratchet: 2 smart-shift: 10 - _NAME: MX Master 3S _absent: [hi-res-scroll, lowres-scroll-mode, scroll-ratchet, smart-shift, onboard_profiles, report_rate, pointer_speed, dpi, speed-change, backlight, backlight-timed, fn-swap, persistent-remappable-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, change-host, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management] _battery: 4100 _modelId: B03400000000 _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore} _unitId: 7AF27856 divert-keys: {82: 0, 83: 0, 86: 0, 195: 0, 196: 0} hires-scroll-mode: false hires-smooth-invert: false hires-smooth-resolution: true reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196} thumb-scroll-invert: false thumb-scroll-mode: false - _NAME: MX Master 3S _absent: [hi-res-scroll, lowres-scroll-mode, onboard_profiles, report_rate, pointer_speed, dpi, speed-change, backlight, backlight-timed, reprogrammable-keys, persistent-remappable-keys, divert-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer] _battery: 0 _modelId: B03400000000 _sensitive: {change-host: true, hires-scroll-mode: true, hires-smooth-resolution: ignore, smart-shift: false} _serial: 7C9B0C5C _unitId: 7C9B0C5C _wpid: B034 adc_power_management: 60 change-host: null fn-swap: false hires-scroll-mode: false hires-smooth-invert: false hires-smooth-resolution: true scroll-ratchet: 2 smart-shift: 16 thumb-scroll-invert: false thumb-scroll-mode: false - _NAME: MX Master 3S _absent: [hi-res-scroll, lowres-scroll-mode, onboard_profiles, report_rate, pointer_speed, speed-change, backlight, backlight-timed, fn-swap, persistent-remappable-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management] _battery: 4100 _modelId: B03400000000 _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore} _unitId: 7C9B0C5C change-host: null divert-keys: {82: 0, 83: 0, 86: 0, 195: 0, 196: 0} dpi: 1000 hires-scroll-mode: false hires-smooth-invert: false hires-smooth-resolution: true reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196} scroll-ratchet: 2 smart-shift: 10 thumb-scroll-invert: false thumb-scroll-mode: false ```

Describe the bug

I recently bought a Logitech MX Master 3s and wanted to set it up using solaar. Unfortunately I am seeing none of the options like button diversion or the option to use / set the mouse gesture button, key actions, DPI settings, etc. (please see the attached screenshot to see what the options I see are). I also do not see the battery status at all.

I do have write permissions to /dev/uinput and it worked flawlessly with my previous MX 2s.

I have also tried to connect the mouse using the bolt receiver because while I would prefer bluetooth I understand that using the receiver could potentially improve usability. However the settings are not present there, either. Battery levels on the other hand do get reported when connected using the bolt receiver. Or at least they did because as of right now solaar crashes when I plug in the bolt receiver (I will look into it further since I am sure this is just a bug I caused because it worked before flawlessly. I mentioned it here to let you know that I can currently not test with it).

I also read through nearly all issues containing the term "MX 3s" and tried some things mentioned there but it did not help or was an issue with having no access to /dev/uinput, which I do.

When running solaar -ddd I found out that solaar does not log any event or message when I am pressing the mouse gesture button.

I also tried setting the mouse up with windows, which might have caused the errors with the bolt receiver. This however did not bring any of the settings "back", either.

If there is any further information you'd need from me, please let me know and I'll provide it asap.

Also thank you so much for this project, it made my life so much easier using my MX 2s! And also thank you for taking time out of your day and looking at my issue.

To Reproduce Steps to reproduce the behavior:

  1. Turn on the MX 3s
  2. Connect it via gnome's bluetooth manager
  3. Open solaar
  4. Don't see the options mentioned above

Screenshots

Screenshot of solaar main window

florian-obernberger commented 7 months ago

I feel somewhat stupid but after trying to fix it for hours and just minutes after creating this issue I managed to somehow fix it?

I looked at the recent issues and saw the mention of a pre-release (which I did not see priors because github only shows the releases in the main section) I thought I'd give the pre-release a try because it might already fix my issue. I downloaded the source code and ran the bin/solaar file. It now shows me all the options that were not there previously. I then quit the 1.1.11rc version and tried again in the 1.1.10 version that I created the issue over. It now works in this version as well? So I'd say my issue has been fixed...

I am really sorry for writing it, but in my defense I did try and look through all the issues prior and could not get it to work 😅

Here is the now current screenshot:

Updated solaar screenshot

I am unsure if I should close the issue, because clearly there was something wrong beforehand. You are more than welcome to close the issue without any comment, I'll just leave it here in case there is some use in it for you :)

pfps commented 7 months ago

Something strange was definitely going on. I'll take a look and see if I can make a guess at the problem.

Your config.yaml file has multiple entries for your 3S. You should remove all but one. Make sure that the one you leave has all the settings in it. Or you can just remove them all and have Solaar create a new entry.

pfps commented 7 months ago

I don't see any issues in 1.1.10 with my MX Master 3, which has very similar functionality. I suspect that there were communications glitches with the mouse when Solaar was setting it up.

pfps commented 7 months ago

I'm closing this for now.

florian-obernberger commented 7 months ago

I assumed the multiple entries came from me once connecting it via BT and once via the Bolt receiver.

I tried stopping solaar, deleting the file, and then starting solaar and turning on the MX 3s prior to this issue so that only the relevant entry would show up but solaar recreated even the MX 2s without connecting. I'll try only deleting one specific entry this time.


That makes sense, yeah!

Thanks again for your time :)

pfps commented 7 months ago

Solaar should keep only one entry for each device. There are known problems precisely identifying devices due to the various ways devices and receivers report identifying information for devices. The Solaar code for doing this is likely to be upgraded in the near future so spending time trying to track down what actually happened is probably not too useful.