Ho scritto uno script di installazione che automatizza il mio processo di installazione. Successivamente vorrei riorganizzare/aggiungere/rimuovere le icone nell'utilità di avvio dell'unità.
Usando dconf watch /
Posso vedere l'output mentre riordino le icone. C'è un modo da riga di comando per farlo, possibilmente con gsettings
?
Risposta accettata:
Introduzione
Il semplice script di seguito consente di prendere un file come argomento e imposta il programma di avvio in modo che abbia qualsiasi collegamento ai programmi visualizzato nel file (uno per riga).
L'idea di base è che le icone di avvio siano in realtà collegamenti a .desktop
file (ovunque possano apparire) e il metodo canonico per impostare gli elementi di avvio è eseguire il comando seguente:
gsettings set com.canonical.Unity.Launcher favorites "[ 'item1.desktop' , 'item2.desktop' , . . . 'item3.desktop; ]"
Questo può diventare noioso se vuoi aggiungere molti elementi e citare può diventare una seccatura. Si può sempre aprire un programma desiderato e fare clic con il pulsante destro del mouse sull'icona per invocare l'opzione "Blocca su launcher", ma anche questo non è pratico quando si ha a che fare con una grande quantità di elementi.
L'approccio adottato qui è semplicemente leggere un file, con 1 volta per riga, creare il testo del comando ed eseguirlo. Questo non è diverso dall'esecuzione del gsettings set
comando sopra, tranne per il fatto che il duro lavoro è fatto per te.
Utilizzo:
Per eseguire lo script, salvalo in un file, rendilo eseguibile con chmod +x /path/to/script
ed esegui come
python /path/to/script /path/to/file
Il file di input dovrebbe contenere il percorso completo degli elementi che desideri aggiungere al programma di avvio, come /usr/share/applications/firefox.desktop
, ma non è necessario, una riga con firefox.desktop
va bene anche.
Dimostrazione
Prima di eseguire lo script
Dopo aver eseguito lo script
Nota che l'ordine è esattamente lo stesso delle voci che appaiono nel file di input
Sorgente script
#!/usr/bin/env python
# Author: Serg Kolo
# Date: April 22, 2016
# Purpose: programmatically set Unity launcher items
# by reading a file
# Written for: http://askubuntu.com/q/760895/295286
# Tested on: Ubuntu 14.04 LTS
import sys
import subprocess
command="""gsettings set com.canonical.Unity.Launcher favorites """
def run_command(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
output = p.stdout.read().strip()
return output
items=""
with open(sys.argv[1]) as file:
for line in file:
temp = "'" + line.strip().split('/')[-1] + "'"
items = ",".join([items,temp])
items = '"[ ' + items[1:] + ' ]"'
print run_command(command + " " + items)