如何设置键盘快捷键来打开/关闭触控板?

如何设置键盘快捷键来打开/关闭触控板?

我正在使用 ubuntu 14.04。我目前已在“系统设置 -> 鼠标和触摸板”中关闭了笔记本电脑的触控板。我可以像系统设置中的选项一样设置键盘快捷键来打开和关闭触控板吗?

答案1

您可以在快捷键下放置一个检查当前状态的小脚本,并使其随后切换到其他状态。

这在很多情况下都有效,例如切换触控板、切换(许多)指示图标的可见性等。(请参阅帖子中的编辑)

下面的脚本可以实现这个功能:

#!/usr/bin/env python3
import subprocess

key = "org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled"

cmd1 = "/bin/bash", "-c", "gsettings get "+key
new_state = "false" if subprocess.check_output(cmd1).decode("utf-8").strip()  == "true" else "true"
cmd2 = "gsettings set "+key+" "+new_state
subprocess.Popen(["/bin/bash", "-c", cmd2])

如何使用

  1. 将脚本复制到一个空文件中,另存为toggle_touchpad.py
  2. 通过运行(在终端中)以下命令进行测试运行:

    python3 /path/to/toggle_touchpad.py
    
  3. 如果一切正常,请将其添加到快捷键组合中:选择:系统设置>“键盘”>“快捷键”>“自定义快捷键”。单击“+”并添加命令:

    python3 /path/to/toggle_touchpad.py
    

现在快捷键应该可以打开/关闭触摸板

解释

通过以下键可以启用/禁用触摸板:

org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

获取当前状态:

gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

设置为enabled

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true

设置为disabled

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

笔记

1. 在自定义键盘快捷键中使用绝对路径

.desktop文件一样,相对路径~不能在自定义键盘快捷键中使用。此外,与终端命令一样,空格需要转义:

代替:

python3 ~/Keyboard\ shortcuts/toggle_touchpad.py

使用:

python3 /home/yourname/"Keyboard shortcuts"/toggle_touchpad.py

2. 使用 15.04 中的命令

由于一个错误(似乎),命令:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true 

工作正常,但是命令:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

需要运行两次(!!)才能禁用 触摸板……

3.脚本的Bash版本

bash对于那些由于某种原因而喜欢某个版本的人:

#!/bin/bash

key="org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled"
current=$(gsettings get $key)

if [ "$current" == "true" ]; then
  gsettings set $key false
else
  gsettings set $key true
fi

另存为toggle_touchpad.sh,使用命令运行

/bin/bash /path/to/toggle_touchpad.sh

编辑

上述脚本可用于切换任何通过命令设置gsettings类型boolean(false/true)。只需更改以下行:

key = "org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled"

按相应的键。

一个例子:

如果我将该行改为:

key = "com.canonical.indicator.sound visible"

它切换声音指示器图标的可见性。

答案2

来源:https://www.commandlinefu.com/commands/view/24256/toggle-the-touchpad-on-or-off

将命令放入脚本中:

#!/bin/bash

synclient TouchpadOff=$(synclient -l | grep -q 'TouchpadOff.*1'; echo $?)

此命令同样有效:

tp=$(synclient -l | grep TouchpadOff | awk '{ print $3 }') && tp=$((tp==0)) && synclient TouchpadOff=$tp

为创建快捷方式脚本路径. (首先使其成为可执行文件。)

相关内容