現在実行中のアプリケーションの表示を変更する方法

現在実行中のアプリケーションの表示を変更する方法

中央サーバーに複数のモニターがオンになっています。特定のプラットフォームで実行されているX-windowアプリケーションをDISPLAY別のプラットフォームに「移動」できますかDISPLAY?これはどのように達成できますか?

xpra複数のリモートディスプレイを使用しています。

答え1

DISPLAY2つの理由で実行されているX Windowアプリケーションを、変数によって決定された他のモニタに移動することはできません。

最初は実行中のプロセスの環境を変更することは困難です。そして、変動を考慮する方法でこれを安定して実行することは不可能です。

2つ目は、DISPLAY変数が単なる入力であり、通常はアプリケーションの起動時にのみ考慮されることです。 Xアプリケーションの呼び出しXOpenDisplay初期段階では、直接的または間接的に、そして(またはむしろ、XTOpenDisplay)はDISPLAY考慮する必要があります(必要に応じてXサーバーを指定して他の方法で使用できます)。 Xサーバーへの接続を表す不透明構造へのポインタをXOpenDisplay返しますDisplay。これは今からXサーバーとの通信に使用されるすべてです。後で変更された値はDISPLAY何の影響もありません。アプリケーションは何らかの方法で値が変更されたことを認識し、Xサーバーへの接続を閉じてから新しい接続を開く必要があります。

この2つの点をまとめると、アプリケーションが望ましくないときにディスプレイを変更することはもちろん、ディスプレイを変更できるアプリケーションを書くことも非常に難しいことを意味します(なぜなら、そうするように設計されているからです)。

関連情報