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.
- 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
- Install xserver-xorg-dev.
sudo apt-get install xserver-xorg-dev
- 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/
- 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
- 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
- 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
- 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…
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.
LikeLike
The spacing and greater than/less than symbols in my config file content were stripped. Please ping me @ wt@penguintechs.org or @w00tSpeaks on twitter if you can’t figure out what’s missing.
LikeLike
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?
LikeLike
Thanks for this.
Is `Option “PalmDetection” “True”` supported here ?
LikeLike
There is no such option.
Palm detection is automatically enabled:
http://wayland.freedesktop.org/libinput/doc/latest/palm_detection.html
LikeLike
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.
LikeLike
PEBKAC, Sorry for the noise. The instructions works fine so far.
LikeLike
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 ?
LikeLike
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
LikeLike
For 15.10 you can use the native packages for a much easier installation.
http://askubuntu.com/a/678122/108825
LikeLike
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?
LikeLike
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.
LikeLike
I’m also getting this error on Xubuntu 14.04 LTS.
LikeLike
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
LikeLike
Hello?
LikeLike
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 !
LikeLike
Minh Ha Duong thank you this tip solves the most annoying problem with this machine
LikeLike
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.
LikeLike
Did anyone actually get this to work?
LikeLike
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 !
LikeLike
Hi Barton, I am guessing it is an honest mistake either by you or your tech team, but the instructions you posted seem to have been taken directly from from this answer: http://askubuntu.com/questions/649103/proper-touchpad-thumb-palm-detection-with-libinput/651008#651008
and you did not attribute the author or link to that answer. Is Pilot6 part of your tech team?
LikeLike
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.
LikeLike
PS I rewrote the intro to reflect Pilot6’s work
LikeLike
Thank you for looking into it, Barton, and for the quick fix!
LikeLike