3台のモニターが接続されたNvidia GTX 950 GPUデスクトップシステムを使用しています。 HDMI出力ポートに1つのモニター、DisplayPortポートに2つのモニター。
デフォルトの動作では、「セカンダリ」モニターのいずれかをオフにすると、xrandrが仮想デスクトップのサイズを変更し、残りのディスプレイに合わせてすべてのウィンドウを再配置します。
XrandrがHDMIケーブルや関連付けられたモニターの取り外しを無視するようにして、「仮想デスクトップ」を同じに保ちます(ウィンドウが画面外でアクセスが困難な場合でも)。すべてのアクティブなウィンドウを生き残ったディスプレイに統合するための配置ですか?さらに、ケーブルと同じモニターを再挿入し、再び点灯させるには?
Ubuntu 16.04と16.10はどちらも同じ基本的な動作をしているようです。両方ともブートオプションとしてあります。ありがとうございました。
編集2017:オフスクリーンウィンドウの再配置を自動化するためのbashおよびpythonスクリプトを見つけました。これらは、状況に対処するのに役立ちます。 Ubuntu 17.04(フォーマットフレッシュインストール)を使用しても、この一般的な問題は引き続き発生します。スクリプトの説明: 2番目のモニターを切断した後にオフスクリーンウィンドウを復元する方法? および コマンドラインを使用してウィンドウを特定の画面に移動する
これはHDMI/VGAポートで動作する場合がありますが、検出イベントを常に渡す必要があるDPの標準のため、DPでは動作しません。
VGA/DPを搭載したDell E6410でこれをテストできました。 VGAからケーブルを取り外しても、xrandrのリセットとウィンドウの移動はトリガーされません。
gksu nvidia-settings
Sudo mkdir /etc/X11/xorg.conf.d/
Sudo nano /etc/X11/xorg.conf.d/90_my_nvidia_hacks.conf
デバイスセクションを貼り付けます
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVS 3100M"
EndSection
この行に追加しますOption "UseHotplugEvents" "false"
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVS 3100M"
Option "UseHotplugEvents" "false"
EndSection
Lightdmを再起動または再起動します
Sudo systemctl restart lightdm
これは、X起動時に画面が接続されていない場合でも空のモニターセクションを作成するOption "AllowEmptyInitialConfiguration" "true"
にも役立ちます。
参照:
ディスプレイの接続または取り外し、またはディスプレイの電源をオフにしてから再びオンにすると、予期しない方法でディスプレイが再構成されます
これは、「nvidia-settingsで構成したディスプレイ設定が保持されない」で説明されている問題の特殊なケースです。高度なディスプレイ設定ツールを含む一部のデスクトップ環境では、検出された設定変更に応じてディスプレイレイアウトが自動的に設定されます。たとえば、新しいディスプレイが接続されると、そのようなデスクトップ環境は、現在接続されているディスプレイのセットで使用されていた以前のレイアウトを復元しようとするか、独自のポリシーに基づいてデフォルトのレイアウトを構成します。
RandR 1.2以降をサポートするXサーバーでは、NVIDIA Xドライバーは、ディスプレイの接続および切断時にRandRを介してディスプレイホットプラグイベントをXサーバーに報告します。これらのホットプラグイベントは、ディスプレイ構成を変更するための高度なディスプレイ管理機能を備えたデスクトップ環境をトリガーします。これらの変更は、アクティブなディスプレイのセット、互いの解像度と相対的な位置、ディスプレイごとの色補正設定などの設定に影響する場合があります。
ディスプレイの接続または切断によって生成されるホットプラグイベントに加えて、DisplayPortディスプレイは、物理的なプラグインまたはアンプラグが行われない場合でも、電源を切るとホットプラグイベントを、電源を入れるとホットプラグイベントを生成します。これにより、実際のホットプラグアクションが実行されずに、ホットプラグに起因するディスプレイ構成が変更される可能性があります。
ディスプレイのホットプラグイベントが望ましくない構成変更につながる場合は、「nvidia-settingsで構成したディスプレイ設定が保持されない」にリストされている解決策と回避策を試してください。別の回避策は、UseHotplugEvents X構成オプションを使用して、ホットプラグイベントのNVIDIA Xドライバーのレポートを無効にすることです。このオプションはDisplayPortデバイスには影響しないことに注意してください。DisplayPortデバイスは、適切な機能を確保するためにすべてのホットプラグイベントを報告する必要があります。
Option "UseHotplugEvents" "boolean"
このオプションを有効にすると、NVIDIA Xドライバーは、ディスプレイがNVIDIA GPUに接続または接続解除されたときにRandRディスプレイ変更イベントを生成します。一部のデスクトップ環境は、これらのイベントをリッスンし、ディスプレイが追加または削除されたときにデスクトップを動的に再構成します。
このオプションを無効にすると、DisplayPort以外のディスプレイ(VGA、DVI、またはHDMIを介して接続されたディスプレイ)のこれらのRandRイベントの生成が抑制されます。 DisplayPortを介して接続されたディスプレイのホットプラグイベントを抑制することはできません。
このオプションが有効であるか無効であるかに関係なく、ディスプレイ構成のプローブ(xrandrまたはnvidia-settingsなど)により、RandRディスプレイ変更イベントが生成される場合があることに注意してください。さらに、一部のVGAポートはホットプラグ検出ができません。このようなポートでは、ディスプレイの追加または削除は、ディスプレイ構成を再プローブすることによってのみ検出できます。
デフォルト:オン。ディスプレイが追加または削除されると、ドライバーはRandRイベントを生成します。
Option "AllowEmptyInitialConfiguration" "boolean"
通常、NVIDIA Xドライバーは、NVIDIA GPUに接続されているディスプレイデバイスを検出できない場合、起動に失敗します。 AllowEmptyInitialConfigurationはその動作をオーバーライドするため、ディスプレイデバイスが接続されていなくても、Xサーバーは起動します。
NVIDIA GPUにディスプレイデバイスが接続されていない状態でXサーバーを起動することが期待されるが、後で接続される可能性がある場合、このオプションを有効にすることは意味があります。たとえば、一部のモニターは、GPUに物理的に接続されていても、電源をオフにしたときに接続済みとして表示されません。
これが役立つもう1つのシナリオは、RandR 1.4ディスプレイオフロード(第33章「RandR 1.4でのグラフィックディスプレイのオフロード」を参照)を使用して非NVIDIA内部ディスプレイパネルに画面を表示するオプティマスベースのラップトップですが、外部ディスプレイは後で接続します。
デフォルト:オフ。少なくとも1つの接続されたディスプレイデバイスが見つからない場合、ドライバーは起動を拒否します。