回答:
Xプログラムは、DISPLAY
環境変数を調べることにより、どのXセッションと対話するかを認識しています。
まずDISPLAY
、プログラムを実行するXセッションで何が設定されているかを確認する必要があります。これをecho $DISPLAY
行うには、そのXセッションのX端末内でコマンドを発行します。通常、:0.0
出力されるようなものを取得します。
あなたは優れたプログラムを開始したいとしましょうxclock
、あなたのXセッションでプログラムをDISPLAY
され:0.0
ていますが、コンソールでこれをやりたいです。次に、Alt-Ctrl-F1を押してそのコンソールに移動し、次のように入力します。
DISPLAY=:0.0 xclock # variables set w/ a command are local to that command
次に、Alt-Ctrl-F7またはAlt-Ctrl-F8(またはLinuxの種類によっては他のFキー)を押してXに戻り、そこにある新しいかなりの壁時計を観察します。
実際、上記のコマンドを同じマシンの任意のシェル(SSH経由、任意のXセッション、任意のコンソールなど)で実行できますDISPLAY=:0.0
。コマンドの前に指定したという事実は、xclock
ウィンドウが常にポップアップすることを意味します同じXセッション。
実際、Xプログラムがそれを見るという事実は別として、DISPLAY
変数について特別なことは何もありません。通常、Xターミナルからプログラムを起動すると、DISPLAY
すでに設定されているため、適切な場所から起動します。
上記のコマンドを使用する代わりに、最初にを設定しDISPLAY
、次にを実行して、2つに分割することもできますxclock
。この場合、DISPLAY
設定はそのシェルを閉じるまで持続し、そこから開始された後続のすべてのXプログラムはと同じXセッションで開きますxclock
。
# variables set w/o a command are local to the shell,
export DISPLAY=:0.0 # unless exported
xclock
DISPLAY
(それは両方で動作し、それがシェルによってインポートされているため、デフォルトでは輸出に設定されますzsh
し、dash
使用しなくても私のためにexport
)。しかし、はい、2行バージョンが機能しない場合は、で置き換えDISPLAY=:0.0
てみてくださいexport DISPLAY=:0.0
。