I know this topic will potentially never end because Lenovo never was able to standardize their Trackpoint behaviour and interfaces towards Linux, Win, MacOS and any other system in the universe. Even not on some of their own devices the Trackpoint works correctly, when you use Windows.
A 62 bUSD company with 77000 employees is not able to standardize their HID’s. And on top of that the Linux community needs to fix the drawbacks of their chaos by taking over their shitty event driven trackpoint scrolling and middle click implementation to put it into the Linux kernel. And yes I know since 5.19 the problem should be solved. But it seems like it is not solved.
The problem:
I have a Lenovo Thinkpad Trackpoint Keybord II, that I’m using with its USB dongle which is part of the product.
I’m running the latest Manjaro Gnome version. (Kernel 6.6.3-1, Gnome 45.1).
Middle Button Scrolling with the Trackpoint:
Intended functionality:
While starting to move the Trackpoint, you press the middle button and then the scrolling happens.
When releasing the middle button, scrolling ends and you can use the Trackpoint as a mouse again.
Actual functionality:
Starting the scroll behaviour works fine and the page/screen gets scrolled. When releasing the middle button to stop scrolling, a middle click event happens.
→ This leads to unintended pasting of text via middle button.
Same behaviour under Linux-Kernel 6.5.
But correct behaviour under Windows.
This Keyboard behaved 2 weeks back as intended and had no problems.
Unfortunately on my second PC (running Windows) I have installed the Trackpoint Software (dont as me why I did that) and now it seems like this installation has updated or triggered something in the Firmware of the Keyboard. And now it only works correctly under Windows but not under Linux.
Any ideas?
At least the scrolling seems to work correctly, but on Linux side the event of releasing the middle button during/after scroll is interpreted as an additional middle button click, although it should be ignored.
Output from libinput debug-events
when moving the Trackpoint, then pressing down the middle button (and therefore scrolling) and then releasing the middle button and further moving the trackpoint:
event20 POINTER_MOTION +99.180s -0.62/ 0.00 ( -1.00/ +0.00)
event20 POINTER_MOTION +99.188s -1.00/ 0.00 ( -1.00/ +0.00)
event20 POINTER_MOTION +99.252s -0.39/ 0.00 ( -1.00/ +0.00)
event20 POINTER_MOTION +99.316s -0.39/ 0.00 ( -1.00/ +0.00)
event20 POINTER_MOTION +99.332s 0.00/ 0.73 ( +0.00/ +1.00)
event20 POINTER_MOTION +99.376s 0.00/ 0.43 ( +0.00/ +1.00)
event20 POINTER_SCROLL_WHEEL +99.612s vert 15.00/120.0* horiz 0.00/0.0 (wheel)
event20 POINTER_SCROLL_WHEEL +99.860s vert 15.00/120.0* horiz 0.00/0.0 (wheel)
event20 POINTER_SCROLL_WHEEL +100.132s vert 15.00/120.0* horiz 0.00/0.0 (wheel)
event20 POINTER_SCROLL_WHEEL +100.712s vert 0.00/0.0 horiz 15.00/120.0* (wheel)
event20 POINTER_SCROLL_WHEEL +100.805s vert 15.00/120.0* horiz 0.00/0.0 (wheel)
event20 POINTER_BUTTON +99.396s BTN_MIDDLE (274) pressed, seat count: 1
event20 POINTER_BUTTON +102.805s BTN_MIDDLE (274) released, seat count: 0
---This is text that was marked before and is now pasted when releasing the middle button. It is not part of the debug output---
event20 POINTER_MOTION +104.029s 0.00/ -0.30 ( +0.00/ -1.00)
event20 POINTER_MOTION +104.046s 0.69/ 0.00 ( +1.00/ +0.00)
event20 POINTER_MOTION +104.061s 0.76/ 0.00 ( +1.00/ +0.00)
event20 POINTER_MOTION +104.073s 0.87/ 0.00 ( +1.00/ +0.00)
event20 POINTER_MOTION +104.093s 0.78/ 0.78 ( +1.00/ +1.00)
event20 POINTER_MOTION +104.109s 0.92/ 0.92 ( +1.00/ +1.00)
event20 POINTER_MOTION +104.125s 0.00/ 0.72 ( +0.00/ +1.00)
event20 POINTER_MOTION +104.141s 0.00/ 0.71 ( +0.00/ +1.00)
Looks like that the event of pressing the middle button is registered too late, after the scrolling and just before the release event.