On the ThinkPad T14, the TrackPoint does not work so well in Linux. Pointer movement is choppy and is just not smooth overall. When debugged using
libinput debug-events, we can see that the polling rate is only about 30 Hz.
However, there is a workaround.
The trick is to reload the
psmouse module, and force it to use the ImPS/2 protocol.
$ sudo rmmod psmouse
$ sudo modprobe psmouse proto=imps
This works on Ubuntu-based distros. For Fedora, since the psmouse module is actually built into the kernel, the
proto parameter has to be passed on boot, appended to the Linux kernel command line:
In order to apply it on boot, create the file
After applying this workaround, the polling rate goes up to about 80 Hz. However, there are two issues:
- Pointer movement is now too slow
- The TouchPad doesn't work at all
I don't use the TouchPad, so it's not an issue for me. The slow pointer movement can be alleviated somewhat.
In order to speed up the pointer movement, we can use a Coordinate Transformation Matrix:
You can play around with the matrix values, but this works best for me:
xinput set-prop 'PS/2 Synaptics TouchPad' 'Coordinate Transformation Matrix' 3.5 0 0 0 3.5 0 0 0 1
Then, open the XFCE mouse settings and adjust the Acceleration settings. For me,
3.0 gives me the best results.
The numbers above may vary between ThinkPad models, and even between different TrackPoint brands within the same model.
To make it permanent, create the file
MatchProduct "PS/2 Synaptics TouchPad"
Option "TransformationMatrix" "3.5 0 0 0 3.5 0 0 0 1"
On older ThinkPads, setting the
sensitivity via sysfs works. However, it doesn't work on the T14.
The above is just a workaround, and you can even call it a kludge.
The proper fix might be two-fold:
- Fix the psmouse driver to recognize and work around the faulty TrackPoint
- Implement constant scale factor for libinput
- This might be related to the fact that the T450s TrackPoint sometimes stutters