次のページ 前のページ 目次へ

5. クライアントに指定する

クライアントプログラム (例としてグラフィックアプリケーション) は DISPLAY 環境変数を調べて接続するディスプレイを知ります。しかし、 クライアント起動時のコマンドライン引数に -display hostname:0 を与えた場合は、 この設定を優先します。いくつかの例で明らかにしましょう。

私たちのコンピュータは外部からホスト名 light として見えており、 ドメイン uni.verse に所属しているとします。 普通に X サーバを実行しているなら、ディスプレイは light.uni.verse:0 として識別されます。 dark.matt.er というリモートコンピュータで描画プログラムの xfig を実行し、 ローカルマシン light に xfig の出力を表示させたいと思います。

すでにリモートコンピュータ dark.matt.er に telnet していると想定します。

リモートコンピュータで csh を使っているなら

dark% setenv DISPLAY light.uni.verse:0
dark% xfig &

とするか、あるいは

dark% xfig -display light.uni.verse:0 &

とします。

リモートコンピュータで sh を使っているなら

dark$ DISPLAY=light.uni.verse:0
dark$ export DISPLAY
dark$ xfig &

とするか、あるいは

dark$ DISPLAY=light.uni.verse:0 xfig &

とします。もちろん

dark$ xfig -display light.uni.verse:0 &

でもいいです。

(訳注;

dark$ env DISPLAY=light.uni.verse:0 xfig&
なら csh でも sh でも使えますね :) )

telnet によっては、自動的にリモートホストへ DISPLAY 変数を 転送するものもあるようです。 それらの一つを使っているなら、幸運です。ディスプレイの指定を 手動で行う必要がありません。そうでなく、DISPLAY 環境変数を転送 しない telnet でも、大部分のものが TERM 環境変数の転送は 行います。なので、賢いハックを行えば、TERM 変数に DISPLAY 変数を 背負わせることもできます。

このアイデアは次のような数行のスクリプトで実現できます。

telnet する前に、TERMDISPLAY の値を加える。telnet する。 リモートコンピュータの適切な .*shrc ファイルで、TERM から DISPLAY の値を読む。


次のページ 前のページ 目次へ