Get a working touchpad on a 14″ Razer Blade running Linux/Ubuntu
The 14″ Razer Blade is, in my humble opinion, one of the best pieces of non-Apple hardware on the market today. The great news is that it also happens to run Ubuntu really well out-of-the-box. Nearly everything works (with the proviso that I haven’t tried suspend/hibernate, or using the Nvidia card). I say nearly everything because as of Ubuntu 15.04, the touchpad is detected as a mouse. That means it works, but only in the most basic way—no multitouch, multitap, or gestures.
The good news is that this is mostly fixed in kernel ≥ 4.0. Ubuntu 15.04 ships with kernel 3.19, so it won’t work out-of-the-box, but installing a new kernel is easy. Use the commands below to download and install kernel 4.0.1 for 64-bit Ubuntu 15.04 systems. You can also find kernel packages for newer kernels or different architectures/versions of Ubuntu.
wget kernel.ubuntu.com/~kernel-ppa/mainline/v4.0.1-vivid/linux-headers-4.0.1-040001_4.0.1-040001.201504290935_all.deb wget kernel.ubuntu.com/~kernel-ppa/mainline/v4.0.1-vivid/linux-headers-4.0.1-040001-generic_4.0.1-040001.201504290935_amd64.deb wget kernel.ubuntu.com/~kernel-ppa/mainline/v4.0.1-vivid/linux-image-4.0.1-040001-generic_4.0.1-040001.201504290935_amd64.deb sudo dpkg -i linux-headers-4.0.1*.deb linux-image-4.0.1*.deb
After installing the new kernel and rebooting, you’ll find that multitouch and gestures now work fine. But you may also find that the physical mouse buttons only respond some of the time, or that your finger has to be on the touchpad for a physical click to register. Palm detection may also not be very good. This is because even though the system now has correct drivers for the touchpad, it still incorrectly identifies the touchpad as a clickpad. More good news though: these issues are also easily fixable!
synclient ClickPad=0 synclient PalmDetect=1
That should immediately take effect, and your touchpad will now be 100% functional.
The above two commands don’t stick after a reboot, though. To make them permanent, we have to create a short configuration file in /usr/share/X11/xorg.conf.d/ that your system will read on startup. You can do it with this one-liner:
echo -e "Section \"InputClass\"\n\tIdentifier \"touchpad catchall\"\n\tDriver \"synaptics\"\n\tMatchIsTouchpad \"on\"\n\tMatchDevicePath \"/dev/input/event*\"\n\n\tOption \"PalmDetect\" \"1\"\n\tOption \"ClickPad\" \"0\"\nEndSection" | sudo tee /usr/share/X11/xorg.conf.d/60-synaptics-options.conf &> /dev/null
Enjoy your working touchpad!
Thanks to Andrew Duggan for taking the time to work through this issue.