What is the best way to configure a Thinkpad's TrackPoint?
Solution 1
Unfortunately there seems to be no easy way. What I will describe is how to create a new Upstart job to set the values on boot through the virtual filesystem under /sys.
-
Find the device path of your trackpoint
Run the following in a gnome-terminal (press Alt + F2, type
gnome-terminal
, and hit Enter):find /sys/devices/platform/i8042 -name name | xargs grep -Fl TrackPoint | sed 's/\/input\/input[0-9]*\/name$//'
In my case this returns
/sys/devices/platform/i8042/serio1/serio2
- change to whatever it returns for you in the following steps. -
Find values for sensitivity and speed
Run the following commands in a gnome-terminal:
echo 220 | sudo tee /sys/devices/platform/i8042/serio1/serio2/sensitivity
for a sensitivity of 220 (this will ask you for your password), and
echo 100 | sudo tee /sys/devices/platform/i8042/serio1/serio2/speed
for a speed of 100. Once you found values you are comfortable with, make the change permanent using an Upstart job:
-
Create a new udev rule
Now we need to apply the settings during the system start. Therefore, press Alt + F2, type
gksu gedit /etc/udev/rules.d/trackpoint.rules
, and hit Enter (this will ask you for your password). Then paste the following:SUBSYSTEM=="serio", DRIVERS=="psmouse", WAIT_FOR="/sys/devices/platform/i8042/serio1/serio2/sensitivity", ATTR{sensitivity}="220", ATTR{speed}="110"
(Update) As
WAIT_FOR
is deprecated, on newer systems you can useDEVPATH
instead:SUBSYSTEM=="serio", DRIVERS=="psmouse", DEVPATH=="/sys/devices/platform/i8042/serio1/serio2", ATTR{sensitivity}="220", ATTR{speed}="110"
Save the file and either reboot or run the commands above:
sudo udevadm control --reload-rules sudo udevadm trigger
Solution 2
SO, WHAT HELPED ME TO MAKE TRACKPOINT MORE SENSITIVE.
1. The easies way is to do in terminal:
$ xinput --list --short
You will see something like this:
omicron@omicron:~$ xinput --list --short
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint id=10. [slave pointer (2)]
⎜ ↳ ImPS/2 Generic Wheel Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint id=9 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=11 [slave keyboard (3)]
2. Find your trackpoint device. In my case it is id=10.
3. Then do in terminal:
$ xinput --set-prop "10" "Device Accel Constant Deceleration" 0.5
"10" here is the device ID (Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint id=10), put yours ID here, and "0.5" is the level of sensitivity. You can experiment with the sensitivity by putting numbers larger than 0 up to 1000. But you definetily don't need it. The smaller number the higher the speed.
I use 0.4 or 0.45
4. IMPORTANT. When the speed is chosen, copy your last script to autostart.
P.S. If the settings stopped working one day, check the ID again. There may be some changes to your devices table, and the ID may shift.
Hope it will help you.
Enjoy your ThinkPad!
Solution 3
For my Thinkpad T530, and Ubuntu 15.10. Just use:
sudo -i gedit /etc/udev/rules.d/10-trackpoint.rules
and then add the following content on, then restart. The setting value will be kept.
ACTION=="add",
SUBSYSTEM=="input",
ATTR{name}=="TPPS/2 IBM TrackPoint",
ATTR{device/sensitivity}="190",
ATTR{device/speed}="180",
ATTR{device/inertia}="6",
ATTR{device/press_to_select}="0"
Solution 4
This is based on Vitaly Dubyna's answer, but updated to work for recent (2019) Thinkpads and Xorg versions (thanks to the comments to that answer).
From the command line, enter this command (only the part after the $):
$ xinput | grep -i trackpoint
TPPS/2 Elan TrackPoint id=12
Note id=12 (may be different on your system).
$ xinput --list-props 12
...
libinput Accel Speed (300): 0.000000
libinput Accel Speed Default (301): 0.000000
...
Experiment with the speed setting; negative values allowed. For example,
$ xinput --set-prop 12 'libinput Accel Speed' -0.25
Once you're satisfied, add the command as a startup application (typically under Start menu > Preferences > Startup applications).
The above setting name is confirmed for Thinkpad models X1c5 (Ubuntu 18.04), E480 (18.04), and E490 (Mint 19.1).
Note: the numbering (id=12) may get shuffled if you have an external keyboard or mouse plugged in. For more robustness, try this:
xinput --set-prop $(xinput | perl -ne 'if(/TrackPoint.*id=(\d+)/) { print $1; }') 'libinput Accel Speed' -0.25
Solution 5
@vitaly-dubyna has the right answer. On debian his method works flawlessly.
To make your life easier, put a file .xsessionrc
in your home directory with all the settings so that it will be loaded after each restart.
make a new file use vim
, pico
, gedit
--
vim .xsessionrc
then stick this inside
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" 7 6 4 5
xinput set-prop "TPPS/2 IBM TrackPoint" "Device Accel Constant Deceleration" 0.4
where the first 4 lines is to setup vertical and horizontal scrolling with trackpoint and the last line is to control the speed / and sensitivity.
Note that because the device ID can change depending on whether some input devices are enabled / disabled in BIOS, it is preferable to use the device name in quotes. For most thinkpads TPPS/2 IBM TrackPoint
is the reference.
**EDIT:**Nov 2015
#get the device ID for the trackpad. We know it contains the string "TPPS"
ibm_trackpad_id=$(xinput | grep 'TPPS' | cut -d"=" -f2 | cut -f1)
echo $ibm_trackpad_id > ~/temp/ibm_trackpad_id
#set desired params for trackpoint
xinput set-prop $ibm_trackpad_id "Evdev Wheel Emulation" 1
xinput set-prop $ibm_trackpad_id "Evdev Wheel Emulation Button" 2
xinput set-prop $ibm_trackpad_id "Evdev Wheel Emulation Timeout" 200
xinput set-prop $ibm_trackpad_id "Evdev Wheel Emulation Axes" 7 6 5 4
xinput set-prop $ibm_trackpad_id "Device Accel Constant Deceleration" 0.15
# get wireless mouse device ID
logitech_mouse_id=$(xinput | grep "Logitech" | cut -d"=" -f2 | cut -f1)
echo $logitech_mouse_id > ~/temp/logitech_mouse_id
# this is device dependent. Map the buttons on your mouse the functionality you want.
xinput set-button-map $logitech_mouse_id 1 2 3 4 5 6 7 9 8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# set props for external mouse
xinput set-prop $logitech_mouse_id "Device Accel Constant Deceleration" 1.7
xinput set-prop $logitech_mouse_id "Device Accel Adaptive Deceleration" 2
xinput set-prop $logitech_mouse_id "Evdev Wheel Emulation" 1
xinput set-prop $logitech_mouse_id "Evdev Wheel Emulation Axes" 7 6 5 4
xinput set-prop $logitech_mouse_id "Evdev Wheel Emulation Button" 8
Related videos on Youtube
Mindwin
Updated on September 18, 2022Comments
-
Mindwin over 1 year
The previously useful ThinkWiki pages appear quite outdated. I am trying to permanently change my TrackPoint sensitivity and speed settings and enable middle mouse button scrolling. I have tried configure-trackpoint in the past, but the settings were not saved permanently (they are lost after restart).
I have tried
gpointing-device-settings
. Using it, I can get middle mouse button scrolling to work, but I cannot change the speed or sensitivity settings of the trackpoint. All methods on the ThinkWiki page that I've tried do not work as directed in Ubuntu 11.04. Can someone explain how to permanently edit the TrackPoint settings so that I can use it correctly? -
Mindwin about 13 yearsThere are no options for sensitivity or speed with gpointing-device-settings.
-
Mindwin about 13 yearsThanks for the very detailed reply. So I did some more digging and tweaking from the ThinkWiki articles last night, and I discovered something else that worked. First two steps should be the same. Instead of an Upstart job, I used udev rules. I created a file by pressing Alt+F2, typing
gksu gedit /etc/udev/rules.d/trackpoint.rules
and pasted the following:SUBSYSTEM=="serio", DRIVERS=="psmouse", WAIT_FOR="/sys/devices/platform/i8042/serio1/serio2/sensitivity", ATTR{sensitivity}="200", ATTR{speed}="150"
Then reboot. Is there any reason I should use Upstart vs udev rules? -
htorque about 12 yearsIMO the udev approach is the better one, thanks! Edited that into the answer. :-)
-
tanius about 9 yearsYour
"Evdev Wheel Emulation Axes"
setting uses natural scrolling horizontally, normal scrolling vertically. I guess most want all-natural scrolling (use7 6 5 4
) or all-normal scrolling (use6 7 4 5
). -
baldr almost 7 yearsNOTE: use
DEVPATH=="
(two equals), otherwise it wont work. Cannot edit the post with just one char change, so just left a comment.. -
MakisH over 6 yearsThe udev rule doesn't seem to work in Ubuntu 16.04. See the later answers for other approaches (e.g. the one from Nguyen Thanh Tung).
-
tanius over 6 yearsAs of Ubuntu 17.10, the
evdev
driver that this solution relies on is no longer installed by default. You can still install it withsudo apt install xserver-xorg-input-evdev
or use the now-defaultlibinput
driver instead. In which case, the answer by @htorque is the way to configure speed and sensitivity. -
Soupy about 6 yearsThis works even when the files needed in the other answers (serio1/sensitivity) do not exist
-
JamesBB almost 6 yearsUnfortunately I get:
property 'Device Accel Constant Deceleration' doesn't exist, you need to specify its type and format
Not sure how to do that... any suggestions? (Thinkpad T420, Ubuntu 18.04) -
JamesBB almost 6 yearsThis seems to have worked for me. :) (ThinkpadT420, Ubuntu18.04). Just need to play with the settings, a bit tedious having to restart each time, but I can live with that.
-
CameronNemo almost 6 years@JamesBB running
udevadm trigger --action add --subsystem all
will make udev apply the rules to all the present devices. -
sxc731 over 5 yearsI think you're restricted to the properties shown by
xinput list-props $device_id
(wheredevice_id
= 10 in the above example). For example, on my Thinkpad X1c5 running 18.04, I have a property calledlibinput Accel Speed
that seems tweakable -
sxc731 over 5 yearsBTW, changing the Trackpoint rubber cap might also help. Mine was hopelessly hard (to the point my finger was hurting) and after thoroughly wearing it out (within only 18 months, which never happened on many previous ThinkPads) I decided to invest ca $15 in replacements caps (Lenovo part no 4XH0L55146, comes with 10 of those). The outcome is amazing: my Trackpoint has gone from being way too hard to actually being too sensitive. The setting that works for me now (X1c5 with
TPPS/2 ALPS TrackPoint
on 18.04) is"libinput Accel Speed" -1.0
(being the min acceleration setting). YMMV of course -
Savitoj Cheema over 5 yearsI have thinkpad E480 and Ubuntu 18.04 and
xinput --set-prop "12" "libinput Accel Speed" -0.5
command worked -
JamesBB over 5 years@CameronNemo - will try that, thanks! Seems to need
--subsystem-match all
, but I think that's working. -
xji about 5 yearsThe most upvoted answer stopped working after the most recent system update for some reason (Arch/Manjaro). This worked for me. Thanks.
-
michcio1234 about 4 yearsIn my case the TrackPoint was too sensitive (ThinkPad X1 Carbon 6th). I had to change
libinput Accel Profile Enabled
to0, 1
(by default it was1, 0
). The difference is huge. -
Levi H almost 3 yearsIs there anyway to make it more sensitive? Mine was on 200 and 255 is nowhere near enough....