Here is information for configuring the Trackpoint and Touchpad of a Thinkpad T550 in Linux.
List of input devices:
$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Synaptics TM3053-003 id=12 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=13 [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)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=11 [slave keyboard (3)]
Default properties for the Touchpad:
$ xinput list-props 12 Device 'Synaptics TM3053-003': Device Enabled (153): 1 Coordinate Transformation Matrix (155): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (285): 1 Device Accel Constant Deceleration (286): 2.500000 Device Accel Adaptive Deceleration (287): 1.000000 Device Accel Velocity Scaling (288): 12.500000 Synaptics Edges (289): 77, 1863, 57, 1005 Synaptics Finger (290): 25, 30, 0 Synaptics Tap Time (291): 180 Synaptics Tap Move (292): 96 Synaptics Tap Durations (293): 180, 180, 100 Synaptics ClickPad (294): 1 Synaptics Middle Button Timeout (295): 0 Synaptics Two-Finger Pressure (296): 350 Synaptics Two-Finger Width (297): 8 Synaptics Scrolling Distance (298): 44, 44 Synaptics Edge Scrolling (299): 0, 0, 0 Synaptics Two-Finger Scrolling (300): 1, 0 Synaptics Move Speed (301): 1.000000, 1.750000, 0.090457, 0.000000 Synaptics Off (302): 2 Synaptics Locked Drags (303): 0 Synaptics Locked Drags Timeout (304): 5000 Synaptics Tap Action (305): 0, 0, 0, 0, 0, 0, 0 Synaptics Click Action (306): 1, 3, 2 Synaptics Circular Scrolling (307): 0 Synaptics Circular Scrolling Distance (308): 0.100007 Synaptics Circular Scrolling Trigger (309): 0 Synaptics Circular Pad (310): 0 Synaptics Palm Detection (311): 1 Synaptics Palm Dimensions (312): 3, 50 Synaptics Coasting Speed (313): 20.000000, 50.000000 Synaptics Pressure Motion (314): 30, 160 Synaptics Pressure Motion Factor (315): 1.000000, 1.000000 Synaptics Grab Event Device (316): 0 Synaptics Gestures (317): 1 Synaptics Capabilities (318): 1, 0, 0, 1, 1, 1, 0 Synaptics Pad Resolution (319): 20, 20 Synaptics Area (320): 0, 0, 0, 0 Synaptics Soft Button Areas (321): 970, 0, 870, 0, 0, 0, 0, 0 Synaptics Noise Cancellation (322): 11, 11 Device Product ID (277): 1739, 0 Device Node (276): "/dev/input/event4"
My customization script. Note that the option to disable the Touchpad is current set.
$ cat /usr/local/bin/input_setup.sh #!/bin/bash -e # Uncomment to disable this script # exit 0 # TOUCHPAD SECTION # see man synaptics(4) for touchpad # Enable Touchpad # boolean xinput set-prop 12 153 0 # Touchpad finger # 32 bit, 3 values, low, high, press # Low - When finger pressure drops below this value, the driver # counts it as a release. Property: "Synaptics Finger" # High - When finger pressure goes above this value, the driver # counts it as a touch. Property: "Synaptics Finger" xinput set-prop 12 290 54 54 0 # Tap Move # Synaptics Tap Move (292) # Maximum movement of the finger for detecting a tap xinput set-prop 12 292 122 # Increase two-finger pressure (less sensitivity) xinput set-prop 12 296 350 # Two-finger width # Synaptics Two-Finger Width (297) # For touchpads not capable of detecting multiple fingers but are capable # of detecting finger width and pressure # Width threshhold # Works best with PalmDetect off xinput set-prop 12 297 8 # Scrolling speed # Synaptics Scrolling Distance (298) # Vertical/horiz move distance of finger for scroll event xinput set-prop 12 298 -60 -60 # Mouse Click Emulation # Synaptics Tap Action (305) xinput set-prop 12 305 0 0 0 0 1 3 2 # Circular Scrolling # Synaptics Circular Scrolling (307) # boolean xinput set-prop 12 307 1 # Circular scrolling distance (speed?) # Synaptics Circular Scrolling Distance (308) # Move angle (radians) of finger to generate a scroll event xinput set-prop 12 308 0.100007 # Palm rejection # Synaptics Palm Detection (311) # See Two-finger width below # If palm detection should be enabled # boolean xinput set-prop 12 311 1 # Touchpad palm rejection # PalmMinWidth - Minimum finger width at which touch is considered a palm # PalmMinZ - Minimum finger pressure at which touch is considered a palm # width, min z xinput set-prop 12 312 3 50 # Minimum pressure motion # Synaptics Pressure Motion (314) # Finger pressure at which min/max pressure motion factor is applied # min, max xinput set-prop 12 314 55 160 # Tap-and-Drag # Synaptics Gestures (317) # TapAndDragGesture # boolean xinput set-prop 12 317 0 # TRACKPOINT SECTION # see man libinput(4) for Trackpoint # Trackpoint middle-button disable scrolling xinput set-prop 13 330 0 0 0 # Acceleration # libinput Accel Speed (336) # float, range -1 - 1 xinput set-prop 13 336 -0.250000 # Acceleration profile # libinput Accel Profile Enabled (339) # flat, adaptive xinput set-prop 13 339 1 0 # Trackpoint sensitivity echo -n 230 |sudo tee /sys/bus/serio/devices/serio2/sensitivity
Getting the Touchpad to behave properly is especially tricky. It is very difficult to avoid triggering spurious tap and scroll events when typing on the keyboard or using the Trackpoint. These settings are the best I’ve come up with so far.
One other note about circular scrolling: With the Synaptics driver for Windows 10 circular scrolling works very nicely. You can initiate a circular scroll from the edge and then move the finger in a small circle adjacent to the edge for scrolling to work.
However if you do that with this Linux driver the scroll direction will oscillate between up and down directions. To perform a circular scroll with this driver you have to create a circle about 1.5 inches or more wide, the center of which is in the middle of the Touchpad. You have to draw your finger around this large center circle in order to scroll.
Leave a Reply
You must be logged in to post a comment.