Display Power Management Signaling (简体中文)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
DPMS (显示电源管理信号,简称DPMS) 可以在计算机一定时间无操作时,将显示器置于节电模式。具体的时间设置可以参考 [1]. 注意有些显示器在不同 DPMS 状态下表现不变。
在 X 中设定 DPMS
注意: 从 Xorg 1.8 开始,只要内核启用了 ACPI, DPMS 就会自动启用。
在 /etc/X11/xorg.conf
的 Monitor
段落中加上上:
Option "DPMS" "true"
把下面的配置加入 ServerLayout
小节, 必要时改变时间(以分钟计):
Option "StandbyTime" "10" Option "SuspendTime" "20" Option "OffTime" "30"
注意: If the "OffTime" option does not work replace it with the following, (change the "blanktime" to "0" to disable screen blanking)
Option "BlankTime" "30"
比较新的X推荐使用 .conf
文件代替 xorg.conf
, /etc/X11/xorg.conf.d/10-monitor.conf
的一个例子如下:
Section "Monitor" Identifier "LVDS0" Option "DPMS" "false" EndSection Section "ServerLayout" Identifier "ServerLayout0" Option "BlankTime" "0" Option "StandbyTime" "0" Option "SuspendTime" "0" Option "OffTime" "0" EndSection
用xset修改DPMS和屏保设定
可以用 xorg-xset 提供的xset
工具关闭屏幕。如果要在shell中关闭显示器,需要在命令前面加上 sleep 1;
. 例如:
sleep 1; xset dpms force off
命令示例:
命令 | 描述 |
---|---|
xset s off | 禁用屏保清空 |
xset s 3600 3600 | 将清空时间设置到 1 小时 |
xset -dpms | 关闭 DPMS |
xset s off -dpms | 禁用 DPMS 并阻止屏幕清空 |
xset dpms force off | 立即关闭屏幕 |
xset dpms force standby | 待机界面 |
xset dpms force suspend | 休眠界面 |
注意: 通过
dpms 0 0 0
可以将 DPMS 超时都设置成零,这样也可以禁用 DPMS. 这种方式更方便,可以使用 xset dpms force off
关闭屏幕。查看当前设置:
$ xset q ... Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600 DPMS (Energy Star): Standby: 600 Suspend: 600 Off: 600 DPMS is Enabled Monitor is On
运行 xset
可以查看全部可用命令.
注意: 如果在 xinitrc 中使用
xset
无法工作,在配置文件中进行设置。
警告: XScreenSaver 和 xfce4-power-manager 会使用自己的 DPMS 设置,详情参考 XScreenSaver#DPMS and blanking settings 和 Xfce#Display blanking.
Linux 终端和 DPMS 的交互
setterm 工具可以通过终端能够识别的转义字符修改终端。可以写入/echo 终端序列到当前终端设备,包括再显示设备,远程 SSH 终端, 控制台,串口控制台。
setterm Syntax: (0 disables)
setterm -blank [0-60|force|poke] setterm -powersave [on|vsync|hsync|powerdown|off] setterm -powerdown [0-60]
防止屏幕关闭
可以运行以下命令:
$ setterm -blank 0 -powerdown 0
也可以通过下列命令禁止终端清空:
# echo -ne "\033[9;0]" >> /etc/issue
将分号后的 0 修改为 3 会在 3 分钟后进入休眠模式。
通过 cat 显示输出中的转义
$ setterm -powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"
将转义输出到任意 tty (with write/append perms) 进行终端修改
$ setterm -powerdown 0 >> /dev/tty3
注意: 使用
>>
而不是 >
. 如果脚本有 sudo 权限问题,tty 可能允许附加但是不允许写入, 可以使用 tee 阻止 setterm 输出到 tty 。用循环设置 ttys 0-256
$ for i in {0..256}; do setterm -powerdown 0 >> /dev/tty$i; done; unset i;