How to configure new Lenovo x240 touchpad on Ubuntu 13.10


, , ,

clickpad-lenovo-x240Recently I got the Lenovo x240 without OS as my new laptop. First thing I did, of course, was to install a Linux distro. I selected Ubuntu 13.10, because I know that Ubuntu and Lenovo are good friends.

Most things (wifi, fn buttons, keyboard backlit, etc.) worked out of the box. Also the new touchpad (or clickpad) was recognized on the first boot, but it was not working properly. The sensitivity was messed up and I could not click without ending up to move the cursor away from where I wanted to click. Also the right click and the center click were not working at all.

Fortunately, on Ubuntu you can configure almost everything about your touchpad. You need to edit the following file: /usr/share/X11/xorg.conf.d/50-synapticconf

Following is my configuration. I share it hoping it can save time and frustration to other persons:

# 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"
	# disable synaptics driver pointer acceleration
        Option "MinSpeed" "1"
        Option "MaxSpeed" "1"
        # tweak the X-server pointer acceleration
        Option "AccelerationProfile" "2"
        Option "AdaptiveDeceleration" "16"
        Option "ConstantDeceleration" "16"
        Option "VelocityScale" "32"
	Option "TapButton1" "1"     # left click with one finger tap
    	Option "TapButton2" "3"     # right click with two finger tap
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
      MatchDevicePath "/dev/input/event*"

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

# 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%"

# 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"

The first part solved the problem with the mouse sensitivity, meanwhile the SoftButtonAreas part activated the center and right click behavior on the top part of the touchpad.

You are free to try this configuration. Let me know if it helped and, please, let me know if you managed to improve it.