GConf2
GConfは、プログラム終了後も保持したいアプリケーションの設定情報を保持する補助アプリケーション。MomongaではFedoraと名前を合わせるためGConf2になっている。
Unix系のOSでは、ドットファイル(名前が"."ではじまるファイルで、通常$HOME以下に保存される)に設定を保存する場合が多いのだが、多いと分からなくなるので、このようなフレームワークがあると助かる場合もある。しかし、xchatの様に、設定はGConfを使うけどログは.xchat2以下に保存されており、なんだかな〜と思うこともある。レジストリという名前で管理しているOSもあるらしい。
設定情報はxml形式?のファイル(接尾子は.schemas)でデフォルトとして設定されていて、Momongaでは"/etc/gconf/schemas"以下にインストールされる。
$ rpm -qf /etc/gconf/schemas/* | sort -u
このようなコマンドで、どのアプリケーションがGConfで設定を保持しているかが分かる。
schemasファイルは最低でもKeyとValueの組みになっている。参考に、GConfのGUIフロントエンドであるgconf-editorのschemasファイル(gconf-editor.schemas.in)を見てみる。
<gconfschemafile> <schemalist> <schema> <key>/schemas/apps/gconf-editor/bookmarks</key> <applyto>/apps/gconf-editor/bookmarks</applyto> <owner>gconf-editor</owner> <type>list</type> <list_type>string</list_type> <default>[]</default> <locale name="C"> <short>Bookmarks</short> <long>gconf-editor folder bookmarks</long> </locale> </schema> </schemalist> </gconfschemafile>
まぁ、雰囲気は分かると思うので、説明は省略する(/usr/share/sgml/gconf/gconf-1.0.dtd がDTDファイル)。
上記のファイルの接尾子に.inというのがついているが、これはintltoolなどでうまく翻訳してくれる。intltoolの話は別の機会にする。
このキーの値を見るために、gconftool-2コマンドを利用する。
$ gconftool-2 --get /schemas/apps/gconf-editor/bookmarks 型: list リスト型: string Car 型: *invalid* Cdr 型: *invalid* 初期値: [] オーナー: gconf-editor 説明(短文): ブックマーク 説明(長文): GConf エディタのフォルダ式ブックマークです。
オーナーになっているアプリケーションは、この値を見て動作を変更する。
GConfがschemasを探す場所は、"/etc/gconf/2/path"に書いている。空白行(改行しかないもの)とコメント(#ではじまる行)を削除して表示してみる。
$ grep -v "^#" /etc/gconf/2/path | grep -v "^$" xml:readonly:/etc/gconf/gconf.xml.mandatory include /etc/gconf/2/local-mandatory.path include "$(HOME)/.gconf.path" xml:readwrite:$(HOME)/.gconf xml:readonly:/etc/gconf/gconf.xml.system include /etc/gconf/2/local-defaults.path xml:readonly:/etc/gconf/gconf.xml.defaults
書き込み可能なのは$(HOME).gconfのみで、それ以外は読み込み専用になっている。また、pathはincludeできることがわかる。
疲れたから、ここまで。。。