pwr-Solaar / Solaar

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

Solaar does not find Logitech unifying receiver if the receiver was plugged in before Solaar started #2623

Closed LinuxOnTheDesktop closed 1 week ago

LinuxOnTheDesktop commented 1 week ago

Information

``` solaar version 1.1.11+dfsg-2 Unifying Receiver Device path : /dev/hidraw3 USB id : 046d:C52B Serial : 2C089758 Firmware : 24.11.B0036 Bootloader : 03.09 Other : AA.AD Has 1 paired device(s) out of a maximum of 6. Notifications: wireless (0x000100) Device activity counters: 1=162 1: M720 Triathlon Multi-Device Mouse Device path : /dev/hidraw5 WPID : 405E Codename : M720 Triathlon Kind : mouse Protocol : HID++ 4.5 Report Rate : 8msms Serial number: 3752EF14 Model ID: B015405E0000 Unit ID: C0BD18BC Bootloader: BOT 34.00.B0004 Firmware: MPM 04.02.B0009 Other: The power switch is located on the base. Supports 35 HID++ 2.0 features: 0: ROOT {0000} V0 1: FEATURE SET {0001} V0 2: DEVICE FW VERSION {0003} V2 Firmware: Bootloader BOT 34.00.B0004 00005F8FCBD901 Firmware: Firmware MPM 04.02.B0009 405E5F8FCBD901 Firmware: Other Unit ID: C0BD18BC Model ID: B015405E0000 Transport IDs: {'btleid': 'B015', 'wpid': '405E'} 3: DEVICE NAME {0005} V0 Name: M720 Triathlon Multi-Device Mouse Kind: mouse 4: WIRELESS DEVICE STATUS {1D4B} V0 5: CONFIG CHANGE {0020} V0 6: CRYPTO ID {0021} V0 7: DEVICE FRIENDLY NAME {0007} V0 Friendly Name: M720 Triathlon 8: BATTERY STATUS {1000} V0 Battery: 90%, discharging, next level 50%. 9: CHANGE HOST {1814} V1 Change Host : 1:F13 10: HOSTS INFO {1815} V1 Host 0 (paired): F13 Host 1 (paired): X230 Host 2 (paired): F13 11: REPROG CONTROLS V4 {1B04} V3 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} 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, MultiPlatform Gesture Button:Alt+Cntrl+TAB} 13: POINTER SPEED {2205} V0 Pointer Speed: 1.0 Sensitivity (Pointer Speed) (saved): 256 Sensitivity (Pointer Speed) : 256 14: VERTICAL SCROLLING {2100} V0 Roller type: 3G Ratchet per turn: 24 Scroll lines: 0 15: DFUCONTROL UNSIGNED {00C1} 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} V0 internal, hidden 20: OOBSTATE {1805} V0 internal, hidden 21: unknown:1813 {1813} V0 internal, hidden 22: unknown:1830 {1830} V0 internal, hidden 23: unknown:1861 {1861} V0 internal, hidden 24: unknown:1890 {1890} V0 internal, hidden 25: unknown:1891 {1891} V0 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:18B1 {18B1} V0 internal, hidden 31: unknown:1850 {1850} V0 internal, hidden 32: unknown:1F03 {1F03} V0 internal, hidden 33: unknown:18C0 {18C0} V0 internal, hidden 34: HIRES WHEEL {2121} V0 Multiplier: 8 Has invert: Normal wheel motion Has ratchet switch: Free 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 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: 90%, discharging, next level 50%. ```
``` - 1.1.11+dfsg-2 - _NAME: M720 Triathlon Multi-Device Mouse _absent: [hi-res-scroll, lowres-scroll-mode, scroll-ratchet, smart-shift, thumb-scroll-invert, thumb-scroll-mode, onboard_profiles, report_rate, report_rate_extended, dpi, speed-change, backlight, backlight_level, backlight_duration_hands_out, backlight_duration_hands_in, backlight_duration_powered, backlight-timed, led_control, led_zone_, fn-swap, 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: 4096 _modelId: B015405E0000 _serial: 3752EF14 _unitId: C0BD18BC _wpid: 405E change-host: null divert-keys: {0x52: 0x0, 0x53: 0x0, 0x56: 0x0, 0x5b: 0x0, 0x5d: 0x0, 0xd0: 0x0} hires-scroll-mode: false hires-smooth-invert: false hires-smooth-resolution: true persistent-remappable-keys: null pointer_speed: 0x100 reprogrammable-keys: {0x50: 0x50, 0x51: 0x51, 0x52: 0x52, 0x53: 0x53, 0x56: 0x56, 0x5b: 0x5b, 0x5d: 0x5d, 0xd0: 0xd0} ```

Describe the bug Solaar does not find Logitech unifying receiver if the receiver was plugged in before Solaar started. Nor, so far as I can see, do the on-screen instructions say anything about this. (Still, I will not double-check this, I'm afraid. For, I do not want to have to unpair and repair my devices, in case anything goes wrong.)

Thank you for your software.

To Reproduce Steps to reproduce the behavior:

  1. Have receiver plugged in.
  2. Start Solaar.
  3. Wonder why Solaar does not show the receiver.
pfps commented 1 week ago

Solaar now mostly uses as method for finding Logitech devices that parses HID report descriptors. In 1.1.11 this required the presence of the external hid_parser package, which does not appear to be installed correctly on your system. In 1.1.13 the parser is a module within Solaar and does not need to be separately installed.

LinuxOnTheDesktop commented 1 week ago

Thanks.

Seemingly then there is a problem with the packaging of version 1.1.11, which is the version in the Ubuntu/Mint repository and thus a version that many people will use (though on Mint at least - I do not know about Ubuntu - Solaar is not installed by default.)

Nor is it entirely evident how one works around the seeming packaging bug. For, hid_parser appears not to be apt-installable. Does it need (with Solaar 1.1.11) to be installed via some dreaded Python pip/pipx/something else procedure?

Additionally there appears to be something sub-optimal in the program, in that, upon not finding a package that it requires, Solaar shows no message about it to the user.

pfps commented 1 week ago

See

2024-10-08 16:45:49,313,313  WARNING [MainThread] hidapi.udev: Report Descriptor not processed for DEVICE /dev/hidraw6 BID 0003 VID 000032AC PID 00000002: No module named 'hid_parser'
pfps commented 1 week ago

Please direct packaging issues to whoever is doing the packaging.

LinuxOnTheDesktop commented 1 week ago

A line in the terminal, when the program is run from the terminal, is, well, not nothing.

Packaging bug - I've filed one, here.