如何在Xubuntu 14.04中快速启用/禁用触摸板而不安装其他应用程序?

19 touchpad xubuntu

在Xubuntu 14.04。访问禁用和启用触摸板的设置有点隐藏 - 在设置 - 鼠标和触摸板中,一旦出现,还需要其他一些点击。

在此处输入图片说明

我已经尝试安装面板应用程序touchpad-indicator- 但在 Xfce 中似乎有问题可能是由于与 Xfce 设置冲突......

是否有快速安全的方法来启用/禁用触摸板?

小智 28

这可以通过这两个命令轻松完成(受到不同答案的启发):

禁用:

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

使能够:

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

我最初的答案是使用

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 号可能不是 15:可以通过运行找到

xinput list
Run Code Online (Sandbox Code Playgroud)

我在有关如何禁用触摸板的问题答案中找到了有关这些命令的信息


这些命令可以添加到启动器中。

我更喜欢为这两个命令创建.desktop文件(inusr/share/applications或 in .local/share/applications),以便使用 Whisker Menu、Synapse 等启动器轻松运行


还:

  • 通过将它们添加到单个启动器中,

  • 设置高级属性,如下图所示

在此处输入图片说明

(即“显示上次使用的项目”和“内部按钮”),

  • 并添加两个特定的图标,

启动器将始终显示触摸板的当前状态

在此处输入图片说明


此外,为这两个命令分配快捷方式(设置管理器 - 键盘 - 应用程序快捷方式)也绝不是一个坏主意。


小智 13

您也可以使用synclient就像在这个答案中一样

关闭触摸板:

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

打开:

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

我认为这是更方便的方式。您不需要知道设备 ID。

所以我的解决方案是创建 bash 脚本~/toggle-touchpad.sh

#!/bin/bash
if synclient | grep --quiet 'TouchpadOff             = 0'; then
  synclient TouchpadOff=1
  notify-send Touchpad Disabled
else
  synclient TouchpadOff=0
  notify-send Touchpad Enabled
fi
Run Code Online (Sandbox Code Playgroud)

修改文件权限:

sudo chmod +x ./toggle-touchpad.sh
Run Code Online (Sandbox Code Playgroud)

接下来转到设置-键盘-应用程序快捷方式并添加新的快捷方式。输入脚本的路径(/home/your_username/toggle-touchpad.sh - 例如)。指定快捷方式(在我的情况下为 Fn+F9)。

完毕。现在您可以切换触摸板,您将收到通知。


小智 9

非启动器版本:

#!/bin/bash

# toggle state of synaptics touchpad

tpid=`xinput list | grep SynPS | sed 's/.*id\=\([0-9]\+\).*/\1/g'`

declare -i status
status=`xinput list-props ${tpid} | grep Device\ Enabled | sed -e 's/.*\:[ \t]\+//g'`

if [ 0 -eq ${status} ] ; then
    xinput enable ${tpid}
else
    xinput disable ${tpid}
fi
Run Code Online (Sandbox Code Playgroud)