GConf のリポジトリ

GConf リポジトリの中に格納されている設定情報はキーとそれに対応付けられた値のペアとしてそれぞれ表現されます。GConf の設定キーはリポジトリを構成する要素の1つであり、アプリケーションが持つ任意の設定の1つに相当します。例えば /apps/gnome-session/options/show_splash_screen という設定キーは、セッションという設定ツールのログイン時にスプラッシュスクリーンを表示するというオプションに相当します。但し、GConf のリポジトリに格納されているすべての設定キーが GNOME デスクトップのユーザ・インタフェースに含まれているというわけではありません。例えばパネルという設定ツールには /apps/panel/global/tooltips_enabled というキーに対応したオプションはありません。

このリポジトリの実体は単にディレクトリ階層を持つファイルシステムです。リポジトリには次に示す情報が格納されています:

  • GConf のリポジトリを利用しているアプリケーションに相当するディレクトリ (例えば、metacity というウィンドウ・マネージャ向けに /apps/metacity というディレクトリが存在する)
  • 設定項目のカテゴリに相当するサブディレクトリ (例えば、一般的な設定項目に対応する /apps/metacity/general というディレクトリが存在する)
  • サブディレクトリ毎に、設定キーの並びと設定キーに関する情報を格納した特別なファイル (例えば、/system/http_proxy というディレクトリには HTTP プロキシの設定に関連する設定キーについての情報を格納したファイルが1つ存在する)
  • 設定キーのすべてを説明したファイルを格納する /schemas というディレクトリ

設定キーは基本的に文字列とか整数値、あるいは複数の文字列や整数値を要素とするリストのような値を持ちます。リポジトリの中に格納される設定キーの書式は、そのリポジトリを読み込む際に使用するバックエンド・モジュールに依存します。次は、バックエンド・モジュールとして拡張マークアップ言語の XML (Extensible Markup Language) を使用した際の /desktop/gnome/interface/font_name という設定キーの書式の例です:

<entry name="font_name" mtime="1038323555" muser="user123" type="string">
<stringvalue>Sans 10</stringvalue></entry>

本ドキュメントで任意の設定キーを参照する際の表記は、キーの名前にそのパス名を追加するものとします。例えば、/desktop/gnome/interface というサブディレクトリの中に格納された font_name という設定キーは /desktop/gnome/interface/font_name と表記します。

1.2.1. GConf の設定ソース

GConf のリポジトリには「設定ソース」と呼ばれる設定情報を格納する場所が含まれます。いろいろな設定ソースが GConf のパス・ファイルの中に記述されています。GConf のパス・ファイルは /etc/gconf/GConf のメジャー・バージョン/path です。ユーザはそれぞれ1個のパス・ファイルを所有します。パス・ファイルはいろいろな設定ソースに対して次のような情報を指定します:

  • リポジトリの内容を読む際に使用するバックエンド・モジュール
  • リポジトリを読み書きする権限
  • リポジトリ自身の場所

さらに GConf のパス・ファイルには include 命令を含めることが可能になっています。GConf のパス・ファイルのデフォルトは次のような情報が格納されています:

xml:readonly:/etc/gconf/gconf.xml.mandatory
include /etc/gconf/2/local-mandatory.path
include "$(HOME)/.gconf.path"
include /etc/gconf/2/local-defaults.path
xml:readwrite:$(HOME)/.gconf
xml:readonly:/etc/gconf/gconf.xml.defaults

GConf が設定値を検索する際、GConf はパス・ファイルで指定した順番で設定ソースを読み込みます。次の表にパス・ファイルの中にある設定ソースの詳細を示します:

設定ソース 説明
変更不可の設定 この設定ソースは読み込み専用の権限になっている (ユーザはこのソースの中にある値を上書きすることはできないので、設定ソースの中にある設定項目は強制的に適用される)
ユーザ向けの設定

この設定ソースはユーザのホームにある .gconf というフォルダに格納される (ユーザが何か設定項目を指定すると、新しい設定情報がこの場所に追加される)

設定エディタを使ってユーザの設定ソースを変更できる

デフォルト この設定ソースにはデフォルトで適用される設定情報が含まれている

