Next: , Previous: Environment, Up: Command Arguments


A.6 ディスプレイ名の指定

環境変数DISPLAYは、Emacsを含むすべてのXクライアントに ウィンドウをどこに表示するかを教えます。 普通の状況では、 Xサーバーを起動してローカルでジョブを走らせると、 この変数の値はデフォルトで設定されます。 場合によっては、自分でディスプレイを指定する必要があるでしょう。 たとえば、リモートログインしてリモート側でクライアントプログラムを実行し、 表示はローカルの画面にする場合です。

Emacsを使う場合、デフォルトのディスプレイを変更する主な理由は、 他のシステムにログインしてそのシステム上でEmacsを実行し、 ウィンドウはローカルの画面に表示するためです。 他のシステムにログインするのは、そのシステム上に編集したいファイルがあるか、 あるいは、 実行したいEmacsの実行ファイルがそのシステムにあるからでしょう。

環境変数DISPLAYの書式は ‘host:display.screen’です。 hostはXウィンドウシステムのサーバーマシンの名前、 displayは同じマシンの別のサーバーと読者のサーバー(X端末)を 区別するために任意に割り振られた番号、 screenは稀にしか使いませんが 1つのXサーバーで複数の端末画面を制御する場合に使います。 ピリオドとscreenは省いてかまいません。 指定する場合、screenは普通はゼロです。

たとえば、読者のホストの名前は‘glasperle’であり、 読者のサーバーは使用できるサーバーのうちで最初(でたぶん唯一)のもので あるとすれば、DISPLAYは‘glasperle:0.0’となります。

Emacsを実行するときに明示的にディスプレイ名を指定できます。 変数DISPLAYを変更する、あるいは、オプションの‘-d display’や ‘--display=display’を指定します。 たとえばつぎのようにします

     emacs --display=glasperle:0 &

オプション‘-nw’を指定するとXを直接使用することを禁止できます。 これも初期化オプションです。 Emacsに対して制御端末に通常のASCII文字を表示するように指示します。

セキュリティの設定によっては、リモートシステムのプログラムから 読者のローカルのシステムに表示するのが禁止されます。 この場合、Emacsを走らせるとつぎのようなメッセージが出力されます。

     Xlib:  connection to "glasperle:0.0" refused by server

この問題は、xhostコマンド 1 を用いて、ローカルマシンにリモートシステムからのアクセス許可を 与えれば解決できます。


脚注

[1] 【訳注】ホスト単位でアクセスを制御するxhostコマンドより、 ユーザー単位でアクセスを制御するxauthのほうが望ましいだろう。