我想创建一个键盘快捷键来切换单元启动器的自动隐藏选项。根据如何以编程方式更改启动器的隐藏行为我尝试编写一个 Python 脚本来完成这项工作。然后我应该弄清楚如何使用键盘快捷键来运行它。
我的脚本如下所示:
#!/bin/python
AUTOHIDE=$(dconf read /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode)
if (AUTOHIDE==1):
dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 0
else:
dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 1
但是从终端运行脚本(执行 'python scriptname.py' )不起作用。我在 $ 符号处收到“语法无效”错误。
您必须知道我几乎对 Python 一无所知(或者一般来说不懂如何编写脚本)。(我刚刚花了几个小时在网上搜索帮助和示例)。
实际问题是:
- 我做错了什么?
- 我是否选择了一种复杂的方法?在这种情况下我该如何更轻松地做到这一点?
答案1
如果你想用 Pythonic 方式来做。
#!/bin/python
import subprocess
AUTOHIDE = subprocess.check_output (["/usr/bin/dconf", "read", "/org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode"])
if (AUTOHIDE==1):
subprocess.call (["/usr/bin/dconf", "write", "/org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode", "0"])
else:
subprocess.call (["/usr/bin/dconf", "write", "/org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode", "1"])
您必须通过创建子进程来执行程序。
这是 bash 脚本版本
#!/bin/bash
AUTOHIDE=$(dconf read /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode)
if [[ $AUTOHIDE -eq 1 ]]
then
dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 0
else
dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 1
fi
快捷方式可以像这样分配这。
答案2
一种简单的方法是创建自定义快捷方式。
访问系统设置>键盘>快捷键>自定义快捷键然后单击“+”添加新快捷键,并在命令框中粘贴:
dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 0
这将创建一个显示启动器的快捷方式。现在要隐藏启动器,您应该创建另一个快捷方式并添加以下命令:
dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 1
当然,现在每个功能都有一个命令,但我将它们并排放在一起,发现非常直观。
答案3
对于 Unity 2D,dconf 行应该是
/com/canonical/unity-2d/launcher/hide-mode
还有第三种模式“Intellihide”,其值为 2。