Update March 19 2014: this post is outdated, please read X.Org synaptics support for the Lenovo T440, T540, X240, Helix, Yoga, X1 Carbon instead.
The T440 has a rather unusual touchpad with the buttons painted on top of the touchpad rather than the bottom. In addition, the separate set of buttons for the trackstick have gone the way of the dodo. Moving the software-emulated buttons up on the touchpad is obviously quite important for trackstick users but it throws up a bunch of problems. There are some limitations with the current synaptics X.Org driver: we can only have one region each designated for the right and the middle button. The rest of the touchpad is a left button click. In the case of the T440, the default Windows config has a right button up the top and another one at the bottom of the touchpad. An ASCII-art of that would look like this:
+----------------------------+ | LLLLLLLLLL MMMMM RRRRRRRRR | | | | | | | | | | | | | | LLLLLLLL RRRRRRRR | +----------------------------+We simply can't do that at the moment, best we can is split the touchpad so that the whole right side is a right-click and a strip in the middle that is a middle click. So the best we can do is:
+----------------------------+ | 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 | +----------------------------+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" EndSectionDrop that into /etc/X11/xorg.conf.d/99-t440-synaptics.conf and you're good to go.
The problem is finding a generic solution to this that we can ship in a distribution. That requires a two-step progress. The touchpads look the same as all others, the only differentiator we have is the DMI information on the box. We can't check that in the xorg.conf snippets yet (Daniel Martin is working on a MatchDMI tag, but it won't happen until server 1.16). For now, we need a udev rule to help the xserver.
ACTION!="add|change", GOTO="touchpad_quirks_end" KERNEL!="event*", GOTO="touchpad_quirks_end" ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="touchpad_quirks_end" ATTR{[dmi/id]product_version}=="*T440*", \ ENV{ID_INPUT.tags}="touchpad_softbutton_top" LABEL="touchpad_quirks_end"If our product matches T440, we tag the touchpad, and that tag is something we can match against. Our revised InputClass section now looks like this:
Section "InputClass" Identifier "t440 top buttons" MatchDriver "synaptics" MatchTag "touchpad_softbutton_top" Option "SoftButtonAreas" "60% 0 0 0 40% 60% 0 0" EndSectionI've pushed this configuration into Fedora now (rawhide, F20, F19), let's see what the feedback is. Having the whole right-side of the touchpad work as right button may cause a few issues so this is one change I may have to revert in the future.