电脑通过 DisplayPort 接显示器,一旦按显示器关闭按钮,就等效于强制拔线,这个不是 Bug ,是 DP 标准就是这么设计的。对于其他任何接口( VGA DVI HDMI )都没有这个脑瘫的设计,通过操作按钮关闭显示器,仅关闭显示输出,但显示器的信号仍然被电脑识别,电脑仍然可以输出信号,除非直接关闭显示器电源插座(有些显示器也自带切断电源的开关,等效于拔插头)。只有 DP 协议如此“标新立异”。 DP 的脑残设计有可能给用户导致包括但不限于如下问题: 高分辨率显示器关闭再开启后,窗口全跑左上角去了 睡眠后再开机必须先开显示器再开电脑,不然有可能窗口错乱 多显示器场景是重灾区,必须保持所有显示器一直开启,有时偶然关闭了一台显示器,或者有时候只想关注一台显示器,关闭其他显示器,而后再开启后,窗口全是错乱的 关显示器后,远程桌面、串流应用等无法正常工作 网上随便一搜,大量用户深受其害,苦不堪言。制定标准的人到底是如何考虑的,非要标新立异? 显示器, 关闭, 拔线, 错乱
遇到过,我就是情况三的多显示器…… 但是在我的理解中,这个情况似乎不仅仅是 “关显示器就相当于拔线” 我有两台显示器,一台 ViewSonic ,一台飞利浦。我在关闭飞利浦显示器的时候,所有窗口都会自动跑到 viewsonic 显示器上。但是我关闭 viewsonic 显示器的时候,窗口不会有变化。我甚至可以把鼠标移动到原来 viewsonic 显示器的位置上,并摸索着把窗口拖动出来。 这两台显示器均使用 DisplayPort 连接,所称的“关闭”均为使用显示器电源按钮关闭显示器。 所以我觉得这可能不仅仅是 DP 标准的问题,还取决于显示器厂商的实现。
另,这也有可能是 Windows 显示器管理的原因,因为飞利浦显示器( 4K )被我设置成了主显示器,而 ViewSonic ( 1080P ,竖放)是被设置成副显示器的。 我在使用 Linux 的 xrandr --query 命令列出显示器时,即使任意一个显示器被关闭了,也仍然能列出两台显示器 Screen 0: minimum 8 x 8, current 4920 x 2160, maximum 32767 x 32767 HDMI-0 disconnected (normal left inverted right x axis y axis) DP-0 disconnected (normal left inverted right x axis y axis) DP-1 disconnected (normal left inverted right x axis y axis) DP-2 connected 1080x1920+0+110 right (normal left inverted right x axis y axis) 527mm x 296mm 1920x1080 59.93*+ 60.00 59.94 50.00 29.97 25.00 23.98 1680x1050 59.95 1600x900 60.00 1440x900 59.89 1440x240 60.05 1400x1050 59.98 1280x1024 75.02 60.02 1280x960 60.00 1280x720 60.00 59.94 50.00 1024x768 75.03 70.07 60.00 800x600 75.00 72.19 60.32 56.25 720x576 50.00 720x480 59.94 640x480 75.00 72.81 59.94 59.93 DP-3 disconnected (normal left inverted right x axis y axis) DP-4 connected primary 3840x2160+1080+0 (normal left inverted right x axis y axis) 600mm x 340mm 3840x2160 60.00 + 143.98* 119.99 97.98 2560x1440 143.91 120.00 1920x2160 59.99 1920x1080 119.88 60.00 59.94 50.00 1280x1024 75.02 60.02 1280x720 59.94 50.00 1024x768 119.99 99.97 75.03 70.07 60.00 800x600 119.97 99.66 75.00 72.19 60.32 56.25 720x576 50.00 720x480 59.94 640x480 119.52 99.77 75.00 72.81 59.94 59.93 DP-5 disconnected (normal left inverted right x axis y axis) 以上输出在任意一台显示器关闭的情况下,都是一致的。 并且,我也可以一样的摸黑移动窗口、窗口不会被自动调整大小或者转移位置(我使用的窗口管理器是 i3wm ) 所以综合以上的调查,表明这很可能是一个 Windows 显示器管理机制的问题。
@Archeb 我也使用 Linux 桌面,AMD 的显卡。打开桌面环境的“显示器设置“,可以看到里面有两个显示器可供设置(分辨率/方位等),关闭任意显示器,设置里马上就只剩一个显示器。 使用 xrandr 命令输出也是同样情况,关闭一个显示器后,只剩一个显示”connected“。 以上,只有连接 DP 接口才会出现,连接其他接口均不会如此。 可见,这个问题跟操作系统无关,就是 DP 的 bug 。 当然,也不排除有显示器厂商不遵守标准的 DP 协议,而是”自行优化“,关闭显示器后仍然输出信号。 或者某些操作系统或桌面环境或显卡驱动也”自行优化“,检测到 DP 连接的显示器断开后,强制各个窗口仍然保存原位置不变。
@einsdisp 例如 Linux 桌面( Gnome Cinnamon )都可以通过命令禁止桌面环境的“auto-plug”功能,不再检测显示器关闭,这样关闭 DP 显示器后,再开启,窗口不会错乱。但这样的话,也就没法区分拔线、拔插头了。总之,DP 的设计很脑瘫,需要用户自行费尽心机去解决问题。