本節では、Xリソース(またはお使いのオペレーティングシステムにおける同等の機能)を照会・利用するための関数や変数の一部について説明します。Xリソースの詳細については、The GNU Emacs ManualのX Resourcesを参照してください。
関数 x-get-resource は、X Window
のデフォルトデータベースからリソース値を取得します。
リソースは、キーとクラスの組み合わせによってインデックス付けされています。この関数は、‘instance.attribute’(ここでinstanceはEmacsが起動された際の名前)という形式のキーと、‘Emacs.class’をクラスとして検索します。
オプション引数 component と subclass は、それぞれキーとクラスに追加されます。両方を指定するか、あるいはどちらも指定しないかのいずれかとなります。これらを指定した場合、キーは ‘instance.component.attribute’ となり、クラスは ‘Emacs.class.subclass’ となります。
この変数は、x-get-resource が参照すべきアプリケーション名を指定します。デフォルト値は
"Emacs" です。x-get-resource
の呼び出しの前後でこの変数を別の文字列にバインドすることで、他のアプリケーション名に対する X リソースを確認できます。
この変数は、x-get-resource
が参照すべきインスタンス名を指定します。デフォルト値は、Emacs の起動時に指定された名前、または ‘-name’ や ‘-rn’ スイッチで指定された値となります。
上記の例をいくつか挙げるため、次のような行があるとします。
xterm.vt100.background: yellow
Xリソースファイル(通常は ~/.Xdefaults または ~/.Xresources という名前)に記述します。次に:
(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
(x-get-resource "vt100.background" "VT100.Background"))
⇒ "yellow"
(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
(x-get-resource "background" "VT100" "vt100" "Background"))
⇒ "yellow"
この変数が nil 以外の場合、Emacs は X リソースを参照せず、新しいフレームを作成する際に
X リソースは一切影響しません。