Wie lese ich den Standardschlüsselwert mit dconf oder gsettings?

13

Ich möchte den Standardwert eines Schlüssels dconf / gsettings kennen.

Meine Frage folgt der folgenden Frage: Wo kann ich eine Liste von SCHEMA / PATH / KEY zur Verwendung mit gsettings erhalten?

Was ich versuche, so erstellen Sie ein Skript, das alle meine persönlichen Einstellungen liest, damit ich sie sichern und wiederherstellen kann. Ich habe vor, alle Schlüssel wie das obige Skript zu iterieren, um festzustellen, 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 das sehr gerne als Skript ausführen. Außerdem sehe ich nicht, wie das Parsen der Schemata /usr/share/glib-2.0/schemas/ automatisiert werden kann. Vielleicht kann jemand helfen?

gsettings get-default | list-defaults wäre nett =)

(Meine Güte, früher war es viel einfacher, als du gerade deine ~ / .somethingrc in Subversion gehalten hast ... = \


Basierend auf der unten gegebenen Antwort habe ich das Skript aktualisiert, um Schema, Schlüssel, Schlüsseldatentyp, Standardwert und tatsächlichen Wert zu drucken :

#!/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 Grunde das ab, was ich brauche. Ich werde von hier aus weiter an dem Backup-Scrip arbeiten.

Zta
quelle

Antworten:

11

Es scheint keine gute Möglichkeit zu geben, direkt auf die Standardwerte zuzugreifen. Da der Client jedoch XDG_CONFIG_HOME in der Umgebung überprüft, kann eine anständige Problemumgehung zum Abrufen von Werten aus einer neuen Konfiguration folgendermaßen aussehen:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
Jason Conti
quelle
1

Wenn Sie Ihre Einstellungen sichern und wiederherstellen möchten (in diesem Fall sollten Sie den Titel Ihrer Frage ändern).

Backup

Sie können Ihre Einstellungen mit sichern

gsettings list-recursively > backup

Dadurch werden alle Schlüssel zur Dateisicherung in Ihren Home-Ordner geschrieben.

Wiederherstellen

Soweit ich weiß, gibt es keine direkte Möglichkeit, die Datei wieder in dconf zu importieren. Vielleicht könnten Sie eine Routine schreiben, die die Sicherungsdatei zeilenweise liest und ausführt gsettings set <input line from backup>, um Ihre Einstellungen wiederherzustellen.

demel
quelle