Comment lire la valeur de clé par défaut avec dconf ou gsettings?

13

Je voudrais connaître la valeur par défaut d'une clé dconf / gsettings.

Ma question fait suite à la question ci-dessous: Où puis-je obtenir une liste de SCHEMA / PATH / KEY à utiliser avec gsettings?

Ce que j'essaie de faire, alors créez un script qui lit toutes mes préférences personnelles afin que je puisse les sauvegarder et les restaurer. Je prévois d'itérer si toutes les clés, comme le script ci-dessus, voient quelles clés ont été modifiées par rapport à leur valeur par défaut, et notez-les, qui peuvent être restaurées plus tard.

Je vois que dconf-editor affiche la valeur par défaut des touches, mais j'aimerais beaucoup l'écrire. De plus, je ne vois pas comment analyser les schémas /usr/share/glib-2.0/schemas/ peut être automatisé. Peut-être que quelqu'un peut aider?

gsettings get-default | list-defaults serait bien =)

(Geesh, c'était beaucoup plus facile dans l'ancien temps où vous gardiez simplement votre ~ / .somethingrc en subversion ... = \


Sur la base de la réponse donnée ci-dessous, j'ai mis à jour le script pour imprimer le schéma, la clé, le type de données de la clé, la valeur par défaut et la valeur réelle:

#!/bin/bash

for schema in $(gsettings list-schemas | sort); do
    for key in $(gsettings list-keys $schema | sort); do
        type="$(gsettings range $schema $key | tr "\n" " ")"
        default="$(XDG_CONFIG_HOME=/tmp/ gsettings get $schema $key | tr "\n" " ")"
        value="$(gsettings get $schema $key | tr "\n" " ")"
        echo "$schema :: $key :: $type :: $default :: $value"
    done
done

Cette solution de contournement couvre essentiellement ce dont j'ai besoin. Je vais continuer à travailler sur le script de sauvegarde à partir d'ici.

Zta
la source
Si quelqu'un d'autre est également venu ici pour savoir comment réinitialiser une clé à sa valeur par défaut, alors gsettings reset KEYc'est le chemin à parcourir.
Andreas Storvik Strauman

Réponses:

11

Il ne semble pas y avoir une bonne façon d'obtenir directement les valeurs par défaut, mais comme le client vérifie XDG_CONFIG_HOME dans l'environnement, une solution de contournement décente pour obtenir les valeurs d'une nouvelle configuration peut être:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
Jason Conti
la source
1

Si vous souhaitez sauvegarder et restaurer vos paramètres (dans ce cas, vous devez modifier le titre de votre question).

Sauvegarde

Vous pouvez sauvegarder vos paramètres avec

gsettings list-recursively > backup

Cela écrit toutes les clés de la sauvegarde de fichiers dans votre dossier personnel.

Restaurer

Autant que je sache, il n'y a pas d'option directe pour réimporter le fichier dans dconf. Vous pourriez peut-être écrire une routine qui lit le fichier de sauvegarde ligne par ligne et s'exécute gsettings set <input line from backup>pour restaurer vos paramètres.

démel
la source