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

Logi LIFT - missing Persistent Key/Button Mapping option #1986

Closed MindlessDreams closed 1 year ago

MindlessDreams commented 1 year ago

Information

``` 1: LIFT VERTICAL ERGONOMIC MOUSE Device path : None WPID : B031 Codename : LIFT Kind : mouse Protocol : HID++ 4.5 Serial number: B1D05743 Model ID: B03100000000 Unit ID: B1D05743 Bootloader: BL1 56.00.B0008 Firmware: RBM 21.00.B0008 Other: The power switch is located on the (unknown). Supports 32 HID++ 2.0 features: 0: ROOT {0000} V0 1: FEATURE SET {0001} V0 2: DEVICE FW VERSION {0003} V4 Firmware: Bootloader BL1 56.00.B0008 B0317599BD37 Firmware: Firmware RBM 21.00.B0008 B0317599BD37 Firmware: Other Unit ID: B1D05743 Model ID: B03100000000 Transport IDs: {'btleid': 'B031'} 3: DEVICE NAME {0005} V0 Name: LIFT VERTICAL ERGONOMIC MOUSE 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: LIFT 8: UNIFIED BATTERY {1004} V3 Battery: 80%, discharging. 9: REPROG CONTROLS V4 {1B04} V5 Key/Button Actions (saved): {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch} Key/Button Actions : {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch} Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Regular} Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Regular} 10: CHANGE HOST {1814} V1 Change Host : 1:matebook 11: HOSTS INFO {1815} V2 Host 0 (paired): matebook Host 1 (paired): Nikolay’s iPad Host 2 (paired): matebook 12: XY STATS {2250} V1 13: LOWRES WHEEL {2130} V0 Wheel Reports: HID Scroll Wheel Diversion (saved): False Scroll Wheel Diversion : False 14: ADJUSTABLE DPI {2201} V2 Sensitivity (DPI) (saved): 2000 Sensitivity (DPI) : 2000 15: DFUCONTROL {00C3} V0 16: DEVICE RESET {1802} V0 internal, hidden, unknown:000010 17: unknown:1803 {1803} V0 internal, hidden, unknown:000010 18: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010 19: unknown:1816 {1816} V0 internal, hidden, unknown:000010 20: OOBSTATE {1805} V0 internal, hidden 21: unknown:1830 {1830} V0 internal, hidden, unknown:000010 22: unknown:1891 {1891} V7 internal, hidden, unknown:000008 23: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010 24: unknown:1E00 {1E00} V0 hidden 25: unknown:1E02 {1E02} V0 internal, hidden 26: unknown:1E22 {1E22} V1 internal, hidden, unknown:000010 27: unknown:1602 {1602} V0 28: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010 29: unknown:1861 {1861} V1 internal, hidden, unknown:000010 30: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010 31: unknown:920A {920A} V0 internal, hidden, unknown:000010 Has 7 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: default 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: default 5: DPI Switch , default: DPI Switch => DPI Switch mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3 reporting: default 6: 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: 80%, discharging. ```

Hello, thank you for the great product! I just got a new Logi LIFT mouse and I hope I can reprogram the buttons. My previous M590 had a dropdown menue to choose from options for each button. The Lift is missing this menu. The report states that the buttons are programmable... My question is - is there anything I can do to get the menu there for the LIFT and if not - is it possible to reprogram the buttons somehow - via the terminal for example - to have Ctrl+C on the Forward button? Thank you!

Screenshot from 2023-02-09 10-53-21 Screenshot from 2023-02-09 10-52-55

pfps commented 1 year ago

The reprogramming (or mapping) of buttons on devices is different for just about every device. To add to that there are two reprogramming methods - one persistent and one ephemeral (that resets every time the device goes into a power saving mode).. The Key/Button Actions is for limited ephemeral reprogramming; the Persistent Key/Button Mapping is for persistent reprogramming. The M590 has both but the LIFT (like most newer devices) has only ephemeral reprogramming. I expect that this is a cost-saving measure as the persistent reprogramming needs some sort of persistent memory on the device.

So the net result is that the LIFT does not have the ability to persistently reprogram buttons.

MindlessDreams commented 1 year ago

Thank you for your response. Is there a tutorial how to do the ephemeral reprogramming? Would it be reloaded when the Solaar is running?

pfps commented 1 year ago

While Solaar is running it pushes changes to devices when they reconnect after being turned off or going into power-saving mode or for any other reason. So Solaar does ensure that Key/Button Actions changes continue just like any other ephemeral change to device settings.

MindlessDreams commented 1 year ago

Thank you, is there a tutorial how to do the ephemeral reprogramming? I suppose this is done via the Rule Editor? Any tutorial for it available? I could not find any. Thank you!

pfps commented 1 year ago

Use the Key/Button Actions setting. Ephemeral reprogramming, however, is very limited. In most cases all you can do is switch one Key/Button for another. So having a button generate control-C is not possible.

You could divert a button and use a rule to generate a different input using rules. Be warned that there will be some lag when using this method. There isn't much tutorial information on rules - you are mostly on your own. But what you probably want is a rule with a Key condition on the Forward Button (probably also for Key up) and a Key press action with Control_L and C as the two keys.

MindlessDreams commented 1 year ago

Ok, thank you.