Xウィンドウシステムで動いているプログラムでは、 クラスとリソースの階層によってユーザーのオプションを取りまとめます。 これらのオプションのデフォルト値は、 ~/.Xdefaultsという名前の個人のXリソースファイルで指定できます。
ファイル内の各行は、1つのオプション、関連したオプション群、 1つのプログラム、あるいは、複数(または全部)のプログラムの 値を指定します。
プログラムは特定の意味を持ったリソース名を定義します。 リソースをどのようにクラス名にグループ化するかも定義します。 たとえば、Emacsでは、 リソース‘internalBorder’は内部境界の幅を制御し、 リソース‘borderWidth’は外部境界の幅を制御します。 どちらのリソースもクラス‘BorderWidth’の一部です。 これらの名前では大文字小文字を区別します。
~/.Xdefaultsでは、以下のように1行に1つのリソースを指定します。
emacs.borderWidth: 2
あるいは、クラス内のすべてのリソースに同じ値を指定するには クラス名を使います。 たとえば、つぎのようにします。
emacs.BorderWidth: 2
クラスに値を指定すると、 それはそのクラス内のすべてのリソースのデフォルト値になります。 個別にリソースの値を指定することもできます。 その場合、特定のリソースの値はクラスの値に優先します。 したがって、つぎの例では、 すべての境界のデフォルトの幅として2を指定しますが、 外部境界の値は4になります。
emacs.Borderwidth: 2 emacs.borderwidth: 4
ファイル内での行の順番は関係ありません。 また、コマンド行オプションはつねにXリソースファイルに優先します。
上の例の文字列‘emacs’もリソース名です。 この名前は、Emacsを起動するために指定した実行ファイルの名前を表します。 Emacsを別の名前でインストールしたならば、 ‘emacs’のかわりにその名前のリソースを探します。
このオプションを指定しないと、
デフォルトではEmacsの実行ファイル名をリソース名として使う。
整合性のために、‘-name’は、 どの特定のフレームにも属さないリソースの値を探すときの名前も指定します。
Emacsを起動するコマンド名と同じ名前のリソースはクラスにも属します。 その名前は‘Emacs’です。 ‘emacs’のかわりに‘Emacs’と書けば、 実行ファイルの名前やフレームタイトルに関わらず、 すべてのEmacsジョブのすべてのフレームにリソースが適用されます。 たとえば、つぎのようにします。
Emacs.BorderWidth: 2 Emacs.borderWidth: 4
コマンド行オプション‘-xrm resources’を使えば、 追加のリソースの値をEmacsに指定できます。 テキストresourcesは、Xリソースファイルの中で使うものと同じ書式です。 dataで複数のリソースを指定するには、 ファイルの場合と同様に、そのあいだに改行を置きます。 また、‘#include "filename"’を使えば、 ファイル内のリソース指定を取り込めます。 ‘-xrm’で指定したリソースの値は、これ以外のリソース指定に優先します。
以下は、Emacsのオプションを指定するリソース名とそれが属するクラスの一覧です。
background
(クラスBackground
)bitmapIcon
(クラスBitmapIcon
)borderColor
(クラスBorderColor
)borderWidth
(クラスBorderWidth
)cursorColor
(クラスForeground
)font
(クラスFont
)foreground
(クラスForeground
)geometry
(クラスGeometry
)このリソースで指定した位置は、Emacsの初期フレーム
(あるいは、特定のフレーム名を指定したリソースはそのフレーム)
だけに適用される。
しかし、サイズはすべてのフレームに適用される。
iconName
(クラスTitle
)internalBorder
(クラスBorderWidth
)menuBar
(クラスMenuBar
)minibuffer
(クラスMinibuffer
)paneFont
(クラスFont
)pointerColor
(クラスForeground
)reverseVideo
(クラスReverseVideo
)verticalScrollBars
(クラスScrollBars
)selectionFont
(クラスFont
)title
(クラスTitle
)以下は、特定のフェイス(see Faces)の見え方を制御するリソースです。
.attributeFont
.attributeForeground
.attributeBackground
.attributeUnderline