TrackPoint
The TrackPoint is Lenovo's trademark for the pointing-stick in the middle of the keyboard. It is supported by xf86-input-evdev and xf86-input-libinput.
Default Xorg behavior supports click and point. For the evdev
driver middle-click and scrolling requires extra configuration.
Contents
GUI configuration
Install the gpointing-device-settings package.
Middle button scroll
When using xf86-input-libinput, middle-button scrolling is enabled by default.
When using xf86-input-evdev, middle-button scrolling is supported via xinput from the xorg-xinput package. For example:
~/.xinitrc
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 1 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 2 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 200 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5
Xorg configuration
Alternative to an ~/.xinitrc
configuration, you can also create an Xorg#Configuration for the evdev(4) driver. For example, as /etc/X11/xorg.conf.d/20-thinkpad.conf
, replacing TPPS/2 IBM TrackPoint
with the device name from xinput:
Section "InputClass" Identifier "Trackpoint Wheel Emulation" Driver "evdev" MatchProduct "TPPS/2 IBM TrackPoint" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
Sysfs attributes
TrackPoints expose their attributes as files in /sys/devices/platform/i8042/serio1/
. For example, to manually enable the tap-to-click functionality:
# echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select
Configuration at boot
udev rule
This rule increases the trackpoint speed and enables tap to select (see above) on boot.
/etc/udev/rules.d/10-trackpoint.rules
ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/sensitivity}="240", ATTR{device/press_to_select}="1"
systemd.path unit
There have been reports on the forums that the attributes/files under /sys/devices/platform/i8042/serio1/serio2/
appear too late in the boot process for the above (or similar) udev rule(s) to have an effect on them. Instead, a systemd.path unit can be used to configure attributes of the TrackPoint.
First create an executable script named e.g. /usr/local/bin/trackpoint_configuration.sh
that sets the TrackPoint attributes as shown in the #Sysfs attributes section. Then create the following systemd units. Make sure that all attributes modified by the script are listed with PathExists
.
/etc/systemd/system/trackpoint_parameters.path
[Unit] Description=Watch for, and modify, Trackpoint attributes [Path] PathExists=/sys/devices/platform/i8042/serio1/press_to_select [Install] WantedBy=default.target
/etc/systemd/system/trackpoint_parameters.service
[Unit] Description=Set TrackPoint attributes [Service] ExecStart=/usr/local/bin/trackpoint_configuration.sh
Finally, enable and start the trackpoint_parameters.path
systemd unit.
Troubleshooting
Trackpoint is not detected or is detected after X minutes
This appears to be a kernel bug. See: https://bugzilla.kernel.org/show_bug.cgi?id=33292
A workaround is passing proto=bare
to the psmouse
module. However, this disables scrolling with the clickpad and the two-finger middle click:
# modprobe psmouse proto=bare