Skip to content
Gordon3002 edited this page Feb 6, 2023 · 16 revisions

How to get touch working properly on Surface Pro 4 The definitive guide

The package iptsd has an upstream bug which affects the Surface Pro 4, this can lead to phantom touch inputs which make it unusable. There are multiple things you can try to resolve this issue, these workarounds are mentioned in this issue (https://github.com/linux-surface/linux-surface/issues/1046).

The first thing you can try is enable Wayland, according to a comment made in the issue it can make things better, to do this in Pop!_OS type in terminal ‘sudo nano /etc/gdm3/custom.conf’ here simply change the WaylandEnable value to true, use ctrl+o to save, press space to confirm and press ctrl+x to exit. Now type ‘sudo systemctl restart gdm’ to restart the Gnome Display Manager session, WARNING, this will end the current session so make sure that everything you were doing is saved. Once at login click on your username, then on the gear icon at the bottom of the screen and select Pop on Wayland, then log in. If you’re running another distro search the specific method for it, I assume that if your distro is running GNOME the method will be similar.

If this doesn’t work try this config for the iptsd.conf file that is located in /etc/iptsd.conf:iptsd.conf.txt. Type in terminal 'sudo su --' this will give you root privileges, then type 'sudo nano /etc/iptsd.conf' this will open the nano text editor in terminal, copy the contents of the text file I attached, erase the contents of iptsd.conf in terminal and paste the contents of the text file. this configuration should work if you have a perfectly functioning touchscreen, however if like me you ended up with a somewhat defective one this will not work. If you applied the config mentioned previously put # before everything that's uncommented, so for example, if the string is like this 'CheckStability = true' put # before it '#CheckStability = true' this will render it inactive turning it into a comment. Do this for everything that doesn't have # before it in the config file, this will restore iptsd.conf to it's default state. If you didn't apply that config mentioned before you're good to go, simply put this:10-advanced.conf.txt into /etc/iptsd.d/10-advanced.conf. To do this, like before, type in terminal 'sudo su --' to have root privileges, then type 'sudo nano /etc/iptsd.d/10-advanced.conf' this will create a new file called 10-advanced.conf, put into it the contents of the second attached file. After this the touchscreen should work almost flawlessly including multitouch. With this I should have covered all the methods I know to get the Touchscreen to work on Surface Pro 4, if none of this works I'd reccomend opening an issue here on GitHub, someone will help you find a solution, if you find it feel free to edit this wiki, anyone can do it. As a momentary solution you can also uninstall iptsd using the command 'sudo apt remove libwacom-surface iptsd' if you're an Ubuntu based distro, if not check how to uninstall packages with your distro's package manager.

If you want to disable touch input partially in/etc/iptsd.conf change DisableOnStylus = false’ to true (at least for build from recent commit of iptsd Github repo) and same for DisableOnPalm` or if you want to disable it completely you can do it via libinput configuration.

More Resources

Additional information in the article (in Russian).

Microsoft Surface Pro 4 + Ubuntu

Clone this wiki locally