如何禁用触摸板?

Pen*_* Wu 242 touchpad

我希望在使用鼠标时禁用触摸板。我怎样才能做到这一点? touchpad-indicator已停止在 11.10 上工作。它曾经在 11.04 上工作。Gnome3 不是一个解决方案,因为我不喜欢它并且发现它有问题。

Pen*_* Wu 354

在终端中运行以下命令:

xinput list
Run Code Online (Sandbox Code Playgroud)

您将获得如下所示的输出:

? Virtual core pointer                          id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? SynPS/2 Synaptics TouchPad                id=12   [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)]
    ? Power Button                              id=8    [slave  keyboard (3)]
    ? Sleep Button                              id=9    [slave  keyboard (3)]
    ? Laptop_Integrated_Webcam_1.3M             id=10   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ? Dell WMI hotkeys                          id=13   [slave  keyboard (3)]
Run Code Online (Sandbox Code Playgroud)

它显示所有连接的输入设备。请注意,它们都有一个 id。由于 12 是我的触摸板的 ID,运行以下命令将禁用它。

xinput set-prop 12 "Device Enabled" 0
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 版本中,>12.04您还可以通过以下方式直接禁用

xinput --disable 12
Run Code Online (Sandbox Code Playgroud)

(并通过类似的命令启用)

  • 关闭触摸板 synclient TouchpadOff=1 重新打开 synclient TouchpadOff=0 这样更好。 (36认同)
  • 在 12.10 及更高版本中,您还可以使用 `xinput -disable 12` 禁用输入设备 12(或使用 `xinput -enable 12` 启用它)。请参阅手册页 [xinput(1)](http://manpages.ubuntu.com/manpages/quantal/en/man1/xinput.1.html)。 (9认同)
  • “synclient -l | less”查看所有可用选项 (4认同)
  • @Lekensteyn你不是说“--disable”和“--enable”,每个都有2个破折号吗?这就是我用“xinput --disable 11”所做的 (2认同)

Jam*_*mes 96

  1. 搜索鼠标
  2. 单击鼠标和触摸板
  3. 单击触摸板设置右侧的关闭/打开按钮。

步骤1

在此处输入图片说明

  • 12.04 中没有大的 ON|OFF 小部件,这是一个必须求助于命令行的工具...... (3认同)

小智 41

查看此链接:如何在 ubuntu 11.10 中禁用启用触摸板

在那里找到的答案非常简洁:

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
Run Code Online (Sandbox Code Playgroud)

在此之后,您将在通知区域中获得一个开关。

我唯一希望的是能够将开关键设置为Fn+ F8(这是我键盘上的触摸板按键开关...

  • 警告:这需要信任用户“atareao”,他可能在他的 PPA 中托管恶意软件 (2认同)

小智 35

根据@Peng Wu 给出的答案,我创建了一个可以使用的 bash 脚本...

#!/bin/bash

declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`

xinput set-prop $ID "Device Enabled" 0

echo 'Touchpad has been disabled.'
Run Code Online (Sandbox Code Playgroud)

您可以手动运行它或在启动时运行它。然后你可以让脚本在启动时运行。

另一个用于切换触摸板的 bash 脚本:

#!/bin/bash

declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
    xinput disable $ID
    echo "Touchpad disabled."
else
    xinput enable $ID
    echo "Touchpad enabled."
fi
Run Code Online (Sandbox Code Playgroud)


kno*_*cte 26

简单地说,在终端中:

synclient TouchpadOff=1
Run Code Online (Sandbox Code Playgroud)

但是,上述内容在 Ubuntu 16.04 中似乎不再适用。在这种情况下,然后xinput仍然有效:

xinput set-prop `xinput --list | awk '/[Tt]ouch[Pp]ad.*pointer/ {print $7}' | sed 's/id=\(.*\)/\1/'` "Device Enabled" 0
Run Code Online (Sandbox Code Playgroud)


小智 11

更新的解决方案:

代替xinput,使用可以更改的 id 变量,更好地使用,synclient如其他答案中所示,例如this

sudo apt install xserver-xorg-input-synaptics
Run Code Online (Sandbox Code Playgroud)

关闭触摸板:

synclient TouchpadOff=1
Run Code Online (Sandbox Code Playgroud)

打开:

synclient TouchpadOff=0
Run Code Online (Sandbox Code Playgroud)

与如下所述的启动器或快捷方式一起使用。


这只是问题下答案中命令的应用。下面的解决方案仅限于Xfce /Xubuntu,虽然是偶然做出来的,但是觉得太优雅了,就不在这里分享了。因此,我最初创建了一个单独的问题,仅针对 Xubuntu。这个问题只能是这个问题的重复,因此可能会被关闭,这就是为什么我敢在这里重新发布该答案。


这是关于这两个命令:

禁用:

xinput set-prop 15 "Device Enabled" 0
Run Code Online (Sandbox Code Playgroud)

使能够:

xinput set-prop 15 "Device Enabled" 1
Run Code Online (Sandbox Code Playgroud)

将通过运行找到 ID 号

xinput list
Run Code Online (Sandbox Code Playgroud)


小智 8

这是在启动时自动禁用触摸板的 方法 此方法将通过名称而不是 id 更安全地禁用触摸板。以下是获取触摸板名​​称的方法:

$ xinput list --name-only | grep -i Touchpad
ETPS/2 Elantech Touchpad
Run Code Online (Sandbox Code Playgroud)

创建一个 bash 脚本文件。我将该文件添加到 ubuntu 启动应用程序,以便它在每次重新启动时运行。请记住使文件可执行。以下是内容:

#!/bin/bash
$ xinput disable 'ETPS/2 Elantech Touchpad'
Run Code Online (Sandbox Code Playgroud)


aft*_*ter 5

我使用以下脚本来启用/禁用触摸板。我还将它分配给键盘快捷键。

用法:toggle_touchpad.sh [on|off]

如果您不带参数运行,那么它只会反转触摸板的当前状态。

#!/bin/bash
# toggle_touchpad.sh

is_off=`synclient | grep -Pio "TouchpadOff.*?(\d)" | grep -Eo "[01]"`

if [ -z "$1" ]; then
    echo "Inverting touchpad state"

    if [ "$is_off" -eq '0' ];then
        synclient TouchpadOff=1
        notify-send "Touchpad Disabled"
    else
        synclient TouchpadOff=0
        notify-send "Touchpad Enabled"
    fi

else

    if [ "$1" == "on" ]; then
        echo "Turning on touchpad"
        synclient TouchpadOff=0
        notify-send "Touchpad Enabled"
    elif [ "$1" == "off" ]; then
        echo "Turning off touchpad"
        synclient TouchpadOff=1
        notify-send "Touchpad Disabled"
    else
        echo "Unknown arg! Pass no args or on/off !"
    fi

fi
Run Code Online (Sandbox Code Playgroud)