web-dev-qa-db-fra.com

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

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, créez un script qui lit toutes mes préférences personnelles afin de pouvoir les sauvegarder et les restaurer. J'ai l'intention d'itérer cependant toutes les clés, comme le script ci-dessus, pour voir quelles clés ont été modifiées par rapport à leur valeur par défaut et en prendre note, ce qui peut être restauré ultérieurement.

Je vois que dconf-editor affiche la valeur par défaut des clés, mais j'aimerais beaucoup écrire un script pour cela. En outre, je ne vois pas comment l'analyse des schémas /usr/share/glib-2.0/schemas/ peut être automatisée. Peut-être que quelqu'un peut aider?

gsettings get-default | list-default serait Nice =)

(Geesh, c’était beaucoup plus facile dans le passé où vous gardiez votre ~ /. Quelque chose dans Subversion ... = \


Basé sur 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é, valeur par défaut et 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.

12
Zta

Il ne semble pas y avoir de moyen intéressant d’obtenir directement les valeurs par défaut, mais puisque le client vérifie XDG_CONFIG_HOME dans l’environnement, une solution de contournement décente pour obtenir les valeurs d’une nouvelle configuration pourrait être:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
11
Jason Conti

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

Sauvegarde

Vous pouvez sauvegarder vos paramètres avec

gsettings list-recursively > backup

Ceci écrit toutes les clés dans le fichier sauvegarde dans votre dossier personnel.

Restaurer

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

1
demel