使用“xset dpms Force off”关闭双显示器不起作用 - 为什么?

使用“xset dpms Force off”关闭双显示器不起作用 - 为什么?

我想通过运行来关闭我的双显示器: xset dpms force off但只有主显示器被关闭,而另一个显示器只是出现“黑屏”(就像它被关闭一样),但它没有关闭。 LED 仍呈绿色闪烁,表示显示器已开启。

答案1

您究竟想实现什么目标?为了管理监视器的使用,您可以/应该使用 randr 扩展,这将xrandr是脚本中的首选武器。

xrandr -q显示计算机的所有输出以及有关连接的显示器的一些信息。要禁用输出,您可以输入类似xrandr --output=HDMI1 --off.在您的情况下,您必须将“HDMI1”替换为xrandr -q告诉您输出名称的名称。禁用输出后,X 不再(根本)使用该显示器,并且很可能会进入睡眠状态。

如果您确实希望关闭显示器,那么您的问题是xset既不知道也不关心您的计算机连接了多少个显示器,因为xset与 Xserver 通信,而不是它们的组件,也绝对不是硬件。这意味着xset仅发送一个“dpms 强制关闭”请求,并且该请求由 Xserver(处理并)发送到您的监视器之一。我猜它会将其发送到您的主显示器,即连接到显示列表中第一个输出的显示器xrandr -q。如果您使用的是 gnome,那么这与您的 gnome 面板所在的显示器相同。

实际上,我猜你必须发出xset两次请求。如果这不能立即解决问题,我认为您需要明确说明所连接的显示器中哪些是主要的,哪些不是主要的问题。

xrandr允许您使用该--primary选项设置主输出/监视器。如果你的输出是HDMI1HDMI2,我会尝试:

xrandr --output HDMI2 --primary
xset dpms force off
xrandr --output HDMI1 --primary
xset dpms force off

检查输出xrandr -q并编写一个脚本,以与列表相反的顺序(即自下而上)关闭监视器。原因是,虽然 (x)randr 应该能够任意使输出成为默认输出,但我不会/不相信它能够完美地工作,特别是在涉及闭源驱动程序的情况下。通过以相反的顺序操作监视器,您可以最后关闭“自然”主监视器,如果出现问题,拥有可用的“自然”主监视器是您拥有功能齐全的 Xserver 的最佳机会。

答案2

问题的澄清:我猜罗克斯想在他离开时关闭他的显示器(但让计算机保持运行)。这通常发生在屏幕保护程序显示漂亮图案一段时间后。使用“xset dpms Force off”命令是一种能够测试一切是否正常工作的方法,而无需等待半小时让 DPMS 屏幕保护程序启动。(您也可以将 DPMS 关闭的超时设置得很短,但是这只是加快测试速度的另一种方法)。

我刚刚在我的系统上测试了这个。它有:01:00.0 VGA 兼容控制器:Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450],当我输入“xset dpms Force off”时,两台显示器都显示“无信号”三秒钟,然后打开 LED琥珀色(即睡眠模式)。 “这个对我有用”!

所以...要找出您的情况出了什么问题:您可以交换显示器来验证您的第二个显示器是否支持 DPMS?如果是这样的话,正如我所料,这可能是一个错误。可能非常特定于您的芯片/软件。您正在运行最新的软件吗? (例如 ubuntu 12.04)。

相关内容