dconfまたはgsettingsでデフォルトのキー値を読み取る方法は?


13

dconf / gsettingsキーのデフォルト値を知りたい。

私の質問は以下の質問のフォローアップです: gsettingsで使用するSCHEMA / PATH / KEYのリストはどこで入手できますか?

私がやろうとしていることなので、個人的な好みをすべて読み取るスクリプトを作成して、バックアップして復元できるようにします。上記のスクリプトのように、すべてのキーを繰り返し処理して、デフォルト値から変更されたキーを確認し、後で復元できるようにこれらのメモを作成する予定です。

dconf-editorにキーのデフォルト値が表示されているのがわかりますが、スクリプトを作成したいです。また、スキーマ/usr/share/glib-2.0/schemas/の解析を自動化できる方法がわかりません。たぶん誰かが助けることができますか?

gsettings get-default | list-defaults nice =)

(Geesh、〜/ .somethingrcをsubversionに保存していた昔の方がずっと簡単だった... = \


以下の回答に基づいて、スキーマ、キー、キーのデータ型、デフォルト値、および実際の値を出力するようにスクリプトを更新しました。

#!/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

この回避策は基本的に必要なものをカバーしています。ここからバックアップスクリプトの作業を続けます。


他の誰かがキーをデフォルト値にリセットする方法を探してここに来たなら、それgsettings reset KEYが道です。
アンドレアス・ストルヴィク・ストラウマン

回答:


11

デフォルト値を直接取得する良い方法はないようですが、クライアントは環境でXDG_CONFIG_HOMEをチェックするため、新しい構成から値を取得するための適切な回避策は次のとおりです。

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

設定のバックアップと復元に関心がある場合(この場合、質問のタイトルを変更する必要があります)。

バックアップ

設定をバックアップできます

gsettings list-recursively > backup

これにより、すべてのキーがHome-Folderのファイルバックアップに書き込まれます。

戻す

私の知る限り、ファイルをdconfにインポートする直接的なオプションはありません。バックアップファイルを1行ずつ読み取り、実行gsettings set <input line from backup>して設定を復元するルーチンを作成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.