Jak dodawać / usuwać aplikacje do / z Unity Launchera z wiersza poleceń?

Apr 19 2015

Dostosowuję Live CD Ubuntu 14.04 za pomocą UCK (Ubuntu Customization Kit). Program zapewnia środowisko chroot w terminalu do wprowadzania zmian.

Chcę dodawać i usuwać programy, które pojawiają się w Docku.

Nie jestem pewien, czy można to osiągnąć, modyfikując .desktopplik?

Jak można to zrobić za pomocą terminala?

Odpowiedzi

5 JacobVlijm Apr 19 2015 at 09:43

Poniższy skrypt może służyć do dodawania lub usuwania elementów do programu uruchamiającego, w zależności od argumentów:

#!/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)

Jak to uruchomić

  1. Wklej kod do pustego pliku, zapisz go jako set_launcher.py
  2. Uruchom go poleceniem:

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

    aby dodać ikonę lub:

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

    aby usunąć ikonę

    Przykład:

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

    dodać geditdo programu uruchamiającego lub

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

    usunąć geditz programu uruchamiającego

Wyjaśnienie

Lista ikon programu uruchamiającego jest zdefiniowana w kluczu:

com.canonical.Unity.Launcher favorites

i można je pobrać poleceniem:

gsettings get com.canonical.Unity.Launcher favorites

aby ustawić alternatywną listę (biorąc pod uwagę fakt, że używasz prawidłowego formatu):

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

Czy możesz to osiągnąć edytując .desktopplik?

Nie, nie ma to nic wspólnego z samym plikiem. Liczy się to, że plik znajduje się na liście ulubionych programu uruchamiającego lub nie.

Edycja tej listy z wiersza poleceń jest dokładnie tym, co robi skrypt.