在 Bash 中启动时自动禁用触摸屏

在 Bash 中启动时自动禁用触摸屏

我有一台使用 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 也能正常工作

相关内容