web-dev-qa-db-fra.com

Comment ajouter / supprimer des applications depuis / en ligne dans Unity Launcher?

Je personnalise un Live CD Ubuntu 14.04 avec UCK (Kit de personnalisation Ubuntu). Le programme vous donne un environnement chroot dans un terminal pour apporter des modifications.

Je veux ajouter et supprimer quels programmes apparaissent sur le dock.

Je ne sais pas si cela peut être accompli en modifiant le fichier .desktop?

Comment cela peut-il être fait en utilisant le terminal?

6
Aaron Salyer

Le script ci-dessous peut être utilisé pour ajouter ou supprimer des éléments dans le programme de lancement, en fonction du ou des arguments:

#!/usr/bin/env python3

import subprocess
import sys

desktopfile = sys.argv[1]

def current_launcher():
    get_current = subprocess.check_output(["gsettings", "get", "com.canonical.Unity.Launcher", "favorites"]).decode("utf-8")
    return eval(get_current)

def set_launcher(desktopfile):
    curr_launcher = current_launcher()
    last = [i for i, x in enumerate(curr_launcher) if x.startswith("application://")][-1]
    new_icon = "application://"+desktopfile
    if sys.argv[2] == "a":
        if not new_icon in curr_launcher:
            curr_launcher.insert(last, new_icon)
            subprocess.Popen(["gsettings", "set", "com.canonical.Unity.Launcher","favorites",str(curr_launcher)])
    Elif sys.argv[2] == "r":
        curr_launcher.remove(new_icon)
        subprocess.Popen(["gsettings", "set", "com.canonical.Unity.Launcher","favorites",str(curr_launcher)])

set_launcher(desktopfile)

Comment l'exécuter

  1. Collez le code dans un fichier vide, enregistrez-le sous le nom set_launcher.py
  2. Exécutez-le à l'aide de la commande:

    python3 /path/to/set_launcher.py <name_of_.desktop_file> a
    

    pour ajouter une icône, ou:

    python3 /path/to/set_launcher.py <name_of_.desktop_file> r
    

    supprimer une icône

    Exemple:

    python3 /path/to/set_launcher.py gedit.desktop a
    

    ajouter gedit au lanceur, ou

    python3 /path/to/set_launcher.py gedit.desktop r
    

    supprimer gedit du lanceur

Explication

La liste des icônes du lanceur est définie dans la clé:

com.canonical.Unity.Launcher favorites

et peut être récupéré par la commande:

gsettings get com.canonical.Unity.Launcher favorites

to set une liste alternative (étant donné que vous utilisez le bon format):

gsettings set com.canonical.Unity.Launcher favorites "[item1, item2, etc]"

Pouvez-vous y parvenir en modifiant un fichier .desktop?

Non, cela n'a rien à voir avec le fichier lui-même. Ce qui compte, c’est que le fichier soit dans la liste des favoris du lanceur ou non.

La modification de cette liste à partir de la ligne de commande est exactement ce que fait le script.

4
Jacob Vlijm