web-dev-qa-db-ja.com

GNOME設定をファイルに保存する方法は?

my configuration をGitリポジトリに保存して、後で簡単に復元できるようにします。

最近、私はgsettingsコマンドでGNOME設定を変更する必要がある issue につまずいた。

これらの設定を、GNOMEが予期する事前定義された場所にシンボリックリンクまたはコピーできるファイルに保存する方法はありますか? gsettingsを呼び出すためのスクリプトを記述する必要のないメソッドを好みます。

6
Morgan Courbet

GNOME設定は通常、DConf仕様の実装であるGSettings APIを介して保存されます。これにより、設定がバイナリデータベースに保存されます。バイナリデータベースはログイン中に置き換えられません。

代わりに、設定をエクスポートしてから再度ロードする必要があります。

dconf dump / > dconf-settings.iniを使用して設定をINIファイルにダンプし、cat dconf-settings.ini > dconf load /を使用してそれらの設定を再度読み込むことができます。/を特定のものに置き換えることができますダンプおよびロードされる設定を制限するパス。詳細については、man dconfを参照してください。

パス全体ではなく単一のキーを設定する場合は、gsettingsを使用し、スクリプトでgsettings getおよびgsettings setを使用することをお勧めします。

7
dobey

ここで、「Dobey」コマンドの小さな修正:

次のようにすべてのdonf設定を保存しても問題ありません。

dconf dump / > dconf-settings.ini

しかし、そのように復元する必要があります! :

dconf load / < dconf-settings.ini
6
jokx

man 7 dconf を参照してください:

KEY FILES
   To facilitate system configuration with a text editor, dconf can
   populate databases from plain text keyfiles. For any given system
   database, keyfiles can be placed into the /etc/dconf/db/database.d/
   directory. The keyfiles contain groups of settings as follows:

       # Some useful default settings for our site

       [system/proxy/http]
       Host='172.16.0.1'
       enabled=true

       [org/gnome/desktop/background]
       picture-uri='file:///usr/local/rupert-corp/company-wallpaper.jpeg'

   After changing keyfiles, the database needs to be updated with the
   dconf(1) tool.

スクリプトなしでGNOMEがファイルから設定を取得する必要がある場合、これが最も簡単な方法かもしれませんが、キーファイルを作成するには管理者アクセスが必要です。

もう1つのオプションはバイナリdconfデータベース自体を保存することですが、これはバージョン管理としてGitで使用するのに適したオプションではありません。データベースは通常、$XDG_CONFIG_HOME/dconf(つまり、デフォルトでは~/.config/dconf)にあります。マンページのPROFILESに関するセクションを参照してください。

マンページには次のようにも書かれています。

   The binary database format that dconf uses by default is not suitable
   for use on NFS, where mmap does not work well. To handle this common
   use case, dconf can be configured to place its binary database in
   XDG_RUNTIME_DIR (which is guaranteed to be local, but non-persistent)
   and synchronize it with a plain text keyfile in the users home
   directory.

しかし、スクリプトなしでこれを行う方法は明確ではありません。

1
muru