Asus UX303 in Linux: Part 2 - Trackpad

| Comments

The touchpad on Asus UX303 laptops is recognized as a plain PS/2 mouse in most out of the box linux installations. Here’s how to fix that.

The problem

While the touchpad works out of the box in linux distributions, there’s no tap to click, palm detection, or multitouch capability supported. Fortunately the fix is fairly simple.

Verify that you have the FocalTech touchpad by checking the list of input devices.

$ cat /proc/bus/input/devices | grep Name
N: Name="Lid Switch"
N: Name="Sleep Button"
N: Name="Power Button"
N: Name="Video Bus"
N: Name="Video Bus"
N: Name="AT Translated Set 2 keyboard"
N: Name="FocalTechPS/2 FocalTech FocalTech Touchpad"
N: Name="HDA Intel PCH Mic"
N: Name="HDA Intel PCH Headphone"
N: Name="USB2.0 UVC HD Webcam"
N: Name="HDA Intel HDMI HDMI/DP,pcm=3"
N: Name="HDA Intel HDMI HDMI/DP,pcm=7"
N: Name="HDA Intel HDMI HDMI/DP,pcm=8"
N: Name="Logitech M510"
N: Name="Logitech K350"
N: Name="Atmel Atmel maXTouch Digitizer"

Get a newer kernel

The driver for the FocalTech touchpad is only available in newer kernels. Check your kernel version:

$ uname -r

If you see 3.18-rc0 or greater, you’re fine. If not, you need to upgrade to a newer kernel.

I’m not going to cover the details of how to do this since it is very distribution and preference dependent. It may be as easy as running yum update kernel or equivalent. However, if you’re running a more stable distribution where newer kernels are not available (right now Debian stable only has 3.16.0 kernels) you may have to grab a kernel from the unstable branch. I compile my own kernels from the Linux source but that is definitely not for everyone.

Configure touchpad options with synclient

Now you can set whatever options you want for the touchpad using the synclient program. For a list of all available options, run synclient -l. A good reference for common synclient options can be found on the Arch Wiki, including multi-touch circular scrolling, palm detection, and more.

Personally I have:

synclient TapButton1=1
synclient TapButton2=2
synclient TapButton3=3
synclient PalmDetect=1

To have these settings run every time, you can put them in your xorg.conf.d. I have mine in my i3 config file to run when the window manager starts.