私はXFCE 4.12を実行しており、同じコンピュータに2つのX画面と2つのグラフィックカードで構成される3つのモニタがあります。モニターの2つはnvidia Twinview機能を使用して、Xorg構成のDevice0にX画面のScreen0を形成します。 3番目のモニターは、Xorg構成のDevice1の2番目の画面であるScreen1に使用されます。 Screen0のモニタ間でウィンドウをドラッグできます。また、Screen0とScreen1の間でマウスを自由に移動でき、2つのX画面間でクリップボードデータも転送できます。
両方のXスクリーンは、独自のビューポートセットを備えた独立したデスクトップとして機能します。私はこれが好きです。片側を自動的に「固定」するのに便利です。しかし、あるX画面でプログラムを実行すると、単に別のX画面にドラッグアンドドロップすることはできません。別の画面でプログラムを実行するには、その画面で再起動する必要があります。
私の質問は、プログラムの実行中にX Windowsのいくつかのコマンドやその他の機能を使用してプログラムを別の画面に移動する方法はありますか?ありがとうございます。
修正する:この質問に賞金をかけようとしていますが、しばらくこれについて気になりました。賞金を受け取るには、いくつかの証拠資料を提供する必要があります。
答え1
最後に、そのアプリケーションを表示するXサーバーを介して直接実行されているXアプリケーションを移動することはできません。1]これは、XサーバーがXサーバー間で簡単に転送できないクライアントウィンドウに対して保持しているメタデータと関連している可能性が高いです。
マルチスクリーンサポートで明示的に書かれていないプログラム用に個別に設定された画面(XineramaやTwinviewなどの拡張機能を使用していない場合)も同様です。 「この設定では、次のような特別なプログラムを除いて、画面間でウィンドウを移動することはできません。GIMPとEmacsは複数の画面をサポートします。」[2]
理論的には、アプリケーションがXサーバーのコンテキスト切り替えに対処するように設計されている場合は、新しいディスプレイ/画面番号を付与し、ウィンドウの状態を保存し、新しいXサーバー/画面に接続してウィンドウを復元できますが、ほとんどアプリケーションではありません。このように設計され、必然的に多くの定型句が必要なライブラリや、あらゆる方法で容易にすることができるライブラリが含まれています。
最適なオプションは、GNU Screenをコンソールアプリケーションと端末で使用できるように、XクライアントとディスプレイXサーバーの間でプロキシとして機能できる他のアプリケーションを使用することです。 XmoveとXpra [サム&4]が最も広く使用されている実装のようです。これを使用する際の注意点は、実行しているアプリケーションをXmoveまたはXpraにXサーバーとして登録する必要があるため、異なるディスプレイサーバー間でコンテキスト切り替えが可能であることです。
最後に、スーパーユーザーに関する別の質問があります。この質問は少し異なる目的で同様の質問をします(意図的にクライアントを切断または再接続する代わりにXがクラッシュした後に再接続)。5]
- [1]https://en.wikipedia.org/wiki/Xmove
- [2]https://wiki.archlinux.org/index.php/Multihead#Separate_screens
- [サム]https://wiki.archlinux.org/index.php/Allow_a_program_to_continue_after_logoff
- [4]https://wiki.archlinux.org/index.php/Xpra
- [5]https://superuser.com/questions/238728/recover-an-application-in-sleeping-state-after-an-x-server-crash