UI から snap や resize 関連の設定を全てオフにしても勝手な resize や移動が止まらず.調べると snap(Aero)機能とは別にモニター(本体含めてだが)の sleep 復帰,モニター電源を切った時,切替器,仮想デスクトップ等で解像度(capability)が正常に認識されない問題(No EDID)が有るようだ.
仮想画面やモニター切替時にいちいち window が移動するのにイライラしてたが,Windows Pager の taskbar 表示枠内で移動させた場合(実画面と違って微調整は困難)の window position (左上)は保存されててズレないのを発見(一度狂っても仮想画面を選択し直すと戻る).
ウィンドウの移動に関するレジストリ項目
レジストリ項目を直接変更.この設定でもモニタ切替時にヘタすると特定 window が最大化,他は左上端を揃える resize 移動が依然止まらずムカつく.
この現象も Windows Pager の仮想画面を選択し直すと window position は回復するがサイズは変化したまま.
HKEY_CURRENT_USER\Control Panel\Desktop
DockMoving (SZ) 上端で最大化 | 1 ー> 0 |
DragFromMaximize (SZ) 最大化中のドラッグ動作 | 1 (最大化解除) |
DragFullWindows (SZ) 移動中の表示 | 1 (中身も表示) |
SnapSizing (SZ) 上下方向の最大化 | 1 ー> 0 |
WindowArrangementActive (SZ) 左右へのスナップ | 0 |
Aero Shake のみを無効にする方法
使ってないので実害は無いが(UI 設定で無効化されてるが副作用の可能性も疑い),一応 sub PC で(その後 main PC にも)適用.
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer (新規キー)
NoWindowMinimizingShortcuts (DWORD 32ビット値) Aero Shake | 1 (無効) |
おそらく 1 か 0 しかねのに DWORD つうのが気持ち悪い.他にも2値なら boolean て属性にすりゃ良いのに SZ だったり.
monitor capability (EDID)が正常に認識されない問題
追記: 後日解像度の異なる monitor に交換したので再変更.
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration の
\SIMULATED_ ... *1という情報が見られるが,1台目の sub PC にはこの項目が存在するものの,2台目の main PC には無く代わりに \NOEDID_8086_1912_ ... が2つ存在(reboot しても変わらず).
main PC の2項目には下に \00 と \01 が存在(\01 の方は 1600x1200 になってるのでそのまま).
以下のレジストリ項目を全て変更して reboot.これにより monitor 切替時の不快な window resize や移動は解消.なお window position は Windows Pager の taskbar 表示枠内で移動させた場合しか keep されない(実画面上で移動しても仮想画面を切り替えると元の position のままなので逆に便利か).
\SIMULATED_ ... もしくは \NOEDID_8086_1912_ ... の下の \00
PrimSurfSize.cx 1024 -> 1600
PrimSurfSize.cy 768 -> 1200
上の2項目だけで良いという説.さらにひとつ下の \00 の ActiveSize を変更という説や,
\00\ActiveSize.cx 1024 -> 1600
\00\ActiveSize.cy 768 -> 1200その6項目全部という説も.
\00\DwmClipBox.bottom 768 -> 1200
\00\DwmClipBox.right 1024 -> 1600
\00\PrimSurfSize.cx 1024 -> 1600
\00\PrimSurfSize.cy 768 -> 1200
変更前(Windows が default として扱う解像度)