web-dev-qa-db-ja.com

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

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

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

12
Zta

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

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY
11
Jason Conti

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

バックアップ

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

gsettings list-recursively > backup

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

戻す

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

1
demel