我正在使用 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])
如何使用
- 将脚本复制到一个空文件中,另存为
toggle_touchpad.py
通过运行(在终端中)以下命令进行测试运行:
python3 /path/to/toggle_touchpad.py
如果一切正常,请将其添加到快捷键组合中:选择:系统设置>“键盘”>“快捷键”>“自定义快捷键”。单击“+”并添加命令:
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
为创建快捷方式脚本路径. (首先使其成为可执行文件。)