为了自动配置全新安装,我需要一种方法来从启动器栏解锁默认应用程序。不知道这些信息存储在哪里,也许编辑/替换文件是最简单的方法。
答案1
获取当前启动器图标的命令是:
gsettings get com.canonical.Unity.Launcher favorites
这将给你如下列表:
['item_1', 'item_2', 'application://application_to_remove.desktop', 'etc']
如果你从列表中删除你的物品,并且放通过以下命令修改列表的版本:
gsettings set com.canonical.Unity.Launcher favorites "['item_1', 'item_2', 'etc']"
(mind the double quotes)
您的应用程序已从启动器解锁。
示例脚本
作为如何通过(python)脚本完成该作业的示例:
#!/usr/bin/env python3
import subprocess
import sys
key = "com.canonical.Unity.Launcher"
desktopfile = sys.argv[1]
curr_launcher = eval(subprocess.check_output([
"gsettings", "get", key, "favorites"
]).decode("utf-8"))
new_launcher = [item for item in curr_launcher if not desktopfile in item]
subprocess.Popen(["gsettings", "set", key,"favorites",str(new_launcher)])
如何使用
- 将脚本粘贴到空文件中,另存为
remove_fromlauncher.py
通过命令运行
python3 /path/to/remove_fromlauncher.py <application.desktop>
或更短:
python3 /path/to/remove_fromlauncher.py <application>
删除 Virtualbox 的示例:
python3 /path/to/remove_fromlauncher.py virtualbox.desktop
笔记
请记住,您不能简单地删除全部列表中的项目;其中还包括非应用程序的项目。
编辑
一次删除多个图标的脚本版本:
#!/usr/bin/env python3
import subprocess
import sys
key = "com.canonical.Unity.Launcher"
desktopfiles = sys.argv[1:]
for desktopfile in desktopfiles:
curr_launcher = eval(subprocess.check_output([
"gsettings", "get", key, "favorites"
]).decode("utf-8"))
new_launcher = [item for item in curr_launcher if not desktopfile in item]
subprocess.Popen(["gsettings", "set", key,"favorites",str(new_launcher)])
用法几乎相同,但现在您可以一次使用多个参数,例如:
python3 /path/to/remove_fromlauncher.py gedit thunderbird
将从启动器中删除和Thunderbird
。Gedit