
私の企業環境では、サーバー ファーム内のマシンで VNC セッションを取得する Windows マシンを実行する必要があります。私の Windows マシンは、異なる解像度のモニター (左が 1600x1080、右が 1920x1200) を備えたデュアル ヘッドです。モニターにまたがる VNC セッションを作成すると、VNC セッションでウィンドウを最大化すると、両方のモニターにまたがって表示されます。
代わりに、Windows マシンの場合と同じように「最大化」イベントを動作させたいのです。つまり、ウィンドウが表示されているディスプレイにのみ最大化したいのです。
「最大化領域」とでも呼べるものを、どのように定義すればよいでしょうか。VNC グラフィカル プレーン内の領域で、「最大化」をクリックすると、ウィンドウが現在 (ほとんどの場合) 存在する領域にのみ拡大されます。
これを gnome、X、xrandr、またはその他の魔法のインターフェースで実行できますか?
答え1
xrandr と xdpyinfo は、ディスプレイを 1 つの画面として表示し、そのサイズは両方のディスプレイを合わせたサイズ (例: 3520x1200) になるものと想定しています。
したがって、やりたいことは、何らかの方法で画面を 2 つの論理デスクトップに分割することです。
私が知る限り、これを実現する最も簡単な方法は、「タイル ウィンドウ マネージャー」と呼ばれるものを使用することです。xmonad と dwm がその 2 つの例です。
もう 1 つのオプションは、Openbox、Blackbox、Sawfish など、垂直方向の最大化のみを許可するウィンドウ マネージャーを使用することです。多くの場合、これらのウィンドウ マネージャーには、タイトル バーの最大化ボタンを中クリックするなど、これを行うためのショートカットが用意されています。
さらに別のオプションとして、Devilspie のようなものを使用することがあります。これは、たとえば、Firefox を 0x0 にサイズ 1600x1080 で配置するなど、ルールに基づいてウィンドウのプロパティを設定します。
答え2
Xinerama をオフにする必要があります。これは /etc/xorg.conf ファイルで行います。ただし、これによりデュアル ヘッドが使用できなくなる可能性があります。NVIDIA で実行している場合は、'nvidia-settings' プログラムを使用して適切な xorg.conf をセットアップすると、Xinerama は不要になります。