Jak dodawać / usuwać aplikacje do / z Unity Launchera z wiersza poleceń?
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
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ć
- Wklej kod do pustego pliku, zapisz go jako
set_launcher.py Uruchom go poleceniem:
python3 /path/to/set_launcher.py <name_of_.desktop_file> aaby dodać ikonę lub:
python3 /path/to/set_launcher.py <name_of_.desktop_file> raby usunąć ikonę
Przykład:
python3 /path/to/set_launcher.py gedit.desktop adodać
geditdo programu uruchamiającego lubpython3 /path/to/set_launcher.py gedit.desktop rusunąć
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.