Comment ajouter / supprimer des applications vers / depuis le lanceur Unity à partir de la ligne de commande?

Apr 19 2015

Je personnalise un CD Ubuntu 14.04 Live avec UCK (Ubuntu Customization Kit). Le programme vous donne un environnement chroot dans un terminal pour faire des changements.

Je veux ajouter et supprimer les programmes qui apparaissent sur le dock.

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

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

Réponses

5 JacobVlijm Apr 19 2015 at 09:43

Le script ci-dessous peut être utilisé pour ajouter ou supprimer des éléments dans le lanceur, 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 set_launcher.py
  2. Exécutez-le par 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
    

    pour supprimer une icône

    Exemple:

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

    à ajouter geditau lanceur, ou

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

    à supprimer geditdu 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

pour définir une liste alternative (étant donné que vous utilisez le format correct):

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

Pouvez-vous y parvenir en éditant un .desktopfichier?

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.

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