Comment puis-je script les paramètres définis par gnome-tweak-tool?


15

J'aime pouvoir configurer des choses à partir de la ligne de commande, de sorte que lorsque je réinstalle le système d'exploitation, je puisse simplement exécuter un script et récupérer ma configuration préférée.

Depuis la "mise à niveau" vers Ubuntu 17.10, j'ai découvert que je devais utiliser gnome-tweak-tool pour obtenir certains paramètres comme je les souhaitais.

Une fois que j'ai trouvé un paramètre dans l'interface graphique de gnome-tweak-tool, comment puis-je trouver sa traduction scriptable?

Par exemple, les lignes de configuration suivantes correspondent aux entrées pertinentes dans la capture d'écran de l'outil gnome-tweak ci-dessous ...

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"

capture d'écran de gnome-tweak-tool ... mais comment pourrait-on deviner cela? Et comment pourrais-je, par exemple, déterminer où obtenir les paramètres correspondants pour les indications et l'anticrénelage?


1
TBH J'ai toujours recouru à saluer l'espace des touches, par exemple gsettings list-recursively | grep -e alias -e hint- j'aimerais savoir s'il y a une meilleure façon
Steeldriver

À part parcourir le code source ou l'éditeur dconf (ou directement gsettings, comme @steeldriver), personne ne peut faire grand-chose.
muru

Réponses:


23

Découvrez facilement ce qui est défini

Au lieu de rechercher dans tout un répertoire d'options:

  1. Ouvrez une fenêtre de terminal
  2. Exécutez la commande:

    dconf watch /
  3. Apportez vos modifications et voyez ce que le terminal affiche:

    entrez la description de l'image ici

    ... et vous y êtes.

Dconf & gsettings

Dans l'exemple, vous voyez la sortie de dconf. Gsettings est l'interface client de dconf. Plusieurs fois, vous pouvez utiliser à la fois une dconfcommande ou une gsettingscommande. Dans ce cas, soit:

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

ou:

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

Si la clé gsettings existe cependant, cette dernière est considérée comme une meilleure pratique, pour protéger l'intégrité de votre dconfbase de données.

Voir aussi ici et ici .


C'est génial, merci. Petites questions: (1) comment savoir "si la clé gsettings existe"? (2) Quel est l'intérêt de deux interfaces de ligne de commande qui sont à toutes fins utiles identiques à l'utilisateur? (3) quelle est la différence entre le premier et le troisième de votre "ici"? Ils ressemblent à la même page pour moi.
st01

@ st01 Pour (1), vous pouvez soit exécuter la commande gsettings, voir s'il fait le travail, soit vérifier dans l'éditeur dconf (non installé par défaut, mais un excellent outil) si la clé gsettings existe (également). (2) gsettings est le frontend cli pour éditer la base de données dconf. Gsettings vérifie également l'intégrité de la base de données et est donc préférable à l'édition directe de la base de données dconf. Étant donné que gsettings est de niveau supérieur, il est cependant plus lent. (3), Ah, c'est idiot :), vous avez raison. Éditera
Jacob Vlijm

@JacobVlijm merci beaucoup! Tu m'as sauvé la vie!!
Marslo

8

Pour la plupart des paramètres, vous pouvez utiliser cette approche:

  • Exportez la liste de gsettingsdans un fichier temporaire:

    gsettings list-recursively > /tmp/gsettings.before
  • Apportez vos modifications par gnome-tweak-tool(ou unity-control-center);

  • Exportez la liste de gsettingsdans un autre fichier temporaire:

    gsettings list-recursively > /tmp/gsettings.after
  • Comparez les deux fichiers ( .before et .after ) et obtenez les différences:

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

    Ou comparez et obtenez uniquement les nouvelles valeurs ( source ):

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

    Ou comparez et obtenez uniquement les nouvelles valeurs, mais remplacez le début des lignes par gsettings setpour préparer une liste de commandes, qui seront stockées à froid directement dans votre fichier de script ( source ):

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

Vous pouvez exécuter toutes ces commandes à partir d'une seule ligne (ou vous pouvez créer un script pour automatiser le processus):

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

La prochaine démo est créée dans Ubuntu 16.04. Je pense que l'approche fonctionnera également dans 17.10:

entrez la description de l'image ici


Mise à jour: Je viens de trouver un moyen simple dans Ubuntu 17.10:

entrez la description de l'image ici


1
Très utile, merci, je ne savais pas que vous pouviez vider tous les paramètres comme celui-ci.
st01

1
C'est superbe, merci beaucoup! Maintenant, je peux restaurer mon ancienne configuration lorsque je déconne dans les paramètres.
Nicholas Stommel
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.