从命令行禁用Ubuntu下的触摸板

在我的Ubuntu17.04更新到17.10并使用X.Org进入桌面后,在系统设置中找不到触摸板的禁用/启用项,无法禁用触摸板。在网上搜索后发现可以在命令行中禁用,以下是解决办法:

使用命令行

命令xinput可以查看touchpad的设备ID:

zyx@zyx-ThundeRobot:~$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ Razer Razer Abyssus                         id=12    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                  id=14    [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Video Bus                                   id=8    [slave  keyboard (3)]
    ↳ Power Button                                id=9    [slave  keyboard (3)]
    ↳ BisonCam, NB Pro: BisonCam, NB              id=11    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Sleep Button                                id=10    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=13    [slave  keyboard (3)]

可以看到这里的触摸板设备ID是14,知道ID后就可以执行命令禁用设备:

xinput disable 14

同样可以使用命令启用设备:

xinput enable 14

脚本

使用命令比较麻烦的话,可以写个脚本touchpad_set.sh:

#!/bin/bash
##################################################
#this script is used to disable/enable the touchpad
##################################################
#命令xinput list-props 14可以列出触摸板的当前信息,
#其中的Device Enabled (171): 1显示设备是否启用,数字1表示启用,0表示禁用。

output=$(xinput list-props 14)

if [[ "$output" =~ Device.Enabled.\(171\):.1 ]]
then
    xinput disable 14
else
    xinput enable 14
fi

将脚本丢进/usr/local/bin/,添加可执行权限,就可以使用这个脚本来启用/禁用触摸板。

快捷键

如果觉得使用脚本还是麻烦的话,可以添加到快捷键。

首先用命令chmod -x touchpad_set.sh来去除脚本的执行权限,如果不去除执行权限,脚本将无法通过快捷键执行。

然后在系统设置->设备->键盘里添加快捷键,导入这个脚本。