次: , 前: Icons X, 上: 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'を指定する。