GSettings と dconf の関係
「GNOME 3 の設定は dconf という設定管理システムに保存されていて、GSettings はそのラッパー」という程度に理解していたのですが、 Vino の設定をしたり するうちに、理解が深まってきたのでまとめておこうと思います。
参考
GSettings とは
先に「GSettings は dconf のラッパー」と書いたのですが、 これはあまり正確な理解ではありませんでした。
正確に書くとすると「GSettings は dconf等へのアクセスを提供する、GTK+1 のAPI群」といったところでしょうか。
具体的には g_settings_get_value()
のように g_settings_
で始まる関数群のことです。
参考
dconf「等」 と書いたところが重要です。GSettings は各OSでバックエンドに使用する設定管理システムが異なるのです。
- Windows だと レジストリ
- Mac OS X だと plists
- Linux2だと dconf
GTK+ はクロスプラットホームなので、OS非依存のAPIが用意されているというわけです。
gsettings
なお、全て小文字で書く gsettings
は
「GSettings API を内部で使用して、dconf へアクセスするコマンドラインツールの名前」を表すことが多いようです。
例えば、以下のように使用します。
$ gsettings get org.gnome.Vino prompt-enabled true |
dconf-editor
gsettings
はコマンドラインツールですが、GUIで参照・編集したい場合は、
dconf-editor
を使用します。
dconf-editor
は dconf
を直接、編集するための GUI ツールです3。
本来、dconf
の設定はアプリケーションから行われるべきですが、変更する術がユーザーに提供されていないものもあります。
また、値がどうなっているのか確認したい時もあります。
そういった際に、このツールがあると便利です。
schema id と schema path
gsettings や dconf で設定を参照・変更する際に注意しなければいけないのが、schema id
と schema path
の存在です。
別途記事にまとめたので、ご参照ください。
GConf
余談ですが、GNOME の設定については GConf について書かれているものも多くあります。
この GConf (gconftool 等)は GNOME 2 で採用されていた設定管理システムです。 GTK+ 2 ではなく、GNOME 2 です。つまり、クロスプラットホームではありません。
GNOME 3 では dconf で置き換えられたので、ほとんど使う機会はありません。ただ、一部の古いアプリケーションでは使用されているようです。
0 件のコメント:
コメントを投稿