我有一台使用 Ubuntu 的触摸屏笔记本电脑(HP Spectre X360)。我的屏幕已经更换过几次了,所以触摸屏有时会出现问题,让它认为它在整个屏幕上都被随机触摸。这使得无法控制任何东西,需要重新启动。
我知道如何禁用触摸屏:
在终端中我输入xinput
并显示一个列表,例如:
然后我找到与之对应的数字ELAN Touchscreen
(在本例中为 10),然后输入:
xinput disable 10
但是一旦屏幕失灵,再这样做就太晚了,因为我无法输入任何内容。所以我想让这个功能自动运行,每次启动电脑时都会自动输入,并每次都自动禁用触摸屏。但有时这个数字不是 10,有时是 9。
我想我需要一些简单的 bash 屏幕输入,xinput
然后找到对应于触摸屏的数字并输入xinput disable #
。
有人能帮助我吗?
答案1
我会改进这个答案为你一点。
disable-touchscreen.sh
在文件夹中创建一个名为例如的文件/etc/X11/xinit/xinitrc.d/
,其内容如下。
#!/bin/sh
[ -x /usr/bin/xinput ] && /usr/bin/xinput disable 'ELAN Touchscreen'
确保它是可执行的(chmod +x /etc/X11/xinit/xinitrc.d/disable-touchscreen.sh
)。
您可以这样使用它,引用man xinput
:
设备可以是字符串形式的设备名称或设备的 XID。
如果您的发行版不包含该/etc/X11/xinit/xinitrc.d/
文件夹(Ubuntu 很可能没有),则创建它。
另外,查看你的主页,如果有一个名为的文件.xinitrc
,确保它包含如下块
# run all system xinitrc shell scripts.
for file in /etc/X11/xinit/xinitrc.d/* ; do
. $file
done
答案2
要永久禁用触摸屏输入,这里有另一种方法:
编辑文件
/usr/share/X11/xorg.conf.d/10-evdev.conf
找到 ELAN 触摸屏的条目
在“驱动程序”部分,将“evdev”更改为“libinput”,使其看起来像这样:
Driver "libinput"
如果在文件中找到“Touchscreen catchall”的条目,请向其中添加以下行:
Option "Ignore" "on"
另一种可能性是,如果您找到此行:
MatchIsTouchscreen "on"
,则将其更改为MatchIsTouchscreen "off"
。保存文件并重新启动。
另一种方法是使用以下命令:
xinput --set-prop 'name of touchpad device' 'Device Enabled' 0
答案3
为了禁用 Linux 中的触摸板,我在文件 /usr/share/X11/xorg.conf.d/40-libinput.conf 中添加了一行“选项“Ignore” “on””
现在该部分如下所示:
部分“InputClass”标识符“libinput touchpad catchall”MatchIsTouchpad“on”选项“Ignore”“on”MatchDevicePath“/dev/input/event*”驱动程序“libinput”EndSection
对我来说没有 xorg 也能正常工作