33

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). – Miroslav Koškár May 1 '14 at 15:41
  • I see many questions asking exactly the opposite :( – Braiam May 1 '14 at 15:47
  • I have an ASUS TX300 notebook, I usually disable the touch screen via a script each time rebooted. – LiuYan 刘研 May 14 '14 at 10:23
  • see also superuser.com/questions/1212225/… – Tim Abell Jun 14 '19 at 12:32
57
+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).

1
  • 1
    one-liner: xinput disable `xinput | grep Touchscreen | awk '{print $5}' | sed 's/id=//'` – Tim Abell Jun 14 '19 at 12:34
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. – please delete me May 1 '14 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 – amitmah May 4 '20 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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