Thursday, April 3, 2014

Ubuntu/Debian: Mouse buttons and trackpoint scrolling on T440s, X1 Carbon and all other new Thinkpads!

I just got a new Thinkpad T440s and was not very happy with it. No wifi, bad graphics and the touchpad was not working properly after installing Debian Wheezy, the current stable version.
I soon realized: Upgrading to Jessie is necessary to fix these problems. And it did - to a certain degree. Wifi was working (install firmware-iwlwifi), graphics were better, and also touchpad worked - but not as expected!

There are no actual mouse buttons on the new Thinkpad models. WHY would they do that? I hate touch and I hate pressing a whole oversized plate with a very bad haptic feedback which makes cracky noises. #whycopyapple
Further, whenever I pressed the touchpad down, the mouse arrow moved slightly which was really annoying. This is probably the Linux driver's fault, but still...
Most problematic: There is no middle mouse button scrolling any more. I hate moving my whole hand away from the keyboard just to scroll down a little bit. #hatetouchpads Pressing and holding the middle mouse button while just tapping the trackpoint a bit was so convenient!

How to make this a lot better:
Thanks to this post on Launchpad I got most of the problems somehow fixed. No more mouse moving while clicking, middle mouse button scrolling (yay!), you can even disable all the touch if you want.
All you need to do is to get the newest sources of the xserver-xorg-input-evdev driver, copy some files over from the xserver-xorg-input-synaptics sources and patch all of this with some work done by the arch linux guys.

In the end you just need to build the *.deb package and install it on your machine. You don't need to remove the original driver package! Also, don't forget to put the 90-evdev-trackpoint.conf file into /etc/X11/xorg.conf.d/ and reboot!

I already did all of the patching and building, so if you trust me (you can!) just install my packages on Debian Jessie 64bit:
Current (updated 28/01/2015) evdev version in Debian Jessie is 2.9.0, so download: patched_synaptic_amd64_debs_2.9.0.tar.gz
If you still use version 2.8.2 (eg. on Ubuntu), get this: patched_synaptic_am64_debs_2.8.2.tar.gz

PLEASE CHECK your dependencies and version numbers before installing! If the installation fails, you end up without mouse and keyboard input!

> wget http://homepage.univie.ac.at/s.hammer/files/patched_synaptic_amd64_debs_2.9.0.tar.gz
> tar -xzf patched_synaptic_amd64_debs_2.9.0.tar.gz
> sudo dpkg -i xserver-xorg-input-evdev_*
> sudo cp 90-evdev-trackpoint.conf /etc/X11/xorg.conf.d/


Have fun with your new Thinkpad!
PS: If you want me to build a 32bit package for you, please comment below!

