如何在启动时完全禁用触摸板?

如何在启动时完全禁用触摸板?

我想在 Ubuntu 16.10 登录之前禁用触摸板。

我曾尝试执行

#!/bin/bash

ID=$(/usr/bin/xinput list --id-only "SynPS/2 Synaptics TouchPad")

if [[ $ID ]]; then
    /usr/bin/xinput --disable $ID
    echo "Touchpad disabled"
else
    echo "Touchpad not found"
fi

启动时使用 systemctl、rc.d 等。似乎什么都不起作用,因为它需要运行 X 或类似的东西。

答案1

将以下代码添加到 /usr/share/X11/xorg.conf.d/*-synaptics.conf

# Disable generic Synaptics device, as we're using
Section "InputClass"
        Identifier "SynPS/2 Synaptics TouchPad"
        MatchProduct "SynPS/2 Synaptics TouchPad"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/event*"
        Option "Ignore" "on"
EndSection

重新启动并测试是否有效。

答案2

我安装了 Linux Mint 18,内核为 4.4.0-45。我做了以下操作,以便轻松切换触摸板状态。

sudo apt-get install xinput

xinput -list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. 2.4G Keyboard Mouse          id=11   [slave  pointer  (2)]
⎜   ↳ **FTE1001:00 0B05:0101**               ***id=14***   [slave  pointer  (2)]
  • 查找触摸板的 id,在我的情况下是 14。我编写了一个小型 shell 脚本来关闭和打开触摸板。

  • 触摸板关闭:

    cd /usr/local/bin
    sudo nano touchpad-off

    #!/bin/bash
    # touchpad off
    xinput --set-prop 14 "Device Enabled" 0
    echo touchpad off
    
  • 触摸板开启:

    sudo nano touchpad-on

    #!/bin/bash
    # touchpad on
    xinput --set-prop 14 "Device Enabled" 1
    echo touchpad on
    
  • 使用以下命令使脚本可执行:

    chmod +x touchpad-off
    chmod +x touchpad-on
    

    现在您可以使用终端中的touchpad-off和轻松切换触摸板状态。touchpad-on

启动时禁用: 转到启动应用程序并添加新的启动应用程序,查找脚本touchpad-off并将其添加到列表中。您需要确保脚本位于usr/local/bin如上所示位置,并确认它是可执行的。

另一件需要仔细检查的事情是确保文件在自动运行提示下运行。右键单击文件并转到“打开方式”选项卡,然后选择自动运行提示。

在启动时禁用触摸板视频教程

答案3

由于我每次购买新的 Thinkpad 时都会遇到这个问题,因此这里借鉴了另外两种回应,提出了一种更为通用的方法:

  1. 找到触摸板的名称:xinput --list。您应该得到类似这样的结果:
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ TPPS/2 Elan TrackPoint                    id=15   [slave  pointer  (2)]
⎜   ↳ SYNA8022:00 06CB:CE67 Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ SYNA8022:00 06CB:CE67 Mouse               id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=9    [slave  keyboard (3)]
    ↳ Intel HID events                          id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=16   [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated I           id=10   [slave  keyboard (3)]

在我的例子中,要使用的名称是SYNA8022:00 06CB:CE67 Touchpad

  1. 测试这是否是正确的设备(同时也免去了重启的麻烦):,xinput --set-prop ID "Device Enabled" 0其中 ID 是您使用上述命令获取的列表中的 ID。如果此操作禁用了触摸板,则说明您找到了正确的 ID 和名称

  2. 创建一个文件并将/etc/X11/xorg.conf.d/其命名为20_synaptics.conf(通常,数字定义相对于其他文件的顺序):

# Disable touchpad
Section "InputClass"
        Identifier "SynPS/2 Synaptics TouchPad"
        MatchProduct "SYNA8022:00 06CB:CE67 Touchpad"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/event*"
        Option "Ignore" "on"
EndSection

MatchProduct 字符串应该是您在 xinput 列表中找到的字符串。

  1. 要测试它是否有效,请按 Ctrl+Alt+F3 切换到文本控制台(如果控制台 3 已被占用,请尝试其他数字)。登录然后启动 X 会话:sudo xinit -- :2。这将启动第二个 X 服务器而无需重新启动您的机器。您可能只会看到一个终端窗口(没有边框,因为您没有运行窗口管理器),但这足以测试触摸板是否被禁用。您可以通过在终端窗口中键入 Ctrl+D 来退出。

相关内容