通过命令行从启动器解锁应用程序

通过命令行从启动器解锁应用程序

为了自动配置全新安装,我需要一种方法来从启动器栏解锁默认应用程序。不知道这些信息存储在哪里,也许编辑/替换文件是最简单的方法。

答案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

将从启动器中删除和ThunderbirdGedit

相关内容