Trackpoint and Clickpad: enable buttons and scroll (Lenovo T440s) [closed]
I just got a Lenovo T440s which is equiped with synaptics touchpad. By default there's no middle button and right button is at right bottom corner of touchpad. I'm used to the combination of trackpointer+left/middle/right buttons and I REALLY miss that on my new model. It generates some noise every time I press the button, since the button is also a part of touchpad.
What I did so far is:
- increase Hysteresis of touchpad to a very high value, which literally disabled navigation
- Enable Clickpad mode, which provides functions of middle/right button
- Define middle/right button area as expected on touchpad
But the problem is that middle button is not mapped to trackpointer. They seem to be two independent devices on this model. I'm wondering how I can connect the event triggered by middle button to the wheel emulation button of trackpointer.
Here's the output of my xinput properties: Xinput list:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [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)]
↳ Integrated Camera id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]
SynPS/2 Synaptics Touchpad:
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (133): 1
Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (256): 1
Device Accel Constant Deceleration (257): 2.500000
Device Accel Adaptive Deceleration (258): 1.000000
Device Accel Velocity Scaling (259): 12.500000
Synaptics Edges (260): 1726, 4858, 1577, 3665
Synaptics Finger (261): 25, 30, 256
Synaptics Tap Time (262): 180
Synaptics Tap Move (263): 192
Synaptics Tap Durations (264): 180, 180, 100
Synaptics ClickPad (265): 1
Synaptics Tap FastTap (266): 0
Synaptics Middle Button Timeout (267): 0
Synaptics Two-Finger Pressure (268): 282
Synaptics Two-Finger Width (269): 7
Synaptics Scrolling Distance (270): 87, 87
Synaptics Edge Scrolling (271): 0, 0, 0
Synaptics Two-Finger Scrolling (272): 1, 1
Synaptics Move Speed (273): 1.000000, 1.750000, 0.045725, 40.000000
Synaptics Edge Motion Pressure (274): 30, 160
Synaptics Edge Motion Speed (275): 1, 349
Synaptics Edge Motion Always (276): 0
Synaptics Off (277): 2
Synaptics Locked Drags (278): 0
Synaptics Locked Drags Timeout (279): 5000
Synaptics Tap Action (280): 0, 0, 0, 0, 0, 0, 0
Synaptics Click Action (281): 1, 3, 0
Synaptics Circular Scrolling (282): 0
Synaptics Circular Scrolling Distance (283): 0.100000
Synaptics Circular Scrolling Trigger (284): 0
Synaptics Circular Pad (285): 0
Synaptics Palm Detection (286): 0
Synaptics Palm Dimensions (287): 10, 200
Synaptics Coasting Speed (288): 20.000000, 50.000000
Synaptics Pressure Motion (289): ... of unknown type CARDINAL
Synaptics Pressure Motion Factor (290): 1.000000, 1.000000
Synaptics Resolution Detect (291): 1
Synaptics Grab Event Device (292): 1
Synaptics Gestures (293): 1
Synaptics Capabilities (294): 1, 0, 0, 1, 1, 1, 1
Synaptics Pad Resolution (295): 42, 42
Synaptics Area (296): 0, 0, 0, 0
Synaptics Soft Button Areas (297): 3656, 0, 1000, 0, 2600, 3619, 1000, 3000
Synaptics Noise Cancellation (298): 500, 500
Device Product ID (250): 2, 7
Device Node (251): "/dev/input/event5"
Xinput list-props 11:
Device 'TPPS/2 IBM TrackPoint':
Device Enabled (133): 1
Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (256): 0
Device Accel Constant Deceleration (257): 1.000000
Device Accel Adaptive Deceleration (258): 1.000000
Device Accel Velocity Scaling (259): 10.000000
Device Product ID (250): 2, 10
Device Node (251): "/dev/input/event6"
Evdev Axis Inversion (300): 0, 0
Evdev Axes Swap (302): 0
Axis Labels (303): "Rel X" (143), "Rel Y" (144)
Button Labels (304): "Button Left" (136), "Button Middle" (137), "Button Right" (138), "Button Wheel Up" (139), "Button Wheel Down" (140), "Button Horiz Wheel Left" (141), "Button Horiz Wheel Right" (142)
Evdev Middle Button Emulation (305): 0
Evdev Middle Button Timeout (306): 50
Evdev Third Button Emulation (307): 0
Evdev Third Button Emulation Timeout (308): 1000
Evdev Third Button Emulation Button (309): 3
Evdev Third Button Emulation Threshold (310): 20
Evdev Wheel Emulation (311): 1
Evdev Wheel Emulation Axes (312): 6, 7, 4, 5
Evdev Wheel Emulation Inertia (313): 10
Evdev Wheel Emulation Timeout (314): 200
Evdev Wheel Emulation Button (315): 2
Evdev Drag Lock Buttons (316): 0
I googled around and checked lots of threads and failed to find a proper solution. But when I use windows 8.1 on this model and install synaptics touchpad driver, it's working perfectly. So another proposal is to port that driver to linux.
Any help would be appreciated thanks in advance!
Solution 1:
Update on progress: http://who-t.blogspot.de/2014/03/xorg-synaptics-support-for-lenovo-t440.html
[...] this time the support is real, or at least close to being finished. [...] I forgot to mention: synaptics 1.8 will have all these [...]
Update 2: Post above got updated, diff: http://who-t.blogspot.de/2014/04/t440-touchpads-story-continues.html
Update 3: Enabling middleclick scrolling in Ubuntu for Lenovo clickpads by Björn Tillenius
Update 4: Explanation why the new generation with revived physical buttons may be as broken as the previous generation with non-physical buttons
If I did understand you correctly, then this post by Peter Hutterer might be of help to you. T440 trackpoint buttons support seems to be a work in progress and is currently more kind of a workaround.
He illustrates with ASCII-art that they can't configure the touchpad like on Windows:
+----------------------------+
| LLLLLLLLLL MMMMM RRRRRRRRR |
| |
| |
| |
| |
| |
| |
| LLLLLLLL RRRRRRRR |
+----------------------------+
and have to configure the touchpad buttons rather like this:
+----------------------------+
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
+----------------------------+
Statement and current workaround:
I'm working on a solution for the proper config, but for now you'll have to be content with this.
The easiest approach for local configuration is a new InputClass section in the form:
Section "InputClass" Identifier "t440 top buttons" MatchDriver "synaptics" # right btn|middle btn Option "SoftButtonAreas" "60% 0 0 0 40% 60% 0 0" EndSection
Drop that into
/etc/X11/xorg.conf.d/99-t440-synaptics.conf
and you're good to go.
Solution 2:
You are not alone, you can check this link and sign up to say that you are also affected by this bug.
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/1246683?comments=all