Alternate Touchpad Configuration for XPS 9343 Developer Edition Running Ubuntu 15.04

Here is information addressing the lack of palm detection with Ubuntu 15.04.  A big shout out to Pilot6 who developed the steps below and shared them with the community on Ask Ubuntu

Some customers have reported frustration with the lack of palm detection due to limitations with the Synaptics driver currently implemented in current stable versions of the Linux Kernel. This walkthrough is intended for advanced users who would like to experiment with the alternate libinput input device driver. This has only been tested to work in the XPS 13 9343 using Ubuntu 15.04 and 15.10 beta.

Note: these steps are not supported by Dell support and you are performing this at your own risk. Compatibility issues could arise and result in your operating system being rendered unable to boot.

  1. Install some needed packages by running the following commands.

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

  1. Install xserver-xorg-dev.

sudo apt-get install xserver-xorg-dev

  1. Clone libinput and xf86-input-libinput.

git clone http://cgit.freedesktop.org/wayland/libinput/

git clone http://cgit.freedesktop.org/xorg/driver/xf86-input-libinput/

  1. Build and install both packages.

cd libinput

./autogen.sh –prefix=/usr

make && sudo make install

cd ../xf86-input-libinput

./autogen.sh –prefix=/usr

make && sudo make install

  1. Now we need to create the config file in /usr/share/X11/xorg.conf.d named 99-libinput.conf using your favorite text editor (the following example will be using gedit).

Sudo gedit /usr/share/X11/xorg.conf.d/99-libinput.conf

  1. Add the following to the blank file you just opened, these options should cause the touchpad to perform similar to an Apple Mac touchpad.

Section “InputClass”

Identifier “libinput”

Driver “libinput”

MatchDevicePath “/dev/input/event*”

MatchIsTouchpad “true”

Option “Tapping” “true”

Option “TappingDragLock” “true”

Option “ClickMethod” “none”

Option “NaturalScrolling” “true”

EndSection

  1. There are many more options available. Not all options are supported, if the option is not supported than the default will be used. In the above example “Natural Scrolling” is set to “true”. If you don’t like natural scrolling just set that option to “false”. Follow the below link for an explanation of the many options that are able to be adjusted in the 99-libinput.conf

https://www.mankier.com/4/libinput

HTH

Pau for now…

Similar Posts

24 Comments

  1. In 15.10, you can just install the xserver-xore-input-libinput package.

    Since most of the options for configuring this driver are not yet exposed through the unity settings for the touchpad, I recommend the following to be added to you /etc/X11/xorg.conf.d/99-libinput.conf:

    Section “InputClass”
    Identifier “libinput”
    Driver “libinput”
    MatchDevicePath “/dev/input/event*”
    MatchIsTouchpad “true”
    Option “Tapping” “true”
    Option “ClickMethod” “clickfinger”
    Option “NaturalScrolling” “true”
    EndSection

    This will enable tap-to-click on the whole surface of the touchpad (thus removing the button regions at the bottom). It will also allow using one, two, and three finger taps (or physical clicks) respectively for left, right, and middle clicks. It will also enable the reverse vertical scrolling direction (like on Macbooks). All of this config will only be applied to touchpads. The device will also default to be disabled while typing, which is good to have on since palm detection is not supported yet.

    With this config, I find the the touchpad far more usable.

  2. On my hardware, using libinput, the option “DisableWhileTyping” is effective on an external keyboard, but not the laptop’s keyboard. Strange. Does anybody has a similar experience?

  3. The configure for xf86-input-libinput fails with error message

    checking for LIBINPUT… no
    configure: error: Package requirements (libinput >= 0.21.0) were not met:

    No package ‘libinput’ found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

    Alternatively, you may set the environment variables LIBINPUT_CFLAGS and LIBINPUT_LIBS to avoid the need to call pkg-config.

  4. I have no idea what a Macbook touchpad behaves like. I don’t want to know at the moment. The configuration file kills the right click ?

  5. Does anyone know how to apply the firmware update for the touchpad (A00) under ubuntu 15.04? Unfortunately my linux skills are somewhat limited and I have spent the last few days trying to figure out how this can be accomplished. Updating the BIOS to A05 was easy enough for me, but I got really stuck with the touchpad.

    Also as a side note it would be nice to know how to find out what the current firmware version of the touchpad is, because I am not entirely sure whether the firmware is in need of updating (I purchased my XPS around May).

    Any help here would be really appreciated.

    Link to A00 Firmware:
    http://downloads.dell.com/FOLDER02883019M/1/9343_Firmware_T792T_WN32_18.1.48_A00.EXE

    1. Hi, i did this, but i don’t think it is working. I enabled palm detection in the conf file and and its the one with the highest value, so it should get selected by the system right?

  6. I’m not on Ubuntu 15.04, but Linux Mint 17.2 (Based on 14.04).

    Building and installing libinput went fine, but with xf86-input-libinput I am running into a problem when building the package:

    > make && sudo make install
    make all-recursive
    make[1]: Entering directory `/home/richard/code/linux/xf86-input-libinput’
    Making all in src
    make[2]: Entering directory `/home/richard/code/linux/xf86-input-libinput/src’
    CC xf86libinput.lo
    xf86libinput.c: In function ‘open_restricted’:
    xf86libinput.c:934:3: error: implicit declaration of function ‘xf86Msg’ [-Werror=implicit-function-declaration]
    xf86Msg(X_ERROR, “Failed to look up path ‘%s’\n”, path);
    ^
    xf86libinput.c:934:3: warning: nested extern declaration of ‘xf86Msg’ [-Wnested-externs]
    cc1: some warnings being treated as errors
    make[2]: *** [xf86libinput.lo] Error 1
    make[2]: Leaving directory `/home/richard/code/linux/xf86-input-libinput/src’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/richard/code/linux/xf86-input-libinput’
    make: *** [all] Error 2

    Any pointers would be appreciated.

    1. Actually, I was able to run make successfully after making a quick hack to xf86libinput.c.

      Edit the file ./xf86-input-libinput/src/xf86libinput.c
      Search for xf86Msg
      Comment the line by inserting //
      Run make again

  7. This is to share a solution to the frustration of the cursor jumping around while you type:
    disable “tap to click”
    Now I can use the keyboard !

      1. Only if you don’t like tap to click, which is honestly the only way I use touchpads. It’s a workaround if you decide to sacrifice functionality. Not a solution.

    1. I compiled it ok, then moved to Ubuntu 15.10 with libinput compiled in.
      The cursor still freezes.
      If the seller had a Satisfaction warranty refund I would have taken it long ago !

    1. Xu, thanks for flagging this. I checked with the team and it turns out that we did leverage a lot of our instructions from Pilot6’s post. I apologize for the lack of attribution and going forward we will make sure this doesn’t happen again.

      Once again, i appreciate you bringing this to my attention.

Leave a Reply