仮想モニターを作成し、現在のモニター(Xセマンティクス)に別の画面として追加し、VNCを介して共有したいと思います。今やりたいことは、Arch Linux Wikiの記事の下で明確に説明されています。長い設定
これはXを使ってマルチモニタを構築する元の方法であり、何十年も使用されてきました。各物理モニタにはX画面が割り当てられており、モニタ間でマウスを移動できますが、やや独立しています。通常、XディスプレイにはDISPLAY環境変数に:0などの識別子が設定されていますが、この構成では各画面の$ DISPLAY値が異なります。最初の画面は0.0、2番目の画面は0.1などです。この設定では、複数の画面をサポートする特別なプログラム(GIMPやEmacsなど)を除いて、画面間でウィンドウを移動することはできません。ほとんどのプログラムでは、プログラムが別の画面に表示されるように、起動時にDISPLAY環境変数を変更する必要があります。
# Launch a terminal on the second screen
$ DISPLAY=:0.1 urxvt &
または、各画面に端末がある場合、実行されたプログラムはDISPLAY値を継承し、実行されたのと同じ画面に表示されます。ただし、画面間でアプリを移動するには、そのアプリを閉じて別の画面で再度開く必要があります。これらの作業方法には明確な利点があります。たとえば、ある画面にポップアップウィンドウが表示されても、別の画面で作業しているときに注意を引くことはありません。各画面はかなり独立しています。
Tl;dr: 次のように表示: 0.1
私は過去に現在の画面を拡張した仮想ディスプレイをxrandr
。
xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
xrandr --addmode VIRTUAL1 1024x768_60.00
xrandr --output VIRTUAL1
発生する問題は、モニタ間(実際のモニタからVNCモニタへ)ウィンドウをインポートする必要があることです。新しいディスプレイが新しい画面になるようにどのように指定しますか?私はこれを逆にしたい質問、ウィンドウが呼び出されたのと同じモニタでウィンドウが開くように「問題」を発生させます。
答え1
発生する問題は、画面の間にウィンドウを引っ張らなければならないことです。
アプリケーションがATをサポートするように特に書かれていない限り(ほとんどのXアプリケーションはサポートしていない)、これは不可能です。を読むと、man XOpenDisplay
Xアプリケーションはそのモニタに画面のリストを返しますが、XtOpenDisplay
画面を指定するように強制するツールキット操作がすでにあることがわかります。
Xアプリケーションのウィンドウを「画面間」に移動したい場合は、「画面」がX画面にならず、同じXディスプレイ/画面の組み合わせの一部になる可能性があります。
したがって、必要なのは、2つのモニターに単一のフレームバッファーが表示されることです(その部分は簡単です)、VNCを介して1つのモニターのフレームバッファーを共有する必要があります。使用しているVNCサーバーにパッチを適用しなくても、これが可能かどうかはわかりません。