Recently I installed Ubuntu 16.04 on my HP Envy 17t and everything works fine. However, I need to disable the touchscreen input permanently and I tried everything I could found but nothing works.

The closest thing I could manage was to make a shell script that will run at startup (the shell script calls xinput set-prop "Touchscreen Input Name" "Device Enabled" 0 command).

However, this script will not run until I log in. My touchscreen needs to be disabled at the log-in screen.

How can I solve this? I tried modifying the 10-evdev.conf file but all I got is a purple screen and a broken Ubuntu setup.

  • Have you looked in the BIOS for a touchscreen setting? – Kaz Wolfe Mar 15 '17 at 6:19
  • this is not a duplicate question. he said PERMANENTLY if you open your eyes wide – jerinho.com Feb 11 '19 at 10:11

Try finding your touchscreen XID with xinput --list, then add the following command to your startup applications: xinput disable [touchscreen XID] (for example, if the XID is 9, then the command would be xinput disable 9).

  • 8
    -1 The XID is not guaranteed to stay the same, so your solution could lead to, for instance, the touchpad being disabled at startup instead of the touchscreen. – Romário Dec 15 '17 at 1:46
  • 2
    My touchscreen sometimes gets id 17, sometimes 13. This is not a solution. – Emin Mastizada Feb 1 '18 at 0:28
  • 1
    @EminMastizada try with this: xinput disable xinput --list | egrep -io "display.+touch.+id=([0-9]+)" | awk '{print substr($4,length($4)-1)}' – tuxErrante Jul 26 '18 at 8:41
  • 1
    xinput disable `xinput --list | egrep -o "name_of_your_input.+id=[0-9]+" | egrep -o "[0-9]+"` – ATN Aug 23 '18 at 11:54
  • The above only works if your input doesn't have digits in it. – ATN Aug 23 '18 at 13:37

The link shared by @Whiteboy works.

In file /usr/share/X11/xorg.conf.d/10-evdev.conf, changing the "evdev" to the "libinput" in "Driver" section of the touchscreen should do the trick.

So now it looks like this:

# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.

Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"

Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"

Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"

Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"

Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"

This works in my Dell 5558 laptop.

  • Work for HP 360 102TU as well – Kundan Prasad Mar 31 '18 at 6:33
  • ASUS N550J I do not have file 10-evdev.conf on ubuntu 18.04 I only have 40-libinput.conf which has already ``` Section "InputClass" Identifier "libinput touchscreen catchall" MatchIsTouchscreen "on" MatchDevicePath "/dev/input/event*" Driver "libinput" EndSection ``` – user1325696 Jan 6 at 22:13

I've spent a long time looking for a solution to a similar problem I've been having for my old Asus X200MA. I never could find a software solution that stuck so I eventually opened up the laptop and unplugged the cable for the touchscreen. (It was way out of warranty anyway.) It's not elegant, and it may or may not even be possible on some other laptops, but it worked for me.

This iFixit guide might help.


It looked like the guide on the top cover removal might contain the needed information. If, however, the screen control cable and the touch screen cable are bundled together then this method obviously won't help much.


Try putting your command in /etc/rc.local before the exit 0 line.

The file /etc/rc.local is run before the users log in, and may disable your touchpad before you notice it is enabled.

  • 1
    Thanks for your answer. I already tried that but the script won't run. I think there are some dependencies with xinput that are not met at the point /etc/rc.local script is run. – Ionut Marisca May 3 '16 at 8:24
  • Alright, what about this?: sudo modprobe -r psmouse, try that in the /etc/rc.local. If you want to temporarily re-enable it, use sudo modprobe psmouse. – Zzzach... May 3 '16 at 15:01

Had the same issue, but fixed it:


  • 4
    Include the essential part of the solution rather than just sharing the link – Mostafa Ahangarha May 9 '16 at 17:31
  • (See @Stranger 's post for the contents) – Dragon Apr 9 '19 at 16:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.