1. Overview
Touchscreens are often a convenient way to interact with digital media. However, it may present some problems. For example, unexpected touching could result in issues. So, disabling the touchscreen can help us avoid accidental touches. Additionally, touchscreens consume a significant amount of battery on devices like laptops. Therefore, users might choose to disable the touchscreen altogether, which can improve battery life and optimize the system’s performance.
In this tutorial, we’ll explore two methods to disable the touchscreen in Linux.
2. Using xinput
xinput is a command-line tool in Linux. It enables us to view and configure all supported input devices connected to a system.
In addition to this, we can perform various tasks using the xinput tool:
- view the settings of a specific input device
- change the default properties of an input device
- enable and disable devices
- create configuration files
Now, let’s see how to install and use the xinput tool in Linux.
2.1. Installation
To install the xinput tool on Debian-based systems, we can utilize the apt command:
$ sudo apt-get install xinput
Furthermore, on Arch and Arch-derivatives, we utilize the pacman command to install the xinput tool:
$ sudo pacman -S xorg-xinput
After the execution of the command, let’s check the installation status of the xinput tool:
$ xinput --version
xinput version 1.6.3
XI version on server: 2.4
The installation is complete.
2.2. Disabling Touchscreen
First, we run the xinput tool to view all the input devices connected with the system:
$ xinput list
⎡ 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)]
⎜ ↳ ELAN Touchscreen id=13 [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)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ Wireless hotkeys id=11 [slave keyboard (3)]
↳ HP WMI hotkeys id=12 [slave keyboard (3)]
The output provides us with the list of input devices along with their unique identity numbers. Knowing the ID numbers is crucial as it enables us to configure specific input devices.
Here, the ID number of the touchscreen device is 13. So, let’s use the ID number to disable the touchscreen device using the xinput tool:
$ xinput disable 13
Thus, we successfully disabled the touchscreen device.
Finally, to enable the touchscreen again, we can use the enable option in the xinput tool followed by the device ID:
$ xinput enable 13
After execution of the command, the touch functionality should start functioning again.
3. Modifying Xorg Configuration File
An alternative approach to disable the touchscreen in Linux is to modify the Xorg display manager configuration file. It contains the settings that determine the communication between the graphical server and system components, such as input devices and hardware. Additionally, the Xorg configuration file can be used for various crucial tasks:
- defining the layout of input devices and monitors connected with a system
- enabling as well as disabling X server extensions
- configuring input devices
- setting the resolution of monitors
To make use of these features, first, we create a configuration file using the nano editor:
$ sudo nano /etc/X11/xorg.conf.d/sample.conf
Notably, if there’s an existing configuration file, we can edit that using any editor.
In this instance, we add some instructions to the configuration file to disable the touchscreen:
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "Ignore" "on"
EndSection
Let’s explore the instructions we inserted in the configuration file. First, we start with the InputClass section, which contains the properties and configurations of input devices. The second line uniquely identifies the target input device. Next, the third line verifies the touchscreen device.
Furthermore, we also specify a path that contains all the configuration files and the driver related to the touchscreen device. Finally, we disable the touchscreen by activating the Ignore option, which tells the evdev driver to ignore any input signal received from the touchscreen device.
The last step is to restart the input device manager in the system to reflect the changes we made.
Typically, the input devices are managed by the udev tool and daemon. Therefore, we restart the udevd service:
$ sudo systemctl restart systemd-udevd.service
After the restart, the touchscreen device should stop working.
4. Conclusion
In this article, we discussed two methods to disable the touchscreen in Linux.
The xinput tool provides detailed information about all input devices. Although it can be used to configure any input device, the changes are temporary and only valid for a particular session.
On the other hand, similar to the xinput tool, we can modify the properties of the input devices using the Xorg configuration files. However, unlike the xinput tool, the changes we make in the Xorg configuration files are permanent.