我正在运行 openbox 窗口管理器并在我autostart.sh
的控制显示电源管理中使用这一行:
xset dpms 0 60 0
Run Code Online (Sandbox Code Playgroud)
这很好地工作,导致显示在 60 秒不活动后暂停。
但是,当显示器响应鼠标移动、按键等重新唤醒时,屏幕将处于全亮状态。这浪费了力量,有时还会让人眼花缭乱。如果我使用笔记本电脑的亮度控制键 ( Fn+ <-/ ->) 来调整亮度,第一次按下会将亮度恢复到显示暂停之前的亮度。
我想要的是,一旦显示器被重新唤醒,屏幕就会处于暂停前的亮度,即不必点击亮度控制键之一。
我在 Acer Aspire 5742 上运行 ubuntu 10.10。
似乎当我聚焦某些网页时,我的屏幕保护程序会启动,但屏幕不会自行关闭。有没有人知道为什么会这样?有没有办法禁用阻止 DPMS 启动的任何东西?
我有一台显示器,在不使用时由我的 Debian PC 正确关闭。我将它连接到另一台机器上,这一次,它从未关闭。
在/etc/X11/xorg.conf
,我有:
“监视器”部分 标识符“通用监视器” 选项“DPMS”
X11启动时识别:
(二)加载扩展DPMS ... (II) VESA(0):DPMS 能力:StandBy Suspend Off;RGB/彩色显示 ... (**) 选项“dpms” (**) VESA(0):启用 DPMS
操作系统是 Debian 5 (Lenny)。显卡是:
00:02.0 VGA 兼容控制器:Intel Corporation 82G33/G31 Express Integrate d 图形控制器(修订版 02)(prog-if 00 [VGA 控制器]) 子系统:Hewlett-Packard Company Device 2a6f 标志:总线主控、快速开发、延迟 0、IRQ 5 fe900000 处的内存(32 位,不可预取)[大小=512K] b080 处的 I/O 端口 [size=8] d0000000 处的内存(32 位,可预取)[大小=256M] fe800000 处的内存(32 位,不可预取)[大小=1M] 功能:[90] 消息信号中断:掩码 - 64 位 - 队列 = 0/0 启用 - 功能:[d0] 电源管理版本 2
X11 是:
X.Org X …
似乎 GNOME 更新到 Wayland 导致了一些问题,最大的是定期崩溃,使您返回登录屏幕。另一个希望更容易解决的问题是我不能再让我的显示器进入睡眠状态。
在更新之前,我使用了这个绑定到快捷方式的 sh 脚本:
sleep 1; xset dpms force off
Run Code Online (Sandbox Code Playgroud)
在它产生以下错误后:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 147 (DPMS)
Minor opcode of failed request: 6 (DPMSForceLevel)
Serial number of failed request: 12
Current serial number in output stream: 14
Run Code Online (Sandbox Code Playgroud)
使用 Wayland 手动将显示器置于睡眠状态的正确方法是什么?
编辑:
DPMS 似乎无法正常工作,这就是错误的原因。
检查 DPMS 状态:
xset -q
Run Code Online (Sandbox Code Playgroud)
结果:
DPMS (Energy Star):
Display is not capable of DPMS
Run Code Online (Sandbox Code Playgroud)
xset +dpms 命令不会启用它。它在 Gnome 更新之前工作,因此支持 DPMS。这里可能是什么问题?
我想通过运行来关闭我的双显示器:
xset dpms force off
但是只有主显示器被关闭,而另一个只是“黑屏”(就像它被关闭一样)但它没有关闭。LED 仍呈绿色闪烁,表示显示器已开启。
我正在运行通过 displayport 连接到 Dell U2711 显示器的 Mint 13。
显示 GDM 登录屏幕时,DPMS 不会关闭显示器。
如果我登录并运行
$ xset -q
Run Code Online (Sandbox Code Playgroud)
我得到
...
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 0 cycle: 0
...
DPMS (Energy Star):
Standby: 600 Suspend: 600 Off: 600
DPMS is Enabled
Monitor is On
Run Code Online (Sandbox Code Playgroud)
如果我跑
$ xset dpms force off
Run Code Online (Sandbox Code Playgroud)
显示器黑屏约两秒钟,然后又重新亮起。
我已经尝试禁用我的鼠标,正如这篇文章所建议的那样
$ xinput --set-prop [id] "Device Enabled" "0"
Run Code Online (Sandbox Code Playgroud)
但没有运气。
症状与这篇文章的有点不同,我没有运行 gnome-power-manager。
有人可以告诉我我做错了什么吗?
这是我的显卡和驱动程序信息:
$ lspci -v | grep VGA
05:00.0 VGA compatible controller: …
Run Code Online (Sandbox Code Playgroud) 我一直在通过 yocto 构建的 Linux 版本上使用 dpms/blanking 设置。
我注意到的奇怪之处是“空白”和“dpms off”都使显示器进入睡眠状态。我原以为消隐只会让屏幕变黑,而不是真正关闭显示器。我错了吗?
消隐测试:
$ xset s blank
$ xset s activate
Run Code Online (Sandbox Code Playgroud)
DPMS测试
$ xset dpms force off
Run Code Online (Sandbox Code Playgroud)
我想要的是在很短的时间间隔内使屏幕空白,然后在较长的时间间隔后实际关闭显示器电源。也许我应该看一个最小的黑色屏幕保护程序,而不是使用内置的空白屏幕。
我通常对 DPMS 屏幕消隐非常满意,但有一个(相当烦人的情况):当使用游戏手柄通过 Wine 玩游戏时,屏幕会在一段时间后变黑。我猜在这种情况下,Xorg 无法识别按下游戏手柄上的按钮(按预期键盘会阻止 DPMS 激活)。
我知道在这种情况下我可以求助于某种 hack,比如xset
在运行 wine 之前禁用 DPMS (并在之后重新启用它)的包装脚本,但我想知道是否有更好的解决方案。
注意:我在 ArchLinux 上运行 XMonad,以防万一。
几年来(~2012-2020),在多台计算机(不同年份的 AMD/Intel、S3/AMD/Intel 显卡)上,我观察到了 X11 中一个奇怪的、与 DDX 无关的错误。
有时,经过几次睡眠 ( echo mem > /sys/power/state
) 和唤醒周期后,X11 会“忘记”显示器的 DPMS 设置,并无限期地保持屏幕打开。
在这种状态下,xset dpms force suspend
(或 - standby
) 可以正常工作;我想知道该错误是否存在于活动检测或超时管理中。
有时问题需要数周时间才会浮出水面;有时它发生得非常快。我前几天碰巧需要重新启动,问题就出现了。在此之前,我想我在这台机器(我已经使用了大约一年)上只遇到过一次这个问题。
嗯,也许这实际上是一个竞争条件。耶耶耶。
作为严格测试,我将所有可以设置的值从默认的 600(10 分钟)更改为 5 秒。现在,xset q
正在向我展示:
Screen Saver:
...
timeout: 5 cycle: 5
...
DPMS (Energy Star):
Standby: 5 Suspend: 5 Off: 5
DPMS is Enabled
Monitor is On
Run Code Online (Sandbox Code Playgroud)
我的屏幕既没有被 X 屏幕保护程序清空,也没有进入 DPMS 待机/挂起状态。
我猜我需要构建自己的 X 副本,添加尽可能多的printf
s,并尝试记住始终使用我的 X 而不是系统 X...但在我去那里之前,我想知道是否有人有任何有趣、有见地的花絮供我先尝试。
谢谢 :) …
我可以关闭我的显示器,xset dpms force off
但有些东西阻止了 KDE 将其关闭。另一方面,当我播放很长的 youtube 视频时,它可能会关闭(!)。这在 5 分钟后正确发生,因为我已经在“系统设置 > 电源管理 > 节能 >(选中)屏幕节能 > 5 分钟后关闭”中进行了设置。
如何检查哪个活动/程序阻止我的显示器关闭?
我在 Debian (Jessie) 上使用 KDE 4.14.2,在系统设置中对于如何触发锁定屏幕没有什么特别突出的,经过大量研究后,我最终绑定 Ctrl+L 来运行以下命令:
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && xset dpms force off
Run Code Online (Sandbox Code Playgroud)
这将触发锁定屏幕并关闭我的显示器。问题是,如果有人撞到我的办公桌(这是经常发生的),显示器会打开,但不会再次关闭。
我该怎么做才能让我的显示器在 X 分钟后自动关闭?
我想强制我的屏幕为空白,并使其保持空白,无论我使用键盘和鼠标做什么,直到它收到取消空白的命令(有点像锁)。
我知道的命令是:
xset dpms force off
sleep 2
xset dpms force on
Run Code Online (Sandbox Code Playgroud)
我只希望它空白两秒钟然后取消空白,但无论如何我希望它在这两秒钟内绝对保持空白。这可以做到吗?
语境
我正在运行带有 Cinnamon 图形界面的 Debian Stretch 发行版。
我用这个命令关闭显示
xset dpms force off
Run Code Online (Sandbox Code Playgroud)
当我想睡觉时,它对我很有用,只需启动视频而不受屏幕光线的干扰。请注意,如果鼠标指针处于活动状态(移动),则显示会打开。
问题
如果视频是由 VLC 或 Totem 电影播放器启动的,则一切正常。
如果视频是由 mplayer 启动的,则显示关闭 12 秒,然后出现视频,这不是我所期望的......
我不知道为什么命令“xset dpms force off”会在 mplayer 的应用程序中停止。