2009-05-31 3 views
0

linuxのみ: 私は自分のアプリケーション用に2つのウィンドウを開きたいと思います.1つはコンピュータのメイン画面に、もう1つはリモートデスクトップだけでアクセスする仮想X11セッションです。 X11の専門家の中には、これがどのように行われたか教えていただけますか?別のX11セッションでどのようにウィンドウを開くのですか?

答えて

1

私は質問にはほとんど不明のですが、ここでは仮想的なセットアップです:

私は自分のコンピュータ上に座っています(私たちはルートセッションという呼びます)と私はシェルを持っています。この場合、値 "127.0.0.1:0.0"の環境変数DISPLAYがあります。

第2セッションが開始されます。このマシン上で表示変数が何であるかを知る必要があります。ローカルホスト上にある場合は、 "127.0.0.1:1.0"のようなものかもしれません。他のホストで "echo $ DISPLAY"を実行すると、これはあなたに伝えられます。 「:1.0」とか「127.0.0.1」のないものがあればそれは問題ありません。 localhostは、アドレスが指定されていない場合に暗黙指定されます。

次に、ルートセッションに戻る前に、 "xhost"を実行して、他のソースがこのホスト上にウィンドウを表示できるようにする必要があります。 (免責事項:私があなたに言うべきことは、ひどく安全ではないので、あなたが安全でないネットワークにいる場合は、xhostのmanページを読んでほしいかもしれません)。他のディスプレイのxtermに "xhost +"と入力してください。このコマンド(特に "+"オプション)は、どのホストもこのディスプレイ上のウィンドウをポップアップさせることができます。

あなたがしなければならないのは、ルートセッションシェルに戻って、(私はbashと仮定します) "export DISPLAY =" 127.0.0.1:1.0 "を実行してから、" xterm "を実行してください。他のセッションでは最大。

私はこのことができます願っています。

これのどれかが不明である場合は、「XウィンドウDISPLAY変数」の検索を行う可能性があります。

+0

"恐ろしく不安"なことはおすすめしないでください。 – andrewdotn

1

それはあなたがしているものレベルで依存プログラミング - もしあなたがXlibに直接呼び出すのであれば、XCreateWindowへの最初の引数がDisplay *であることを知っていると思います。 X11にウィンドウの作成場所を教えてください。役に立った場合はhttp://tronche.com/gui/x/xlib/window/XCreateWindow.htmlをご覧ください。

あなたが使用している他の言語/フレームワーク/ etcの場合は、それがどれであるかを言えば助けになります。あなたはこのようなDISPLAY環境変数を設定する必要があり

1

DISPLAY=host:0.0 

は詳細についてX manpageを参照してください。

関連する問題