18 comments:

  1. Your package fixed my X1C trackpoint buttons on Ubuntu (64-bit). Thanks!

    ReplyDelete
  2. Hi,

    A few questions.

    firstly, which patch applies to evdev and which patch applies to synaptics? I am using gentoo and trying to create an overlay that emerges x11-drivers/xf86-input-synaptics & x11-drivers/xf86-input-evdev with your patches.

    0004-disable-clickpad_guess_clickfingers.patch works for synaptics. I can't get either 0001-implement-trackpoint-wheel-emulation.patch nor 0006-add-synatics-files-into-Makefile.am.patch to work with evdev.

    ReplyDelete
  3. Awesome, thank you!

    ReplyDelete
  4. Kriegst ein Riesensterndal!!!!

    Dickes Danke!

    ReplyDelete
  5. Ooops, this package hosed my system. After the reboot the keyboard did not work. I had to boot into single user mode and reinstall the xserver-xorg-input-evdev package form the official repos to recover.

    I was so hopeful though!

    ReplyDelete
  6. Hey! Thanks for that! It work very good for my system, unfortunately, it seems that Ubuntu loses the configuration after a software update. Do you know anything about that?
    Cheers,
    hias

    ReplyDelete
  7. will you be submitting this to the debian source files?

    ReplyDelete
  8. Great work! Works as expected on Debian 8 aka Jessie.

    Do you see any chance of getting this patch to official debian repositories?

    ReplyDelete
    Replies
    1. After the initial hurray! I have to take part of my words back. The xorg conf synaptics section doesn't work with Jessie.
      I did get it working with synclient:
      synclient MiddleButtonAreaLeft=2900
      synclient MiddleButtonAreaRight=4080
      synclient MiddleButtonAreaTop=0
      synclient MiddleButtonAreaBottom=0

      synclient RightButtonAreaLeft=4081
      synclient RightButtonAreaRight=0
      synclient RightButtonAreaTop=0
      synclient RightButtonAreaBottom=0

      Delete
    2. Hey, I'm running also jessie and now it's working ;)

      Delete
  9. I've tried the 2.8 patch and it didn't work. Got the patched driver loaded, the config file is being used, etc, because I can toggle the trackpad on/off with it, but still lack the middle button scroll.

    ReplyDelete
    Replies
    1. Maybe someone can clarify. I did notice that the middle mouse button scroll isn't working, but if I hold down the left alt key while moving up or down on the trackpoint, it scrolls. The alt key doesn't have this affect on other systems. Could the patch have mistaken the left-alt as the middle trackpoint button?

      Delete
  10. Just tried running "sudo dpkg -i xserver-xorg-input-evdev_*" on Debian Jessie (8.2) and got the following errors (seems like the files are not in Debian format?). Any suggestions?

    dpkg-deb: error: `xserver-xorg-input-evdev_2.9.0-3_amd64.build' is not a debian format archive
    dpkg: error processing archive xserver-xorg-input-evdev_2.9.0-3_amd64.build (--install):
    subprocess dpkg-deb --control returned error exit status 2
    dpkg-deb: error: `xserver-xorg-input-evdev_2.9.0-3_amd64.changes' is not a debian format archive
    dpkg: error processing archive xserver-xorg-input-evdev_2.9.0-3_amd64.changes (--install):
    subprocess dpkg-deb --control returned error exit status 2
    (Reading database ... 101369 files and directories currently installed.)
    Preparing to unpack xserver-xorg-input-evdev_2.9.0-3_amd64.deb ...
    Unpacking xserver-xorg-input-evdev (1:2.9.0-3) over (1:2.9.0-3) ...
    dpkg-deb: error: `xserver-xorg-input-evdev_2.9.0-3.diff.gz' is not a debian format archive
    dpkg: error processing archive xserver-xorg-input-evdev_2.9.0-3.diff.gz (--install):
    subprocess dpkg-deb --control returned error exit status 2
    dpkg-deb: error: `xserver-xorg-input-evdev_2.9.0-3.dsc' is not a debian format archive
    dpkg: error processing archive xserver-xorg-input-evdev_2.9.0-3.dsc (--install):
    subprocess dpkg-deb --control returned error exit status 2
    Setting up xserver-xorg-input-evdev (1:2.9.0-3) ...
    Processing triggers for man-db (2.7.0.2-5) ...
    Errors were encountered while processing:
    xserver-xorg-input-evdev_2.9.0-3_amd64.build
    xserver-xorg-input-evdev_2.9.0-3_amd64.changes
    xserver-xorg-input-evdev_2.9.0-3.diff.gz
    xserver-xorg-input-evdev_2.9.0-3.dsc

    ReplyDelete
    Replies
    1. The glob is expanding to include all non .deb files in the current directory too and dpkg doesn't take them as input files to install - it can only install .deb files. So make that - dpkg -i xserver-xorg-input-evdev*.deb

      Delete
    2. The glob is expanding to include all non .deb files in the current directory too and dpkg doesn't take them as input files to install - it can only install .deb files. So make that - dpkg -i xserver-xorg-input-evdev*.deb

      Delete
  11. I have tried your solution but it did not work on my Thinkpad L440. Could you help me resolve the scrolling issues with my Thinkpad. I am on Ubuntu 14.04.3 LTS.

    ReplyDelete
  12. Wow! It really works for me! I'm using Debian 8.3.0 Jessie in a thinkpad T440p.

    Thank you really much for this post.

    Regards!

    ReplyDelete