Ich würde gerne den Standardwert eines dconf/gsettings-Schlüssels wissen.
Meine Frage ist eine Fortsetzung der folgenden Frage:
Woher bekomme ich eine Liste von SCHEMA / PATH / KEY zur Verwendung mit gsettings?
Was ich versuche, also ein Skript zu erstellen, das alle meine persönlichen Einstellungen liest, damit ich sie sichern und wiederherstellen kann. Ich plane, alle Schlüssel wie das obige Skript zu durchlaufen, zu sehen, welche Schlüssel von ihrem Standardwert geändert wurden, und diese zu notieren, die später wiederhergestellt werden können.
Ich sehe, dass der dconf-Editor den Standardwert der Schlüssel anzeigt, aber ich würde dies sehr gerne skripten. Außerdem sehe ich nicht, wie das Parsen der Schemas /usr/share/glib-2.0/schemas/ automatisiert werden kann. Vielleicht kann jemand helfen?
gsettings get-default|list-defaults wäre schön =)
(Mensch, früher war es viel einfacher, als Sie Ihre ~/.somethingrc in Subversion gehalten haben … =
Basierend auf der unten gegebenen Antwort, Ich habe das Skript aktualisiert, um Schema, Schlüssel, Datentyp des Schlüssels und Standardwert auszugeben , und aktueller Wert:
#!/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
Diese Problemumgehung deckt im Wesentlichen das ab, was ich brauche. Ich werde von hier aus weiter am Backup-Skript arbeiten.
Akzeptierte Antwort:
Es scheint keinen netten Weg zu geben, direkt zu den Standardwerten zu gelangen, aber da der Client XDG_CONFIG_HOME in der Umgebung überprüft, könnte ein anständiger Workaround sein, um Werte aus einer neuen Konfiguration zu erhalten:
XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY