Red Hat Bugzilla – Bug 1026577
Unexpected touchpad behaviour on Lenovo T440
Last modified: 2014-10-14 00:52:41 EDT
Version-Release number of selected component (if applicable):
The touchpad on the T440 behaves differently between Win7 and RHEL:
1. In win7 there is a right-click zone in the bottom ~25% of the right half of the touchpad, all single-touch presses in this zone are interpreted as right clicks, all single-touch presses in any other area are interpreted as a left-click. In el6.5 there is no right click zone and two-finger presses are the only way to right-click.
2. Pressing with an enlarging area, such as a fingertip that enlarges into a fingerprint introduces less cursor movement in Win7. This may be some clever trick, because the default sensitivity and acceleration appear to be very similar, except in this one case.
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.
Vasiliy: please get evemu from http://people.redhat.com/~phuttere/rpms/evemu/ and record the device with evemu-record. Specifically, make a separate recording of everything you want to work in a specific manner describing what you expect the action to do.
Please also supply an xorg.log.
As for the configuration, drop this into /etc/X11/xorg.conf.d/99-clickpad-softbuttons.conf
Identifier "Default clickpad buttons"
Option "ClickPad" "on"
Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
It is the default upstream, but it doesn't apply in RHEL because the kernel doesn't provide the property we need to identify clickpads. So you'll have to set the ClickPad option manually. The 50% value is where the right button should start, change it to 0 to have the bottom 18% a right click, and the other 82% as left-click.
As for number 2: if I read this correctly you want the cursor to move slower on higher finger pressure? or what exactly do you mean here?
workaround, and this could be a file we ship as quirk for t440s. Drop this into /etc/hal/fdi/policy/ and reboot.
<?xml version="1.0" encoding="ISO-8859-1"?>
<match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" contains="t440">
<match key="input.product" contains="Synaptics">
<merge key="input.x11_options.ClickPad" type="string">on</merge>
<merge key="input.x11_options.SoftButtonAreas" type="string">0 0 82% 0 0 0 0 0</merge>
Check your lshal output for the right system.hardware.product and of course
the touchpad if it really has Synaptics in the name and adjust accordingly.
This assigns the bottom 18% to the right button.
(In reply to Peter Hutterer from comment #4)
> Vasiliy: please get evemu from
> http://people.redhat.com/~phuttere/rpms/evemu/ and record the device with
> evemu-record. Specifically, make a separate recording of everything you want
> to work in a specific manner describing what you expect the action to do.
> As for number 2: if I read this correctly you want the cursor to move slower
> on higher finger pressure? or what exactly do you mean here?
I was hoping you would have some ideas - reducing the sensitivity when pressure goes above normal would probably work, as long as normal use doesn't trigger it. I suspect this is what is happening in Win7.
I made recordings of single and multiple "instantaneous" presses (no contact -> press -> no contact) and also multiple moving presses (move -> stop -> press -> repeat) in "pointy" and "flat" variants.
Pointy presses (using your fingertip and pressing with an evenly expanding area ( ◦ -> O ) are always fine and precise, just for reference if needed.
Flat presses (using the pad of your finger and pressing with a downward-expanding area ( ° -> O ) are probably more commonly used, but the cursor moves down by a significant amount.
If you want more samples, or more manageable chunks of data I will provide it ASAP. (Didn't realize evemu-record and X were mutually exclusive for a while.)
Created attachment 832378 [details]
Flat press (single)
Created attachment 832379 [details]
Flat press (multiple with movements between)
Created attachment 832380 [details]
Flat press (multiple)
Created attachment 832381 [details]
Point press (single)
Created attachment 832382 [details]
Point press (multiple with movements between)
Created attachment 832383 [details]
Point press (multiple)
Created attachment 832384 [details]
Created attachment 832900 [details]
Swipe left to right (from beyond the touchpad to beyond the touchpad in case you need edge info)
a set of recordings Vasiliy sent via email
Created attachment 832901 [details]
Swipe top to bottom (from beyond the touchpad to beyond the touchpad in case you need edge info)
Created attachment 832902 [details]
ctual touchpad presses (4 individual -> 4 with moving between -> 4 individual double)
Created attachment 832903 [details]
Just touchpad taps (4 individual -> 4 with moving between -> 4 individual double)
Created attachment 832904 [details]
Vertical down -> vertical up -> horizontal right -> horizontal left
Update of the work to be done here:
Supporting the upper area as software button for the trackstick showed that we need to tackle it in several places in the synaptics Xorg driver.
upstream tracker bug:
Required to make this work with the current stack:
* synaptics needs to support a second software button area (#74543)
* synaptics needs to switch into a mode where it disables motion events to avoid spurious cursor jumps when touching the touchpad while the trackstick is in use (#73158)
* syndaemon needs to monitor the trackstick and switch the touchpad into that mode (#66658)
When the touchpad is switched to the "no movement" mode it should stay there until a touchpad event outside of the software button area. Then toggle back to normal touchpad mode.
Still, we also need to update the kernel to take into account Synaptics "image sensors" (RHBZ #1042514)
The bug has been fixed upstream regarding the Xorg part. So granting devel-ack for this bug.
We still need the kernel to be fixed for the customer seeing improvements.
xorg-x11-drv-synaptics-126.96.36.1991-2.el6 is available in brew
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.