如何禁用笔记本电脑上的触摸屏?

如何禁用笔记本电脑上的触摸屏?

我的笔记本电脑有触摸屏,但我不使用它。如何禁用此功能?我使用 Arch Linux。我想我可以尝试删除相关的驱动程序。根据这一页可能的驱动程序都已命名xf86-input*。但是,看起来我没有安装任何类似的东西:

# 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

知道如何找到负责任的司机或以其他方式禁用触摸屏功能吗?

答案1

除了卸载适当的驱动程序(这可能无法工作,因为某些设备充当通常的鼠标设备,并且只需要特定的驱动程序来实现更复杂的功能,并且您安装的驱动程序列表表明了这一点)您还可以通过该xinput工具或通过显式匹配来禁用该设备在xorg.conf

要使用 禁用设备xinput,您必须确定设备的 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)]

在此示例中,“我烦人的触摸屏”具有 id 14。因此,要禁用它,只需键入

$ xinput disable 14

要通过 禁用它xorg.conf,您只需在目录下创建一个文件/etc/X11/xorg.conf.d,例如99-no-touchscreen.conf包含以下内容:

Section "InputClass"
    Identifier         "Touchscreen catchall"
    MatchIsTouchscreen "on"

    Option "Ignore" "on"
EndSection

这会忽略全部触摸屏设备。如果您有多个指令并且想要使用其中一个或多个指令,您可以使用其他Match指令之一指定更精确的匹配。有关更多详细信息,请参阅xorg.conf联机帮助页(只需搜索“匹配”,您就应该找到您要查找的内容)。

答案2

来自建筑维基百科,这是您需要的部分。尝试这个,

less /proc/bus/input/devices

从输出中选择合适的驱动器;可能会是: xf86-input-evtouch (in AUR) xf86-input-elographics

找到该驱动程序/模块并将其列入黑名单(参考这里)。

答案3

你可以运行须藤 lspci -vnn控制台上的命令显示所有设备的所有硬件信息,并尝试搜索包含 touch 字的行。

每个设备都有两行显示所使用的驱动程序,如下所示:

使用的内核驱动程序:driver_name

内核模块:driver_name

以下是 Linux 支持的触摸屏设备列表 http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html

您可以将您的发现与此页面中的设备列表进行比较,然后可以使用此处的说明将驱动程序列入黑名单:https://wiki.archlinux.org/index.php/kernel_modules#Blacklisting

答案4

这个答案是基于安德烈亚斯·维泽的回答。我无法使用MatchIsTouchscreen "on"。这与我的触摸屏不匹配。相反,你可以使用匹配产品在你的 xorg 配置中。查看输出中的第一行的xinput list-props产品名称。

xinput list-props 14
Device 'ELAN900C:00 04F3:2E4B':
        Device Enabled (183):   1
        Coordinate Transformation Matrix (185): 1.00000.....
        libinput Rotation Angle (295):  0.000000
        libinput Rotation Angle Default (296):  0.000000
        libinput Calibration Matrix (343):      1.000000.....
        libinput Calibration Matrix Default (344):      1.000000.....
        libinput Send Events Modes Available (297):     1, 0
        libinput Send Events Mode Enabled (298):        0, 0
        libinput Send Events Mode Enabled Default (299):        0, 0
        Device Node (300):      "/dev/input/event14"
        Device Product ID (301):        1267, 11851

很难找出哪个属性可用于在 Xorg 配置中进行匹配。希望这对下一个人有帮助。

我的“/etc/X11/xorg.conf.d/99-touchscreen.conf”现在看起来像这样:

Section "InputClass"
    Identifier         "Touchscreen"
    MatchProduct        "ELAN900C:00 04F3:2E4B"
    Option "Ignore" "on"
EndSection

相关内容