pwr-Solaar / Solaar

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

Allow both press and release events for Back and Forward buttons #2375

Closed Mm2PL closed 8 months ago

Mm2PL commented 8 months ago

Information

``` solaar version 1.1.11 Signature M650 L Device path : /dev/hidraw5 USB id : 046d:B02A Codename : Logi M650 L Kind : mouse Protocol : HID++ 4.5 Serial number: Model ID: B02A00000000 Unit ID: D1E770E2 Bootloader: BL1 38.02.B0013 Firmware: RBM 16.02.B0013 Other: Supports 30 HID++ 2.0 features: 0: ROOT {0000} V0 1: FEATURE SET {0001} V0 2: DEVICE FW VERSION {0003} V4 Firmware: Bootloader BL1 38.02.B0013 B02AB0706FCD Firmware: Firmware RBM 16.02.B0013 B02AB0706FCD Firmware: Other Unit ID: D1E770E2 Model ID: B02A00000000 Transport IDs: {'btleid': 'B02A'} 3: DEVICE NAME {0005} V0 Name: Signature M650 L Kind: mouse 4: WIRELESS DEVICE STATUS {1D4B} V0 5: CONFIG CHANGE {0020} V0 6: DEVICE FRIENDLY NAME {0007} V0 Friendly Name: Logi M650 L 7: UNIFIED BATTERY {1004} V3 Battery: 40%, discharging. 8: REPROG CONTROLS V4 {1B04} V5 Key/Button Actions (saved): {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button} Key/Button Actions : {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button} Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Diverted, Forward Button:Diverted} Key/Button Diversion : {Middle Button:Regular, Back Button:Diverted, Forward Button:Diverted} 9: HOSTS INFO {1815} V2 Host 0 (paired): HelloThisIsMyHostName 10: XY STATS {2250} V1 11: LOWRES WHEEL {2130} V0 Wheel Reports: HID Scroll Wheel Diversion (saved): False Scroll Wheel Diversion : False 12: ADJUSTABLE DPI {2201} V2 Sensitivity (DPI) (saved): 1000 Sensitivity (DPI) : 1000 13: DFUCONTROL {00C3} V0 14: DEVICE RESET {1802} V0 internal, hidden, unknown:000010 15: unknown:1803 {1803} V0 internal, hidden, unknown:000010 16: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010 17: unknown:1816 {1816} V0 internal, hidden, unknown:000010 18: OOBSTATE {1805} V0 internal, hidden 19: unknown:1830 {1830} V0 internal, hidden, unknown:000010 20: unknown:1891 {1891} V7 internal, hidden, unknown:000008 21: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010 22: unknown:1E00 {1E00} V0 hidden 23: unknown:1E02 {1E02} V0 internal, hidden 24: unknown:1E22 {1E22} V1 internal, hidden, unknown:000010 25: unknown:1602 {1602} V0 26: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010 27: unknown:1861 {1861} V1 internal, hidden, unknown:000010 28: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010 29: unknown:920A {920A} V0 internal, hidden, unknown:000010 Has 6 reprogrammable keys: 0: Left Button , default: Left Click => Left Click mse, analytics key events, pos:0, group:1, group mask:empty reporting: default 1: Right Button , default: Right Click => Right Click mse, analytics key events, pos:0, group:1, group mask:empty reporting: default 2: Middle Button , default: Mouse Middle Button => Mouse Middle Button mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3 reporting: default 3: Back Button , default: Mouse Back Button => Mouse Back Button mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2 reporting: diverted 4: Forward Button , default: Mouse Forward Button => Mouse Forward Button mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2 reporting: diverted 5: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty reporting: default Battery: 40%, discharging. ```

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] When not redirected pressing Back or Forward buttons on my mouse does not generate X events.

When the buttons are not diverted:

When the buttons are diverted, it works as expected.

Describe the solution you'd like A clear and concise description of what you want to happen. I'd love to be able for applications to see both press and release events on actual press and release of the buttons.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered. I have tried diverting these buttons to a rule that presses XF86_Back and XF86_Forward however some software really doesn't like this and it's cumbersome to add exceptions for all software that does this. Source-based games just don't allow me to bind things to these key codes. Using other keycodes like KP_* has unexpected results in other programs.

Additional context Add any other context or screenshots about the feature request here. This is related to horizontal scroll feature which i really don't need. Logitech on their website claims that this is possible to disable.. I do not currently have a computer with Windows to see if the option set within manufacturer's own software would stay outside of that. For testing I used XInput's test-xi2 functionality watching all events sent to the root window.

pfps commented 8 months ago

Solaar has no way to control or even affect the normal operation of buttons. This looks like a feature of the hardware.

Mm2PL commented 8 months ago

Does Solaar have any functionality so I could divert these buttons to themselves? That would solve my problems, diverting them works as one would expect.

pfps commented 8 months ago

No, this is not possible.