Next: , Previous: Icons X, Up: Command Arguments


A.13 Xリソース

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’のかわりにその名前のリソースを探します。

-name name
--name=name
Emacsの初期フレームのリソース名(およびタイトル)としてnameを使う。 このオプションは、初期フレーム以外には影響しないが、 Lispプログラムからはフレーム作成時にフレーム名を指定できる。

このオプションを指定しないと、 デフォルトではEmacsの実行ファイル名をリソース名として使う。

-xrm resource-values
--xrm=resource-values
EmacsのこのジョブだけのXリソースの値を指定する。 (以下を参照)。

整合性のために、‘-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
on’ならば(ヌーの絵の)ビットマップアイコンを使う。 ‘off’ならばウィンドウマネージャにアイコンを選ばせる。
borderColor(クラスBorderColor
外部境界の表示色名。
borderWidth(クラスBorderWidth
外部境界の(ピクセル単位の)幅。
cursorColor(クラスForeground
テキストカーソル(ポイント)の表示色名。
font(クラスFont
テキストのフォント名(あるいはフォントセット名 see Fontsets)。
foreground(クラスForeground
テキストの表示色名。
geometry(クラスGeometry
ウィンドウのサイズと位置。 Emacsフレームだけでなく個々のメニューにも影響するので、 このリソースを‘emacs*geometry’とは指定しないように注意すること。

このリソースで指定した位置は、Emacsの初期フレーム (あるいは、特定のフレーム名を指定したリソースはそのフレーム) だけに適用される。 しかし、サイズはすべてのフレームに適用される。

iconName(クラスTitle
アイコンに表示する名前。
internalBorder(クラスBorderWidth
内部境界の(ピクセル単位の)幅。
menuBar(クラスMenuBar
on’ならばフレームにメニューバーを付ける。 ‘off’ならばメニューバーを付けない。
minibuffer(クラスMinibuffer
none’ならばこのフレームにミニバッファを付けない。 かわりに、独立したミニバッファフレームを使う。
paneFont(クラスFont
ツールキット版でないEmacsのメニューのタイトルに使うフォント名。
pointerColor(クラスForeground
マウスカーソルの表示色。
reverseVideo(クラスReverseVideo
on’ならば前景色と背景色を入れ替え、 ‘off’ならば指定された表示色を用いる。
verticalScrollBars(クラスScrollBars
on’ならばフレームにスクロールバーを付ける。 ‘off’ならばスクロールバーを付けない。
selectionFont(クラスFont
ツールキット版でないEmacsのポップアップメニューの項目に使うフォント名。 (ツールキット版では、Lucid Resources、 あるいは、Motif Resourcesを参照。)
title(クラスTitle
Emacsの初期フレームのタイトルバーに表示する名前。

以下は、特定のフェイス(see Faces)の見え方を制御するリソースです。

face.attributeFont
フェイスfaceのフォント。
face.attributeForeground
フェイスfaceの前景色。
face.attributeBackground
フェイスfaceの背景色。
face.attributeUnderline
フェイスfaceの下線フラグ。 下線を使うには‘on’か‘true’を指定する。