↑問題にぶつかってるときのワイ |
今のモニターに変えた時からそうだったんですが、モニターが休止状態から復帰すると休止前に並べていたブラウザやらアプリがモニターの左端に移動している現象に遭遇していましまして。
あんまり気にしてなかったんですが、最近またPC使うようになって気になってきたので調べて直しました。
自分のPCの環境
- メインモニター
- 4Kディスプレイ PCとの接続は「Display Port」
- サブモニター
- フルHDディスプレイ PCとの接続は「HDMI」
原因
どうもメインモニターの接続方法である「Display Port(以下DP)」で尚且つデュアルディスプレイ時にしか起こらない問題らしい。
DPには「プラグアンドプレイ」という仕様があり、モニターの電源が休止状態になるor切れると、DP側ではないモニターのみの認識をされてしまい結果ウィンドウがサブモニターに寄ってしまって、復帰したときにサブモニター側の解像度に合わせた配置になる……という有名な問題との事。
どうやって直す?
- シングルモニターにする
- デュアルモニターにしたいので却下
- DPケーブルに細工をして、信号が途切れないようにする
- 参考:DisplayPortの切断を回避するアダプター
- 知識が無いのでちょっと手元では出来なさそう。
- この細工がしてあるDPケーブルも売っているとの事だが、リスクがあるので却下
- HDMIからDPに変換するコネクタ端子を用意する
- 参考:HDMI出力の機器をDisplayPortのディスプレイに繋げる変換アダプタ
- 購入一歩手前で「HDMIケーブルさせるなら5の方法で十分では??」となり購入に至らず
- DPケーブルとHDMIケーブルの2本差し
- 冷静に考えて2本差し出来るならHDMI一本で十分なのでは?
それとも、DPケーブルを絶対刺さないといけない理由がある……? - DPケーブルからHDMIケーブルに入れ替える
- というわけで手元にHDMIケーブルがあり、グラボ側のHDMI端子も空いていたのでこれを試すことにした
HDMIケーブルに変更したが……?!
早速DPからHDMIケーブルに変更し、再起動!
モニターの電源も休止状態にして復帰して試してみる。
がっ…だめ………!移動してしまっている………!なぜ……………!
……そういえば調べている途中でレジストリ値の値を変更する方法が乗っていたのを思い出した。
もしかしたらそこに変な値が入っているのかも?(入っていないかもだけど)
レジストリの値を変更してみる
まずレジストリの該当のキーを確認してみる。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
上記キーに入っているどれかの値を規定値に変更すればよいらしい。
ありすぎィ! |
バックアップはキーを右クリックして「エクスポート」 |
削除はキーを右クリックして「削除」 |
そして再起動。
すっきり |
とりあえず設定は1つだけになった。
あとは内部の値を確認する。
見てみる限りは「00」はディスプレイ1、「01」はディスプレイ2の設定のようだ。
00が4Kモニターなので、以下の設定になっていればOK(フルHDディスプレイはカッコ内)
赤下線部両方とも修正する必要があるので注意 |
- PrimSurfSize.cx
- 3840(1980)
- PrimSurfSize.cy
- 2160(1080)
- DwmClipBox.right
- 3840(1980)
- DwmClipBox.bottom
- 2160(1080)
- ActiveSize.cx
- 3840(1980)
- ActiveSize.cy
- 2160(1080)
1週間ほど同じ設定のまま置いて試してみて今の所問題なさそうなので、とりあえずDP問題に困っててHDMIポートが余っているのであれば上記の方法を試してみるといいかもしれないです。
DPポートしかどうしても使えん……って時は以下の記事とかも参考になるかもしれないです。
参考:DisplayPort電源オフ問題!ウィンドウのずれを完全解決できる方法まとめ
あとがき
とはいえ、標準で搭載されている接続のDisplayPortの不具合とも仕様とも言えるこの挙動は正直あんまりいい感じはしない……
一応、Windows Insider Program Build 21287に
Windows 10 ビルド21287、マルチディスプレイのアプリ再配置の問題を修正
といったWindows側で対応したパッチが含まれたという事なので、もしかしたらどこかのwindowsアップデートで来るかもしれないのでちょっと期待。