37

My laptop has a touchscreen but I do not use this. How do I disable this functionality? I use Arch Linux. I figured I could try removing the related driver. According to this page the possible drivers are all named xf86-input*. However, it looks like I have nothing like that installed:

# pacman -Qs xf86-input local/xf86-input-evdev 2.8.3-1 (xorg-drivers xorg) X.org evdev input driver local/xf86-input-joystick 1.6.2-3 (xorg-drivers xorg) X.Org Joystick input driver local/xf86-input-keyboard 1.8.0-2 (xorg-drivers xorg) X.Org keyboard input driver local/xf86-input-mouse 1.9.0-2 (xorg-drivers xorg) X.org mouse input driver local/xf86-input-synaptics 1.7.5-1 (xorg-drivers xorg) Synaptics driver for notebook touchpads local/xf86-input-vmmouse 13.0.0-3 (xorg-drivers xorg) X.org VMWare Mouse input driver local/xf86-input-void 1.4.0-6 (xorg-drivers xorg) X.org void input driver 

Any idea how I can track down the responsible driver or in some other way disable the touch screen functionality?

4
  • 2
    Just an idea. Isn't it possible to disable it in the BIOS/Firmware? This is what I do with my touchpad, fingerprint reader and other "features" I don't really need. It's kind of lowest level you can disable it on and it might be easiest solution (if it's possible at all). Commented May 1, 2014 at 15:41
  • I see many questions asking exactly the opposite :( Commented May 1, 2014 at 15:47
  • I have an ASUS TX300 notebook, I usually disable the touch screen via a script each time rebooted. Commented May 14, 2014 at 10:23
  • see also superuser.com/questions/1212225/… Commented Jun 14, 2019 at 12:32

4 Answers 4

63
+150

Besides uninstalling the appropriate drivers (which might fail to work since some devices act as usual mouse devices and only need specific drivers for more sophisticated features and your list of installed drivers suggests this) you can also disable the device via the xinput tool or by explicitly matching in xorg.conf.

To disable the device using xinput, you'll have to determine the devices XInput id:

$ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)] ⎜ ↳ My annoying 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)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)] ↳ HID 0430:0005 id=13 [slave keyboard (3)] 

In this example, »My annoying touchscreen« has the id 14. So to disable it, simply type

$ xinput disable 14 

To disable it via xorg.conf, you simply create a file under the /etc/X11/xorg.conf.d directory, for example 99-no-touchscreen.conf with the following content:

Section "InputClass" Identifier "Touchscreen catchall" MatchIsTouchscreen "on" Option "Ignore" "on" EndSection 

This would ignore all touchscreen devices. In case you have more than one and want to use one or several of them, you could specify the match more exactly with one of the other Match directives. See the xorg.conf manpage for more details on this (simply search for »Match« and you should find what you're looking for).

2
  • 1
    one-liner: xinput disable `xinput | grep Touchscreen | awk '{print $5}' | sed 's/id=//'` Commented Jun 14, 2019 at 12:34
  • 1
    by the way, there is no need to awk for an 'id=', xinput also works with names, the following should work xinput disable "My annoying touchscreen". Commented Feb 2, 2022 at 16:05
0

From the ArchWiki, this is the section you need. Try this,

less /proc/bus/input/devices 

Select appropriate driver from the output; likely will be: xf86-input-evtouch (in AUR) xf86-input-elographics

Find that driver/module and blacklist it(refer here).

2
  • See my question. I searched for these drivers but they are not found. Commented May 1, 2014 at 16:47
  • This command solved my issue, I had faulty touch screen which was causing the mouse to go crazy. sudo pacman -Rs xf86-input-evdev Commented May 4, 2020 at 9:33
0

You could run the sudo lspci -vnn command on your console to display all your hardware information for all devices and try to search for lines containing touch word.

Each device has two lines displaying the used driver like this:

Kernel driver in use: driver_name

Kernel modules: driver_name

Here is a list of supported touchscreen devices by Linux http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html

You can compare your finding with the list of devices from this page and then can blacklist the driver using the instrucions from here: https://wiki.archlinux.org/index.php/kernel_modules#Blacklisting

0

This answer is based on Andreas Wiese's answer. I could not use MatchIsTouchscreen "on". This would not match my touchscreen. Instead you can use MatchProduct in your xorg config. Look at the first line in the output of xinput list-props for the Product name.

xinput list-props 14 Device 'ELAN900C:00 04F3:2E4B': Device Enabled (183): 1 Coordinate Transformation Matrix (185): 1.00000..... libinput Rotation Angle (295): 0.000000 libinput Rotation Angle Default (296): 0.000000 libinput Calibration Matrix (343): 1.000000..... libinput Calibration Matrix Default (344): 1.000000..... libinput Send Events Modes Available (297): 1, 0 libinput Send Events Mode Enabled (298): 0, 0 libinput Send Events Mode Enabled Default (299): 0, 0 Device Node (300): "/dev/input/event14" Device Product ID (301): 1267, 11851 

It was quite hard to find out which attribute could be used to Match against in Xorg config. Hopes this helps for the next person.

My '/etc/X11/xorg.conf.d/99-touchscreen.conf' now looks like this:

Section "InputClass" Identifier "Touchscreen" MatchProduct "ELAN900C:00 04F3:2E4B" Option "Ignore" "on" EndSection 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.