So libinput its nearing its first stable release with a release candidate

Which adds proper support for thumb / palm detection on touch pads along with swipe & pinch gesture support something dearly missed in Linux for multi touch capable laptops.

Can anyone provide a good instruction on how to install it on Ubuntu 15.04

As I believe we wont be seeing it as default in a Ubuntu installation for a while.

  • Not much attention for this question. Honestly don't know why. – VRR Jul 18 '15 at 17:43
  • Palm detection depends on kernel touchpad driver and can be setup in xorg-synaptics as well. What touchpad do you have? – Pilot6 Jul 21 '15 at 15:26
  • @Pilot6 the package is available for download, but the readme file does not give specific instructions on how to compile to kernel. – RCF Jul 21 '15 at 15:55
  • @RCF-U15.04 libinput is a user space app. It has nothing to do with kernel. It just uses events reported by kernel. – Pilot6 Jul 21 '15 at 17:55
  • @tomodachi If you want to set up palm detection well in Ubuntu, you can ask another question and I will help you. – Pilot6 Jul 21 '15 at 18:08
up vote 14 down vote accepted
+100

This is how to install libinput to Ubuntu.

  1. Install some needed packages

    sudo apt-get install git build-essential autoconf automake pkg-config libtool
    sudo apt-get install libmtdev1 libmtdev-dev libudev-dev libevdev-dev xutils-dev libwacom-dev
    
  2. Install xserver-xorg-dev. For 14.04.3 it may be xserver-xorg-dev-lts-vivid. Be careful. You need to check what xserver-xorg package is installed.

    sudo apt-get install xserver-xorg-dev
    
  3. Clone libinput and xf86-input-libinput.

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
  4. Build and install.

    cd libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    cd ../xf86-input-libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
  5. Add to file conf/90-libinput.conf string Option "Tapping" "True" before EndSection to the touchpad section.

  6. Copy config file to enable libinput.

    sudo cp conf/90-libinput.conf /usr/share/X11/xorg.conf.d/
    

Log off and log on.

You will see that libinput is used by running xinput list-props <your_touchpad_id>.

If you do not like using libinput, you can always disable it by

sudo rm /usr/share/X11/xorg.conf.d/90-libinput.conf

I just installed it, now I am figuring out how to setup palm detection. It looks like it is enabled by default, but I do not quite understand yet how does it use kernel reported width and pressure.

It looks like currently there are no major advantages of using libinput in Ubuntu.

xf86-input-libinput just wraps it to Xorg and nothing else. So extra gestures are not supported. At least I do not know if they do. Wayland or Mir will be more capable, I guess.

After some testing I found an advantage. There is an issue with xorg-synaptics that when you put a finger on button area, you can't use another finger to move cursor. That is inconvenient for people who like to use hardware buttons for clicking. That problem has been reported many times as a bug.

In libinput there is no this issue at all.

That was a fun to test. Thanks for the question.

  • @Pilot6 What's the point in "extra gestures are not supported"? – VRR Jul 21 '15 at 18:54
  • @VRR The point is that default Ubuntu DE does not support many gestures. Just having libinput does not change it. 1,2,3 finger taps work out of the box. Palm detection is potentially more smart, but it seems that it does not support touchpads reporting only width. New models do non support pressure, because they work as touchscreen, etc. – Pilot6 Jul 21 '15 at 19:00
  • I think I have messed things little bit..during the process..now I am getting the black screen after bootup..but no lightdm login screen..it may be due to xorg..I know the older version number ..can anybody tell me the process what to do now..I can get to tty – hunch Jul 24 '15 at 17:26
  • If you have problems just remove /usr/share/X11/xorg.conf.d/99-libinput.conf. sudo rm /usr/share/X11/xorg.conf.d/99-libinput.conf – Pilot6 Jul 24 '15 at 20:55
  • That is not solving the problem. Can you mention something about the xserver-xorg-dev....where you have also mentioned ..be careful.. How to revert back to older version.. – hunch Jul 25 '15 at 6:04

For Ubuntu 15.10+ you can install libinput (wily, xenial, yakkety) through apt:

sudo apt install xserver-xorg-input-libinput

I did still have to edit the config file to enable tapping, I assume as Unity absorbs libinput it'll expose this via control panel settings (I used vi here, you can use gedit or whatever you like):

Edit the following file (tested on 16.04 2016-4-14 and 16.10 2016-10-14):

sudo vi /usr/share/X11/xorg.conf.d/90-libinput.conf 

Adjust the 'touchpad' section to add Option "tapping" "True" and Option "DisableWhileTyping" "True" if you prefer this behavior:

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

Log out, log in .. enjoy! :)

  • There is no "PalmDetection" option in libinput, DisableWhileTyping is on by default. So there is no need to add all this. – Pilot6 Mar 2 '16 at 19:24
  • Adjusted and removed both options. I left 'Tapping' on because it's not on by default. – JimB Mar 2 '16 at 21:31
  • And also I do not recommend to use libinput for all devices. Keyboard lags in my case, so I picked the touchpad event, in my case event5 and wrote it to that file. – Pilot6 Mar 2 '16 at 21:34
  • @Pilot6 - can you give a few more details about how to use libinput for touchpad only? – BeeOnRope Jun 23 '16 at 22:55
  • 4
    It appears you can also add Option "AccelSpeed" "-0.5", where the value can be a float from -1 (slower cursor) to +1 (faster cursor). You can also experiment with this and other values using xinput. first find the id by running xinput, then if your id is 12, you can do xinput list-props 12 to list all props. if you want to change one, get the int for the prop (e.g. libinput Accel Speed (281): -0.500000), then you can do xinput set-prop 12 281 -0.4 to change the accel to -0.4. – David784 Jul 19 '16 at 16:16

On 16.04 you have to install xserver-xorg-input-libinput-hwe-16.04 instead

Problem installing libinput on 16.04.2

I had a similar problem on Lubuntu 17. I tried installing libinput and editing the .conf file to no avail.

But then I saw @Pilot6 post above about using xinput to verify that libinput is active (would also be nice to know what's the criterion to verify for, but I digress).

I checked my xinput with xinput list-props 14 (could be a different number in your case).

which gave me a synaptics touchpad.

In the list there was an option for palm detection with a number associated to it (316).

So I used xinput set-prop 14 316 1 to activate palm detection. And it finally works.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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