4

I have trouble trying to figure out how to configure the Lenovo Thinkpad T440 trackpad ("clickpad") with the Linux OS. I like the way that Windows configured the laptops trackpad, and want to mimic it on Debian.

Here are some specifications:

The OS is Debian 7.7.0 running with Gnome.

I followed part of this guide: http://forums.debian.net/viewtopic.php?f=16&t=111298&p=528725&hilit=t440#p528725

and copied this code inside 50-synapticconf:

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
    Option "TapButton1" "1"
        Option "TapButton 2" "3"
        # uncommenting this should make three finger click the middle button
        # Option "TapButton 3" "2"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
        MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on
# non-synaptics clickpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "60% 0 0 5% 40% 60% 0 5%"
#       To disable the bottom edge area so the buttons only work as buttons,
#       not for movement, set the AreaBottomEdge
        Option "AreaTopEdge" "4%"
EndSection

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

Here's an image: enter image description here

What it currently does with code above: The top left works, but right button doesn't. The bottom left of the touchpad works, and so does the right. Moreover, the middle clicker does not work on the top middle between the red lines. I'm concerned about these buttons because I want to use the trackpoint in conjunction with these three buttons.

What I intend it to do:

|LLLLLL MMMM  RRRRR|
|                  |
|                  |
|                  |
|                  |
|                  |
|LLLLLL      RRRRRR|
  • Welcome. Could you tell us about how you expect the touchpad to behave and describe how it is actually behaving? – JasonAzze Dec 29 '14 at 16:32
  • @engight - that touchpad IS problematic... I have trouble getting it to work right even in Windows at times. I have the exact same model, and for me, in CentOS 6.5 the top right doesn't work. Only the bottom right does. – Stark07 Dec 30 '14 at 5:46
2

On my Thinkpad X240 (same generation, similar if not same annoying clickpad), I call the following shell script in my ~/.Xsession:

#!/bin/sh

# Configure the X240 ClickPad

# 1 finger = left click, 2 finger = right click, 3 finger = middle click
synclient TapButton2=3
synclient TapButton3=2
synclient ClickFinger2=3
synclient ClickFinger3=2

# enable horizontal two-finger scrolling (vertical is enabled by default)
synclient HorizTwoFingerScroll=1
synclient VertTwoFingerScroll=1

# Where does the touch pad end to leave the remainder as real buttons
synclient AreaTopEdge=2000

# Areas must not overlap or it throws BadValue errors
synclient MiddleButtonAreaLeft=3000
synclient MiddleButtonAreaRight=4049
synclient MiddleButtonAreaTop=0
synclient MiddleButtonAreaBottom=2000

synclient RightButtonAreaLeft=4050
synclient RightButtonAreaRight=0
synclient RightButtonAreaTop=0
synclient RightButtonAreaBottom=2000

synclient is part of the Debian package xserver-xorg-input-synaptics.

This script should give you the buttons on the top edge. I don't know if it's also possible to add the lower edge buttons that way, but the mentioning of SecondarySoftButtonAreas in the man page synaptics(4) suggests that. (Unfortunately I could only find that option the synaptics(4) on Debian 8 Jessie, but not on Debian 7 Wheezy. On Jessie, the Thinkpad models T440, T540 and X240 are explicitly mentioned in that context.)

You might need to adjust some of the values in case your clickpad uses different coordinates or you prefer a different button height, etc.

I'm quite sure this way of setting up the clickpad also works with other Thinkpad models from that generation as I initially got a similar script from a friend who has a T540 model.


BTW: Lenovo finally seems to have understood that the …40 generation buttonless clickpads were a bad idea and the next generation of Thinkpads due this spring will have real mouse buttons for the thumbstick again. And I'm really thinking about buying a new Thinkpad from that generation despite my X240 is less than one year old. (IMHO that's the real solution for that issue. ;-)

  • The right place to set Synaptics touchpad options is in /etc/X11/xorg.conf.d/. – Larssend Mar 5 at 1:25
0

There's a special section on wayland/libinput wiki about Lenovo *40 series. A dysfunctional soft button can be a symptom of out-of-range coordinates (as it happens with the E540 series); see here for tuning.

Once coordinate ranges are fixed, a catch-all Xorg conf should work out of the box, f.i.:

$ cat /etc/X11/xorg.conf.d/40-libinput.conf
# Match on all types of devices but tablet devices and joysticks
Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "XkbModel" "thinkpad"
        Option "xkb_layout" "ch"
        Option "xkb_variant" "fr"
        Option "XkbOptions" "ctrl:nocaps,terminate:ctrl_alt_shift_bksp,compose:caps"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

On my E540, that gives 3 buttons on both top and bottom edges.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.