2018/11/01
GSettings と dconf の関係
「GNOME 3 の設定は [dconf](https://wiki.gnome.org/Projects/dconf) という設定管理システムに保存されていて、[GSettings]([GSettings](https://developer.gnome.org/platform-overview/stable/tech-gsettings.html.en) はそのラッパー」という程度に理解していたのですが、 [Vino の設定をしたり](https://kokufu.blogspot.com/2018/10/ubuntu-1804-vino.html) するうちに、理解が深まってきたのでまとめておこうと思います。 > 参考 > > [First steps with GSettings – GTK+ Development Blog](https://blog.gtk.org/2017/05/01/first-steps-with-gsettings/) ### GSettings とは 先に「GSettings は dconf のラッパー」と書いたのですが、 これはあまり正確な理解ではありませんでした。 正確に書くとすると「GSettings は dconf**等**へのアクセスを提供する、[GTK+](https://www.gtk.org/) のAPI群」といったところでしょうか。 具体的には `g_settings_get_value()` のように `g_settings_` で始まる関数群のことです。 > 参考 > > [GSettings: GIO Reference Manual](https://developer.gnome.org/gio/stable/GSettings.html) dconf「**等**」 と書いたところが重要です。GSettings は各OSでバックエンドに使用する設定管理システムが異なるのです。 - Windows だと レジストリ - Mac OS X だと plists - Linux だと dconf GTK+ はクロスプラットホームなので、OS非依存のAPIが用意されているというわけです。 ### gsettings なお、全て小文字で書く `gsettings` は 「GSettings API を内部で使用して、dconf へアクセスするコマンドラインツールの名前」を表すことが多いようです。 例えば、以下のように使用します。 ```console `gutter: false; $ gsettings get org.gnome.Vino prompt-enabled true ``` ### dconf-editor `gsettings` はコマンドラインツールですが、GUIで参照・編集したい場合は、 `dconf-editor` を使用します。 `dconf-editor` は `dconf` を直接、編集するための GUI ツールです 。 本来、`dconf` の設定はアプリケーションから行われるべきですが、変更する術がユーザーに提供されていないものもあります。 また、値がどうなっているのか確認したい時もあります。 そういった際に、このツールがあると便利です。 ### schema id と schema path gsettings や dconf で設定を参照・変更する際に注意しなければいけないのが、`schema id` と `schema path` の存在です。 別途記事にまとめたので、ご参照ください。 > [dconf の schema id と schema path の関係 | 穀風](https://kokufu.blogspot.com/2018/11/dconf-schema-id-schema-path.html) ### GConf 余談ですが、GNOME の設定については [GConf](https://ja.wikipedia.org/wiki/GConf) について書かれているものも多くあります。 この GConf (gconftool 等)は GNOME 2 で採用されていた設定管理システムです。 GTK+ 2 ではなく、GNOME 2 です。つまり、クロスプラットホームではありません。 GNOME 3 では dconf で置き換えられたので、ほとんど使う機会はありません。ただ、一部の古いアプリケーションでは使用されているようです。
0 件のコメント:
コメントを投稿