Unity Launcher'a / dan uygulamaları komut satırından nasıl ekler / kaldırırsınız?
Ubuntu 14.04 Live CD'sini UCK (Ubuntu Customization Kit) ile özelleştiriyorum. Program size bir terminalde değişiklik yapabileceğiniz bir chroot ortamı sunar.
Dock'ta görünen programları eklemek ve kaldırmak istiyorum.
.desktopDosyayı değiştirerek bunun gerçekleştirilip gerçekleştirilemeyeceğinden emin değilim.
Bu, terminal kullanılarak nasıl yapılabilir?
Yanıtlar
Aşağıdaki komut dosyası, bağımsız değişkenlere bağlı olarak başlatıcıya öğe eklemek veya kaldırmak için kullanılabilir:
#!/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)
Nasıl çalıştırılır
- Kodu boş bir dosyaya yapıştırın, farklı kaydedin
set_launcher.py Komutla çalıştırın:
python3 /path/to/set_launcher.py <name_of_.desktop_file> abir simge eklemek için veya:
python3 /path/to/set_launcher.py <name_of_.desktop_file> rbir simgeyi kaldırmak için
Misal:
python3 /path/to/set_launcher.py gedit.desktop ageditbaşlatıcıya eklemek için veyapython3 /path/to/set_launcher.py gedit.desktop rgeditbaşlatıcıdan kaldırmak için
Açıklama
Başlatıcı simgelerinin listesi anahtarda tanımlanmıştır:
com.canonical.Unity.Launcher favorites
ve şu komutla getirilebilir:
gsettings get com.canonical.Unity.Launcher favorites
için ayarlanmış alternatif bir liste (Doğru biçimi kullanın önüne alındığında):
gsettings set com.canonical.Unity.Launcher favorites "[item1, item2, etc]"
Bunu bir .desktopdosyayı düzenleyerek başarabilir misiniz ?
Hayır, dosyanın kendisiyle ilgisi yok. Önemli olan, dosyanın başlatıcı favorileri listesinde olup olmamasıdır.
Bu listeyi komut satırından düzenlemek, komut dosyasının yaptığı şeydir.