パス・ファイルに記述されている設定ソースは変更不可の設定項目がユーザ向けの設定項目を上書きするような並びになっており、さらにユーザ向けの設定項目がデフォルトの設定項目を上書きするような並びになっています。すなわち、GConf は次に示すような優先順位で設定項目を適用することになります:

  1. 変更不可の設定
  2. ユーザが指定した設定
  3. デフォルトの設定

システム管理者ならば、GConf のパス・ファイルの中で include 命令を使って他の設定ソースを指定できます。

include した設定ソース 説明
/etc/gconf/2/local-mandatory.path 特定のシステムに対して変更不可の設定項目を格納する際は、この設定ソースを利用する
$(HOME)/.gconf.path ホーム・フォルダ配下にある .gconf.path というファイルの中に設定ソースの場所を指定する
/etc/gconf/2/local-defaults.path 特定のシステムに対するデフォルトの設定項目を格納する際は、この設定ソースを利用する

1.2.2. GConf スキーマ

GConf スキーマは1個の GConf スキーマ・キーと1個の GConf スキーマ・オブジェクトのペアに対する総称です。次の表にスキーマ・キーとスキーマ・オブジェクト並びに特定のキーに対してこれらのアイテムとの関係について示します:

アイテム 説明
設定キー アプリケーションの設定に相当する GConf リポジトリの中にある任意の要素を指す
スキーマ・キー 設定キーに対するスキーマ・オブジェクトを格納したキーを指す
スキーマ・オブジェクト

設定ソースの中にある要素 (設定キーの情報を格納している) で、次のような情報がある:

  • 設定キーを使用するアプリケーションの名前
  • 設定キーで使用する値の型 (例: 整数型、論理型など)
  • 設定キーに対するデフォルトの値
  • 設定キーに関する説明の要約

次の表に設定キーとスキーマ・キー、スキーマ・オブジェクトの例を示します:

アイテム
設定キー /desktop/gnome/interface/font_name
スキーマ・キー /schemas/desktop/gnome/interface/font_name
スキーマ・オブジェクト
<schema>
  <applyto>/desktop/gnome/interface/font_name</applyto>
  <key>/schemas/desktop/gnome/interface/font_name</key>
  <owner>gnome</owner>
  <type>string</type>
  <default>Sans 10</default>
  <locale name="C">
    <short>Default font</short>
      <long>Name of the default font used by gtk+.</long>
  </locale>
</schema>

設定キーとスキーマ・キーを関連付けることが可能になっています。例えば、次に示す /desktop/gnome/interface/font_name という設定キーにはスキーマ・キーが1個含まれています:

<entry name="font_name" mtime="1034873859"
schema="/schemas/desktop/gnome/interface/font_name"/>

設定キーとスキーマ・キーを関連付ける際、その設定はスキーマ・キーのスキーマ・オブジェクトの中で明示されている推奨値を使います。この推奨値はスキーマ・オブジェクトの <default> という要素の中に格納されています。デフォルトの設定ソースの中にあるすべての設定キーは、デフォルトでスキーマ・キーに関連付けられています。

スキーマは、一般的にデフォルトの設定ソースの中に格納されています。

1.2.3. GConf のスキーマ定義ファイル

一連のスキーマはスキーマの定義ファイルから生成されます。アプリケーションで使用するすべてのスキーマ・キーは、このファイルの中に定義します。スキーマの定義ファイルは .schemas という拡張子を持ちます。

スキーマの定義ファイルは /etc/gconf/schemas というフォルダの中に格納されます。スキーマの定義ファイルを使って新しい設定ソースを作成することも可能です。

スキーマの定義ファイルの中には、GNOME デスクトップのユーザ・インタフェースと一部密接に関連するものがあります。例えば、system_http_proxy.schemas という定義ファイルはネットワークのプロキシを設定するツールに設定情報を提供しています。逆に、スキーマ定義ファイルの中には GNOME デスクトップのユーザ・インタフェースとして提供されていない部分に関する設定キーが含まれているものもあります。例えば /apps/panel/global/tooltips_enabled という設定キーに相当するユーザ・インタフェースは提供されていません。

GNOME デスクトップのユーザ・インタフェースの中には1つ以上のスキーマ定義ファイルから提供されている設定キーを持つものがあります。例えば、キーボード・ショートカットという設定ツールには panel-global-config.schemasmetacity.schemas という定義ファイルから提供された設定が含まれています。