Answers:
您可以尝试使用xinput
命令禁用输入设备。首先查看您拥有哪些输入设备,只需键入:
xinput
而且您应该看到类似以下的列表:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Atmel Atmel maXTouch Digitizer id=9 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=13 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
...
然后,您可以使用以下命令禁用所需的输入设备:
xinput disable 9
其中9是要禁用的设备的ID。您也可以在引号之间使用设备名称。
在xinput版本1.5.99.1中,您需要这样做xinput set-prop 9 'Device Enabled' 0
。在xinput v1.6.2上奇怪的是第一种方法。
~/.profile
重新启动后自动应用:xinput | grep 'ELAN Touchscreen' | grep -Po 'id=\d+' | cut -d= -f2 | xargs xinput disable
xinput enable `xinput | grep Atmel | sed "s/^.*id=\([0-9]*\).*$/\1/"`
。内部命令反引号返回ID。
该xinput
解决方案对我不起作用。相反,我遵循了该线程中的指示。这将在启动时将其禁用。
/usr/share/X11/xorg.conf.d/10-evdev.conf
Option "Ignore" "on"
用touchscreen
标识符添加到本节的末尾ELAN Touchscreen
在xinput
。/usr/share/X11/xorg.conf.d/40-libinput.conf
。我在该文件中更改了一个类似的块,然后在下次重新启动时,我想知道它是如何进行的!
编辑文件
sudo nano /usr/share/X11/xorg.conf.d/10-evdev.conf
在“触摸屏”部分中将MatchIsTouchscreen从“打开”更改为“关闭”,如下所示:
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "off"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
保存,命名和退出
触摸屏已禁用,并且在xinput列表中不再检测到。
Option = ignore
从答案中使用更为安全,因为它不会禁用设备,只是不会将其视为触摸屏。
由于xinput的ID在重新启动时发生了变化,因此我在会话加载时添加了一个简单的单行屏幕:
#!/bin/bash
xinput --list | awk '/Atmel Atmel maXTouch Digitizer/ {print $7}' | awk '{split($0,a,"="); print a[2]}' | xargs xinput disable
我的设备名称为“ Atmel Atmel maXTouch Digitizer”,请随您的设备进行更改(xinput --list
用于设备名称)。