How do I disable touch screen on Ubuntu 17.10 permanently?

Solution 1:

You can add the below to one of your startup scripts

xinput disable `xinput --list | grep -i "touch " | sed 's/id=//g' | cut -f2`

The opposite will re-enable it

xinput enable `xinput --list | grep -i "touch " | sed 's/id=//g' | cut -f2`

Note that there is a space after "touch". This is to prevent the command from picking up the touchpad on your laptop!

Solution 2:

The answer below works, but had some additional problems, such as disabling the touchpad. An alternate and IMO better solution can be found at https://askubuntu.com/a/986453/283721


I have had to turn off my touchscreen as well, for another reason.

If you are using xorg, you can do this on a temporary basis using xinput

first, identify the touchscreen using xinput list

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech M315/M235                        id=9    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD: In           id=10   [slave  keyboard (3)]

In my case the touchscreen would appear as "ELAN Touchscreen" in the first section of the output. I could then use `xinput disable "ELAN Touchscreen" which would disable the touchscreen until either the next reboot, or putting the computer to sleep and awakening it.

A more permanent solution for me, has been to blacklist the module "hid_multitouch"

I have created a file named /etc/modprobe.d/hid_multitouch.conf it's contents are as follows:

# Use the following syntax
# blacklist driver-name
blacklist hid-multitouch

The touchscreen driver for your system may not be the same as for mine - you can test this using sudo modprobe -r hid_multitouch which will for a short period disable your touchscreen - I found that it reloaded within 5 or 6 seconds.

I was able to determine that hid_mutlitouch was the driver used for me system by examining dmesg | grep "device name" -A3 -B3 which, amongst other things, produced the output

[21896.624869] input: ELAN Touchscreen as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:04F3:0034.000A/input/input18
[21896.625587] hid-multitouch 0003:04F3:0034.000A: input,hiddev1,hidraw2: USB HID v1.10 Device [ELAN Touchscreen] on usb-0000:00:1a.0-1.2/input0