1. Install the linux-xps13-archlinux kernel (now in the AUR)

    Note: Since I wrote this, it’s possible that the patched kernel now has more features than only touchpad support.

  2. Install xf86-input-synaptics and, from AUR, touchegg and touchegg-gce-git (this last one is to be able to configure gestures with the graphic interface).

  3. Edit /etc/X11/xorg.conf.d/50-synaptics.conf

    Section "InputClass"
            Identifier "touchpad catchall"
            Driver "synaptics"
            MatchIsTouchpad "on"
            Option "TapButton1" "1"
            Option "TapButton2" "0"
            Option "TapButton3" "0"
            Option "ClickFinger2" "0"
            Option "ClickFinger3" "0"
    
    
    # This option is recommend on all Linux systems using evdev, but cannot be
    # enabled by default. See the following link for details:
    # http://who-t.blogspot.com/2010/11/how-to-meta:ignore-configuration-errors.html
            MatchDevicePath "/dev/input/event*"
    
    
    EndSection
    
  4. Configure your gestures with Touchègg

    Here's my ~/.config/touchegg/touchegg.conf:

    <touchégg>
    <settings>
    <property name="composed_gestures_time">0</property>
    </settings>
    <application name="All">
    <gesture type="DRAG" fingers="3" direction="RIGHT">
    <action type="SEND_KEYS">Super+Right</action>
    </gesture>
    <gesture type="DRAG" fingers="5" direction="DOWN">
    <action type="SEND_KEYS">Control+minus</action>
    </gesture>
    <gesture type="DRAG" fingers="5" direction="UP">
    <action type="SEND_KEYS">Control+Shift+equal</action>
    </gesture>
    <gesture type="DRAG" fingers="3" direction="LEFT">
    <action type="SEND_KEYS">Super+Left</action>
    </gesture>
    <gesture type="DRAG" fingers="3" direction="UP">
    <action type="MAXIMIZE_RESTORE_WINDOW"></action>
    </gesture>
    <gesture type="DRAG" fingers="4" direction="UP">
    <action type="SEND_KEYS">Super</action>
    </gesture>
    <gesture type="DRAG" fingers="4" direction="DOWN">
    <action type="SEND_KEYS">Super+m</action>
    </gesture>
    <gesture type="TAP" fingers="3" direction="">
    <action type="MOUSE_CLICK">BUTTON=2</action>
    </gesture>
    <gesture type="DRAG" fingers="3" direction="DOWN">
    <action type="MINIMIZE_WINDOW"></action>
    </gesture>
    </application>
    <application name="Evince">
    <gesture type="DRAG" fingers="4" direction="LEFT">
    <action type="SEND_KEYS">Control+Left</action>
    </gesture>
    <gesture type="DRAG" fingers="4" direction="RIGHT">
    <action type="SEND_KEYS">Control+Right</action>
    </gesture>
    </application>
    <application name="Firefox">
    <gesture type="DRAG" fingers="4" direction="LEFT">
    <action type="SEND_KEYS">Alt+Left</action>
    </gesture>
    <gesture type="DRAG" fingers="4" direction="RIGHT">
    <action type="SEND_KEYS">Alt+Right</action>
    </gesture>
    </application>
    <application name="Nuvola Player, nuvolaplayer">
    <gesture type="DRAG" fingers="4" direction="LEFT">
    <action type="SEND_KEYS">Alt+Shift+Left</action>
    </gesture>
    <gesture type="DRAG" fingers="4" direction="RIGHT">
    <action type="SEND_KEYS">Alt+Shift+Right</action>
    </gesture>
    </application>
    </touchégg>
  5. Add to your session (using gnome-session-properties for instance):

    • touchegg

The real improvement is that I can use three-finger tapping to simulate the middle-click mouse button which is used for quick pasting or for opening links in a new tab.

As far as "pinching" is concerned, it does not work reliably at all for me.