Wednesday, April 30, 2014

T440 touchpads, the story continues

I've just updated the post about X.Org synaptics support for the Lenovo T440, T540, X240, Helix, Yoga, X1 Carbon. For those following my blog, here is a rough diff of the updates:

  • All touchpads in this series need a kernel quirk to fix the min/max ranges. It's like a happy meal toy, make sure you collect them all.
  • A new kernel evdev input prop INPUT_PROP_TOPBUTTONPAD is available in 3.15. It marks the devices that require top software buttons. It will be backported to stable.
  • A new option was added HasSecondarySoftButtons was added to the synaptics driver. It is automatically set if INPUT_PROP_TOPBUTTONPAD is set and if set, the driver parses the SecondarySoftButtonAreas option and honours the values in it.
  • If you have the kernel min/max fixes and the new property, don't bother with DMI matching. Provide a xorg.conf.d snippet that unconditionally merges the SecondarySoftButtonAreas and rely on the driver for parsing it when appropriate


Matt Horan said...
This comment has been removed by the author.
Daniel said...

Hi Peter
I was wondering if you have any ballpark estimate when the synaptics 1.8 will be released.
As a newbie to Ubuntu/Linux I'm having a lot of trouble getting my clickpad to work properly on a T440s.
Thanks in advance!

Unknown said...

Hi Peter,

First, awesome job on the synaptics dirver. You and the other authors have completed a tremendous body of work. I'm making the transition from an X201 Thinkpad with trackpoint & buttons to a W540 with the clickpad. This is taking some getting used to and reading the documentation plus suggestions has been essential. One question and comment.

Question: Has anyone figured a way to duplicate scrolling using the middle button? This is the feature where you hold the middle button depressed and simultaneously flex the trackpoint to accomplish scrolling. Tips appreciated.

Comment: I performed a little experiement using evemu-record. Starting in the upper left corner and moving clockwise around the pad, I noticed a few interesting things. First, the origin is in the upper left corner. Second, the y-axis seems to run horizontally across the clickpad and x-axis runs down the side. Third, evemu reports minimums and maximums for x (1472, 5112) and y (1408, 3834) though I measured approximately (2260, 4800) and (1220, 4930). The mistmatch makes me think I'm making a late-day mistake.

Anyway, appreciate any forthcoming insight on scrolling. Really apprecite the effort! Though this is neither bug nor design decsion, I'm happy to post elsewhere if preferred.


Peter Hutterer said...

Rob: is the bug for the wheel emulation - short answer: not happening anytime soon is the W540 bug, the kernel fix should announce 1024, 5112, 2024, 4832 as ranges.

Unknown said...

Roger. Should have searched bugzilla... thanks for feedback!

Ramiro said...

Hi Peter,

I have a ThinkPad E440. Just like all the Haswell Lenovos laptops, it has one of these no-physical buttons trackpads.

Configuring the SoftButtonAreas and the new 1.8 synaptics Xorg driver HasSecondarySoftButtons / SecondarySoftButtonAreas feature is proving challenging, be it using percent values or absolute ones to define the button limits.

The ID of the trackpad is "LEN2006" which is already in the list provided by Synaptics so the INPUT_PROP_TOPBUTTONPAD bit should be taken care of.

What I' trying to find are the values that need to be set as the real ones in the min_max_pnpid_table min/max resolution quirks for it.

In other words, which technique does one use to get the real hardware values? How were the values for the Helix, X240, 440s, etc. were obtained?

Once I get these values, I intend to submit a patch for this.

Peter Hutterer said...

Ramiro: look at this bug for a good example:

Unknown said...


I am usin ThinkPad S440 with Debian Jessie + KDE. With synaptics 1.8.0 touchpad has buttons on bottom of the touchpad and works ok. Is there any easy way of turning this upside down so the buttons would be on top.
I have tried couple of tricks but none of them seemed to work.
I could always wait for 3.15 kernel to be released on debian.

Unknown said...

Thanks for your work, at last I found a solution that I'm happy with

Switch to a touchpad with physical buttons :), Found on eBay