X Window
System上で動作するプログラムは、ユーザーオプションをクラスとリソースの階層構造で管理しています。これらのオプションのデフォルト値は、通常
~/.Xdefaults または ~/.Xresources という名前の Xリソースファイル
で指定できます。Xサーバーは独自のリソースリストを保持しているため、このファイルへの変更は即座に反映されません。リストを更新するには、xrdb コマンド(例えば ‘xrdb
~/.Xdefaults’)を使用します。
Xリソースで指定された設定は、一般にEmacsの初期化ファイル(Emacs初期化ファイルを参照)における対応する設定、特に初期フレームのパラメータ(フレームパラメータを参照)を上書きします。
(MS-WindowsシステムはXリソースファイルをサポートしていません。こうしたシステムでは、EmacsはWindowsレジストリ内のXリソースを参照します。まず、現在のユーザーにのみ影響し、システム全体の設定を上書きするキー ‘HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs’ を確認し、次にシステムの全ユーザーに影響するキー ‘HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs’ を確認します。メニューバーとスクロールバーはMS-Windowsのネイティブウィジェットであるため、ディスプレイコントロールパネルのシステム全体の設定を通じてのみカスタマイズ可能です。また、後述するように、コマンドラインオプション ‘-xrm’ を使用してリソースを設定することもできます。)
Xリソースファイルの各行では、1つのオプション、または関連するオプション群に対する値が指定されます。ファイル内での行の順序は問いません。各リソース指定は、プログラム名とリソース名で構成されます。これらの名称はいずれも大文字と小文字が区別されます。以下に例を示します。
emacs.cursorColor: dark green
プログラム名とは、リソースが適用される実行ファイルの名称のことです。Emacsの場合、通常は ‘emacs’ となります。Emacsの実行ファイル名に関わらず、すべてのEmacsインスタンスに適用される定義を指定するには、‘Emacs’ を使用してください。
リソース名とは、プログラム設定の名称のことです。例えば、Emacsはテキストカーソルの色を制御する‘cursorColor’というリソースを認識します。
リソースは名前付きのクラスにグループ化されています。例えば、‘Foreground’クラスには‘cursorColor’、‘foreground’、‘pointerColor’のリソースが含まれています(EmacsのXリソース一覧を参照)。リソース名の代わりにクラス名を使用することで、次のようにそのクラス内のすべてのリソースのデフォルト値を指定できます。
emacs.Foreground: dark green
変数 inhibit-x-resources に nil 以外の値を設定すると、Emacs は X リソースを一切処理しません。‘-Q’(または ‘--quick’)コマンドラインオプションを指定して Emacs を起動すると、inhibit-x-resources は自動的に t
に設定されます(初期オプション を参照)。
さらに、以下のコマンドラインオプションを使用して、Xリソースファイルを上書きできます。
このオプションは、初期のEmacsフレームのプログラム名をnameに設定します。また、初期フレームのタイトルをnameに設定します。このオプションは、それ以降のフレームには影響しません。
このオプションを指定しない場合、デフォルトではEmacs実行ファイルの名前がプログラム名として使用されます。
一貫性を保つため、‘-name’ は、特定のフレームに属さないその他のリソース値に使用する名称も指定しています。
Emacsの起動名を指定するリソースも、‘Emacs’というクラスに属します。‘emacs’の代わりに‘Emacs’と記述すると、そのリソースは、フレームのタイトルや実行ファイル名に関わらず、すべてのEmacsジョブにおけるすべてのフレームに適用されます。
このオプションは、現在のEmacsジョブに対するXリソースの値を指定します。
resource-value は、Xリソースファイル内で使用するものと同じ形式である必要があります。複数のリソース指定を含めるには、いくつかの ‘-xrm’ オプションが利用可能です。また、‘#include "filename"’ を resource-value として使用して、リソース指定が記載されたファイル全体を含めることもできます。‘-xrm’ で指定されたリソース値は、他のすべてのリソース指定よりも優先されます。