Comment ajouter / supprimer des applications vers / depuis le lanceur Unity à partir de la ligne de commande?
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
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
- Collez le code dans un fichier vide, enregistrez-le sous
set_launcher.py Exécutez-le par la commande:
python3 /path/to/set_launcher.py <name_of_.desktop_file> apour ajouter une icône, ou:
python3 /path/to/set_launcher.py <name_of_.desktop_file> rpour supprimer une icône
Exemple:
python3 /path/to/set_launcher.py gedit.desktop aà ajouter
geditau lanceur, oupython3 /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.