Comment puis-je voir le contenu d'une sauvegarde du fichier de base de données dconf?

20

J'ai pris une sauvegarde du fichier où ma dconfbase de données est stockée ( ~/.config/dconf/userqui est un fichier binaire), et maintenant je dois déplacer certaines clés de la sauvegarde vers celle dconfen cours d'utilisation.

Comment puis-je visualiser le contenu de la sauvegarde dconfsans le mettre "en place" et le visualiser par exemple dconf-editor?

PetaspeedBeaver
la source

Réponses:

25

Pour afficher le contenu de ce fichier, vous pouvez le renommer - par exemple test- le placer sous ~/.config/dconf/, puis dconflire / sauvegarder les paramètres de ce fichier.
Par défaut , dconflit le user-db trouvé dans $XDG_CONFIG_HOME/dconf/:

Une "user-db"ligne spécifie une base de données utilisateur.
Ces bases de données se trouvent dans $XDG_CONFIG_HOME/dconf/. Le nom du fichier à ouvrir dans ce répertoire est exactement comme il est écrit dans le profil. Ce fichier devrait être au format de base de données bcon dconf. Notez que XDG_CONFIG_HOMEcela ne peut pas être défini / modifié par terminal ou session, car alors l'écrivain et le lecteur travailleraient sur des bases de données différentes (l'écrivain est démarré par DBus et ne peut pas voir cette variable).

En conséquence, vous auriez besoin d'un profil personnalisé qui pointe vers ce fichier db particulier - par exemple user-db:test, puis demandez dconfde vider les données (en utilisant le profil personnalisé) via la DCONF_PROFILEvariable d'environnement:

cd
cp /path_to_backup_dconf/user ~/.config/dconf/test
printf %s\\n "user-db:test" > db_profile
DCONF_PROFILE=~/db_profile dconf dump / > old_settings

Le résultat est un fichier ( old_settings) contenant les paramètres de votre dconffichier sauvegardé , par exemple:

[org/gnome/desktop/interface]
font-name='DejaVu Sans Oblique 10'
document-font-name='DejaVu Sans Oblique 10'
gtk-im-module='gtk-im-context-simple'
clock-show-seconds=true
icon-theme='HighContrast'
monospace-font-name='DejaVu Sans Mono Oblique 10'

[org/gnome/desktop/input-sources]
sources=@a(ss) []
xkb-options=@as []

[org/gnome/desktop/wm/preferences]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

.......

Vous pouvez ensuite supprimer ces fichiers:

rm -f ~/db_profile ~/.config/dconf/test

et chargez les anciens paramètres dans la base de données actuelle:

dconf load / < old_settings

Si vous souhaitez sauvegarder uniquement des paramètres spécifiques, indiquez simplement le chemin:

DCONF_PROFILE=~/db_profile dconf dump /org/gnome/desktop/wm/preferences/
[/]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

mais notez que pour chaque chemin, vous devez avoir un fichier différent et lorsque vous le chargez, vous devez spécifier le chemin en conséquence:

dconf load /org/gnome/desktop/wm/preferences/ < old_wm_settings

Notez également qu'en raison de modifications en amont, les anciennes dconfbases de données peuvent contenir des chemins, des clés et des valeurs qui ne sont pas valides dans les versions plus récentes, de sorte que la compatibilité totale entre les fichiers db créés par différentes versions de dconfn'est pas toujours garantie. Dans ce cas, vous devrez inspecter le old_settingsfichier résultant et supprimer ou modifier manuellement les entrées non valides avant de le charger dans votre base de données actuelle.

don_crissti
la source
17
WTF? Qui est responsable de ce gâchis et qui devrait être battu à cause de cela? (Mais: Merci beaucoup pour ces informations, cela m'a aussi aidé.)
Tino
1
@Tino gnome devs je crois :) Mais il devrait y avoir des outils frontaux
Anwar
Les contributeurs sont affichés sur gitlab.gnome.org/GNOME/dconf/graphs/master
Ben Creasy
Je pense que la lecture n'est pas un problème. Définissez simplement XDG_CONFIG_HOMEun autre répertoire. Aucune magie de profil requise. Mais écrire dans un fichier dconf arbitraire est difficile et peut rendre votre astuce de profil nécessaire.
Torsten Bronger
-1

Je pense que la première réponse a trop compliqué la question, alors essayons à nouveau, en utilisant /org/cinnamon/comme exemple un espace de noms pour sauvegarder et restaurer:

Pour sauvegarder / org / cannelle /:

Depuis un terminal, exécutez:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

enregistrez le backup_of_my_cinnamon_settingsfichier quelque part pour plus tard

Pour réinitialiser / org / cannelle / aux valeurs par défaut:

dconf reset -f /org/cinnamon/

Remarque, la cannelle peut geler ou planter ce faisant

Pour restaurer tous vos paramètres pour / org / cannelle:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


Le processus serait le même pour /org/gnome/terminal/, etc.

Pour de meilleurs résultats, mettez à jour les références des applications lorsqu'elles ne sont pas en cours d'exécution.

Merci à Cinnamon docs pour les conseils.

Mark Stosberg
la source
3
Je pense que vous devriez réessayer: la question ici n'est pas de savoir comment sauvegarder et restaurer certains paramètres, mais comment afficher (et peut-être charger ) les paramètres à partir d'un fichier binaire enregistré.
don_crissti