次: Lucid Resources, 前: Icons X, 上: Command Arguments
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