Dell XPS 15 9550 Arch Linux Trackpad Multitouch Clicks and Gestures with libinput (and i3-wm)
EDIT (1/24/2017): I’ve switched to Wayland and sway on my 9550, but I still use
libinput-gestures for trackpad gestures. However, my
libinput-gestures config has changed slightly to accomodate
sway. You can see the always-up-to-date version here!
By cobbling together a few different pieces and projects, we are able to get some basic gestures working on the Dell XPS 15 9550 trackpad, including:
- 2-finger vertical and horizontal scrolling
- 2- and 3-finger clicking
- 3- and 4- finger swiping
In this post we will cover the steps necessary to enable these gestures on the trackpad. We will then cover some information about configuring hooks/scripts to get the gestures to actually do useful things in the i3 window manager, like changing workspaces and whatnot. Those instructions can be adopted to most any window manager/desktop environment. It is assumed that the reader is running an up-to-date Arch Linux installation with the X display server, but these instructions will probably be relatively easily adaptable to other Linux distributions as well.
Install the requisite software from the Arch respositories if it is not already (I believe these were installed by default on my Arch system, but this may not be the case for yours):
If you did not already have these packages installed, you will need to restart your display manager after installation. Ensure that
libinput is detecting devices by running:
If you see no devices, you may need to disable/uninstall another driver (i.e. Synaptics) that is taking precedence over
libinput and restart your display manager once again. See the libinput ArchWiki page for more details.
We’ll also need to install libinput-gestures. Follow the installation instructions in that README.
id for your XPS 9550’s trackpad:
In my case, the
12. Once you have the
id, you can list the configurable properties for the device:
Note the first line of output, containing the
Device string. In my case, it’s
DLL06E4:01 06CB:7A13 Touchpad. Using the numerical
id is nice when you’re manually typing commands on the command line, but
xinput will allow us to use
DLL06E4:01 06CB:7A13 Touchpad to specify a device as well. Fromo now on we’ll use that to specify our device in scripts and commands, since I’m not sure how or when the
ids are assigned, and I’d rather make sure we are reliably setting the properties on the touchpad, and not inadverdently messing with some other device.
Like the device id/name, the properties can also be referenced by numerical id (i.e.
293), or the full property name string (i.e.
libinput Disable While Typing Enabled). We’ll use the string our in commands/scripts for readability.
To enable two-finger and three-finger clicking for this trackpad:
To enable tap-to-click:
To enable natural scrolling:
I found that my mouse was not moving as quickly across the screen as I wanted, so I changed the pointer speed, as well:
The configuration file for
libinput-gestures resides at
~/.config/libinput-gestures.conf. Check out my
libinput-gestures.conf for i3-specific configuration, and/or check out the sample
Simply add the following to your i3 config:
exec --no-startup-id libinput-gestures
That will start libinput-gestures when i3 starts.