10

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!

2

2 Answers 2

9

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.

2
3

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

1
  • 1
    This bug thresd now also contains a solution for 15.04: see posts #64, #76
    – Rasmus
    May 20, 2015 at 19:32

Not the answer you're looking for? Browse other questions tagged .