プログラムインスタンスを実行するXモニタを選択できますか?

プログラムインスタンスを実行するXモニタを選択できますか?

システムで複数のX Windowsが実行されている場合は、特定のウィンドウでプログラムを実行できますか?ウィンドウをどのように識別し、プログラムがそこで実行されるようにしますか?

私はそのようなプログラムを実行するために必要なすべての権限を持っていると仮定します。

ベストアンサー1

Xプログラムは、環境変数を調べることで、どのXセッションと会話する必要があるかを知っていますDISPLAY

DISPLAYまず、プログラムを実行したいXセッションの設定を見つける必要があります。echo $DISPLAYそのXセッションのX端末内でコマンドを実行してこれを実行します。通常、:0.0このような内容が出力されます。

xclockXセッションで素晴らしいプログラムを始めたいのですが、コンソールで実行したいとしましょう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に戻り、そこで美しい新しい壁時計を見ることができます。

実際に上記のコマンドを実行できますどんな殻でもDISPLAY=:0.0同じマシン(SSHを介して、Xセッション、コンソールなど)でコマンドの前に指定するという事実は、ウィンドウが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

おすすめ記事