Bluetooth Thinkpad Trackpoint cursor acceleration doesn't reset when not moving
I've had to keep my libinput on 1.6.3-1 because newer versions have a bug on my bluetooth thinkpad trackpoint where it remembers the past acceleration: e.g. if I move the trackpoint left then stop, then move it up, the cursor doesn't just move up, it first slingshots to the left and then goes up.
This only happens with my bluetooth thinkpad keyboard -- the trackpoints built-in to my many thinkpad laptops all work without issue.
product link: https://www.lenovo.com/us/en/accessories-and-monitors/keyboards-and-mice/keyboards/KEYBOARD-US-English/p/0B47189
OS: Debian Testing (but also reproduced on Fedora 28)
Model number: kt-1255
bug repro:
I needed to reord twice because old version of libinput didn't have the libinput record
command.
Strangely, replaying the evemu (sudo evemu-play /dev/input/event28 < trackpoint-repro.evemu
) successfully reproduces the bug, but replaying the yml (sudo libinput replay trackpoint-repro.yml
) does not reproduce the bug
(Summary of steps: so I downgraded libinput, recorded the evemu, replayed and confirmed bug not present, upgraded libinput, restarted, replayed the evemu confirmed the bug, recorded the yml, replayed the yml and was surprised to see the bug not reproducible with the yml.)
$ apt-cache policy libinput10
libinput10:
Installed: 1.6.3-1
Candidate: 1.11.2-1
Version table:
1.11.2-1 500
500 http://ftp.us.debian.org/debian testing/main amd64 Packages
*** 1.6.3-1 500
500 http://ftp.us.debian.org/debian stable/main amd64 Packages
100 /var/lib/dpkg/status
$ udevadm info /sys/class/input/event28
P: /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.3/3-3.3.4/3-3.3.4.4/3-3.3.4.4:1.0/bluetooth/hci0/hci0:11/0005:17EF:6048.000A/input/input28/event28
N: input/event28
E: BACKSPACE=guess
E: DEVNAME=/dev/input/event28
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.3/3-3.3.4/3-3.3.4.4/3-3.3.4.4:1.0/bluetooth/hci0/hci0:11/0005:17EF:6048.000A/input/input28/event28
E: ID_BUS=bluetooth
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_INPUT_MOUSE=1
E: ID_INPUT_POINTINGSTICK=1
E: MAJOR=13
E: MINOR=92
E: SUBSYSTEM=input
E: TAGS=:power-switch:
E: USEC_INITIALIZED=41348494
E: XKBLAYOUT=us
E: XKBMODEL=pc105
$ xinput list-props "pointer:ThinkPad Compact Bluetooth Keyboard with TrackPoint"
Device 'ThinkPad Compact Bluetooth Keyboard with TrackPoint':
Device Enabled (151): 1
Coordinate Transformation Matrix (153): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (304): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (305): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (286): 1.000000
libinput Accel Speed Default (287): 0.000000
libinput Accel Profiles Available (288): 1, 1
libinput Accel Profile Enabled (289): 1, 0
libinput Accel Profile Enabled Default (290): 1, 0
libinput Natural Scrolling Enabled (291): 0
libinput Natural Scrolling Enabled Default (292): 0
libinput Send Events Modes Available (271): 1, 0
libinput Send Events Mode Enabled (272): 0, 0
libinput Send Events Mode Enabled Default (273): 0, 0
libinput Left Handed Enabled (293): 0
libinput Left Handed Enabled Default (294): 0
libinput Scroll Methods Available (295): 0, 0, 1
libinput Scroll Method Enabled (296): 0, 0, 1
libinput Scroll Method Enabled Default (297): 0, 0, 1
libinput Button Scrolling Button (298): 2
libinput Button Scrolling Button Default (299): 2
libinput Middle Emulation Enabled (300): 0
libinput Middle Emulation Enabled Default (301): 0
Device Node (274): "/dev/input/event28"
Device Product ID (275): 6127, 24648
libinput Drag Lock Buttons (302): <no items>
libinput Horizontal Scroll Enabled (303): 1
old version -- bug not present: trackpoint-good
new version -- bug present: you'll see on the corners when I pause and switch direction, for a split second the cursor will move in the old direction of movement.