グラフィックプログラムでウィンドウを割り当てるのはなぜですか?

グラフィックプログラムでウィンドウを割り当てるのはなぜですか?

私の質問はシナリオで最もよく説明されています。あなたのデスクトップが何らかの形でLinuxを実行していると想像してください(私はArchを実行しています)。次に、仮想デスクトップを提供するためにコンピュータで実行されるVNCサーバーも追加します。

デスクトップでFirefoxを開き、vncにログインして操作を実行します。 Googleで何かを検索する必要がある場合は、Firefoxを開いてセッションがすでに実行されているというエラーが発生するため、Firefoxが以前に実行していたセッションを閉じてvncで再度開く必要があります。 VNCで実行されていることを忘れた場合は、同じことをしてデスクトップで開く必要があります。

この特定の問題を解決するいくつかの方法があることを知っていますが、これは単なる例です。この場合、なぜFirefoxは1つのウィンドウにのみ割り当てられるのですか?

Firefoxを作成して特定のウィンドウに割り当てずに特定のデスクトップに配置しようとすると、Firefoxを閉じて再起動したり、別のインスタンスを起動しなくてもFirefoxからロードすることができないのはなぜですか?より良い表現は次のとおりです。なぜグラフィックプロセスが独自のサーバーで実行され、次に要求するデスクトップに転送/移動されないのですか?

ベストアンサー1

複数のX11サーバーに同時に接続できるプログラムは非常にまれです。ほとんどは、1つのX11セッションを監視し、別のX11セッションまたは同様の結果を表示するように設計された特別なアプリケーションです。一般的なアプリケーションは実際にこれをサポートしていません。わかりませんが、私の考えには、多くのX11クライアントライブラリに、プロセスごとに1つのX11接続しかないという前提に関連するグローバル変数や他のさまざまなビットが含まれているようです。

アプリケーションが 2 つの異なるモニターに表示されるようにするには、そのアプリケーションの 2 つのコピーのみを実行する必要があるため、通常問題はありません。問題は、Firefoxが同じユーザーアカウントで(同じモニタにあるかどうかにかかわらず)2つのコピーを同時に実行することをサポートしていないことです。

おすすめ記事