Come posso eseguire lo script delle impostazioni effettuate da gnome-tweak-tool?


14

Mi piace essere in grado di configurare le cose dalla riga di comando, in modo che quando reinstallo il sistema operativo posso solo eseguire uno script e ripristinare la mia configurazione preferita.

Da quando "ho aggiornato" a Ubuntu 17.10, ho scoperto che dovevo usare gnome-tweak-tool per ottenere alcune impostazioni nel modo desiderato.

Una volta trovata un'impostazione nella GUI di gnome-tweak-tool, come posso capire la sua traduzione tramite script?

Ad esempio le seguenti righe di gsettings corrispondono alle voci pertinenti nella schermata dello strumento gnome-tweak di seguito ...

gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"

schermata da gnome-tweak-tool ... ma come si può immaginare? E come potrei, ad esempio, capire dove ottenere le impostazioni corrispondenti per i suggerimenti e l'antialias?


1
TBH Ho sempre fatto ricorso al gregge nello spazio dei tasti, ad esempio gsettings list-recursively | grep -e alias -e hint- mi piacerebbe sapere se c'è un modo migliore
Steeldriver,

Oltre a sfogliare il codice sorgente o dconf-editor (o gsettings direttamente, come @steeldriver), nessuno può fare molto.
Muru,

Risposte:


22

Scopri facilmente cosa viene impostato

Invece di cercare in un'intera directory di opzioni:

  1. Apri una finestra del terminale
  2. Esegui il comando:

    dconf watch /
  3. Apporta le modifiche e vedi cosa mostra il terminale:

    inserisci qui la descrizione dell'immagine

    ... ed eccoti qui.

Dconf & gsettings

Nell'esempio, vedi l'output di dconf. Gsettings è il cliente di dconf. Molte volte, è possibile utilizzare sia un dconfcomando che un gsettingscomando. In questo caso:

dconf write /org/gnome/desktop/background/show-desktop-icons false

o:

gsettings set org.gnome.desktop.background show-desktop-icons false

Se esiste tuttavia la chiave gsettings, quest'ultima è considerata una procedura consigliata per proteggere l'integrità del dconfdatabase.

Vedi anche qui e qui .


Questo è geniale, grazie. Piccole domande: (1) come faccio a sapere "se esiste la chiave gsettings"? (2) Qual è il punto di due interfacce della riga di comando che sono a tutti gli effetti identici all'utente? (3) qual è la differenza tra il primo e il terzo del tuo "qui"? Mi sembrano la stessa pagina.
st01,

@ st01 Per (1) puoi eseguire sinply il comando gsettings, vedere se fa il lavoro, o controllare nell'editor dconf (non installato di default, ma un ottimo strumento) se esiste la chiave gsettings (anche). (2) gsettings è il frontend cli per modificare il database dconf. Gsettings controlla anche l'integrità del database ed è quindi preferibile modificare direttamente il database dconf. Poiché gsettings è di livello superiore, è comunque più lento. (3) Ah, è sciocco :), hai ragione. Modifica
Jacob Vlijm il

@JacobVlijm grazie mille! Mi hai salvato la vita!!
Marslo,

8

Per la maggior parte delle impostazioni è possibile utilizzare questo approccio:

  • Esporta l'elenco di gsettingsin un file temporaneo:

    gsettings list-recursively > /tmp/gsettings.before
  • Apporta le modifiche di gnome-tweak-tool(o unity-control-center);

  • Esporta l'elenco di gsettingsin un altro file temporaneo:

    gsettings list-recursively > /tmp/gsettings.after
  • Confrontare i due file ( .Before e .after ) e ottenere le differenze:

    diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

    Oppure confronta e ottieni solo i nuovi valori ( fonte ):

    diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'

    Oppure confronta e ottieni solo i nuovi valori, ma sostituisci l'inizio delle righe con gsettings setper preparare un elenco di comandi, che il freddo deve essere memorizzato direttamente nel tuo file di script ( sorgente ):

    diff /tmp/gsettings.before /tmp/gsettings.after | sed 's/>/gsettings set/;tx;d;:x'

Puoi eseguire tutti questi comandi da una riga (oppure puoi creare uno script per automatizzare il processo):

gsettings list-recursively > /tmp/gsettings.before; gnome-tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

La prossima demo viene creata in Ubuntu 16.04. Penso che l'approccio dovrebbe funzionare anche entro le 17.10:

inserisci qui la descrizione dell'immagine


Aggiornamento: ho appena trovato un modo semplice in Ubuntu 17.10:

inserisci qui la descrizione dell'immagine


1
Molto utile, grazie, non sapevo che potresti scaricare tutte le impostazioni in questo modo.
st01,

1
Questo è fantastico, grazie mille! Ora posso ripristinare la mia vecchia configurazione quando faccio casino in gsettings.
Nicholas Stommel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.