Display Power Management Signaling

From ArchWiki
Revision as of 10:58, 10 September 2014 by Alad (talk | contribs) (Modifying DPMS and screensaver settings using xset: add table header)
Jump to: navigation, search

zh-CN:Display Power Management Signaling DPMS (Display Power Management Signaling) enables power saving behaviour of monitors when the computer is not in use. For details on each timeout, see [1]. Note that some monitors make no difference between various DPMS modes.

Setting up DPMS in X

Note: As of Xorg 1.8 DPMS is auto detected and enabled if ACPI is also enabled at kernel runtime.

Add the following to a file in /etc/X11/xorg.conf.d/ in the Monitor section:

Option "DPMS" "true"

Add the following to the ServerLayout section, change the times (in minutes) as necessary:

Option "StandbyTime" "10"
Option "SuspendTime" "20"
Option "OffTime" "30"
Note: If the "OffTime" option does not work replace it with the following, (change the "blanktime" to "0" to disable screen blanking)
Option         "BlankTime" "30"

An example file /etc/X11/xorg.conf.d/10-monitor.conf could look like this.

Section "Monitor"
    Identifier "LVDS0"
    Option "DPMS" "false"

Section "ServerLayout"
    Identifier "ServerLayout0"
    Option "StandbyTime" "0"
    Option "SuspendTime" "0"
    Option "OffTime" "0"

Modifying DPMS and screensaver settings using xset

It is possible to turn off your monitor using the xset tool which is provided by the xorg-xset package in the official repositories.

Note: If using this command manually in a shell you may need to prefix it with sleep 1; for it to work correctly. For example:
$ sleep 1; xset dpms force off

Example commands:

Command Description
xset s off Disable screen saver blanking
xset s 3600 3600 Change blank time to 1 hour
xset -dpms Turn off DPMS
xset -dpms; xset s off Disable DPMS and prevent screen from blanking
xset dpms force off Turn off screen immediately
xset dpms force standby Standby screen
xset dpms force suspend Suspend screen

To query the current settings:

$ 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

See xset for all available commands.

xset display.sh

You could also copy this script:

# Small script to set display into standby, suspend or off mode
# 20060301-Joffer

case $1 in
        xset dpms force $1
        echo "Usage: $0 standby|suspend|off"

Make it executable (chmod u+x /usr/local/bin/display.sh) and run display.sh off. For the latter to work you need to include /usr/local/bin into your path.

DPMS interaction in a Linux console with setterm

The setterm utility issues terminal recognized escape codes to alter the terminal. Essentially it just writes/echos the terminal sequences to the current terminal device, whether that be in screen, a remote ssh terminal, console mode, serial consoles, etc.

setterm Syntax: (0 disables)

setterm -blank [0-60|force|poke]
setterm -powersave [on|vsync|hsync|powerdown|off]
setterm -powerdown [0-60]
Note: If you haven't already read the brief DPMS article linked to below, please skim it to understand how DPMS can be used in the console the same as in X.

Prevent screen from turning off

You can run this command:

$ setterm -blank 0 -powerdown 0

Alternatively you can disable console blanking permanently using the following command:

# echo -ne "\033[9;0]" >> /etc/issue

Pipe the output to a cat to see the escapes

$ setterm -powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"

Pipe the escapes to any tty (with write/append perms) to modify that terminal

$ setterm -powerdown 0 >> /dev/tty3
Note: >> is used instead of >. For permission issues using sudo in a script or something, you can use the tee program to append the output of setterm to the tty device, which tty's let appending sometimes but not writing.

Bash loop to set ttys 0-256

$ for i in {0..256}; do setterm -powerdown 0 >> /dev/tty$i; done; unset i;


xset DPMS settings do not work with xscreensaver

xscreensaver uses its own DPMS settings. See the settings for xscreensaver for more information.

xscreensaver DPMS

You can configure xscreensaver's DPMS settings manually by editing your ~/.xscreensaver file as below, or using the xscreensaver-demo GUI.

timeout:	1:00:00
cycle:		0:05:00
lock:		False
lockTimeout:	0:00:00
passwdTimeout:	0:00:30
fade:		True
unfade:		False
fadeSeconds:	0:00:03
fadeTicks:	20
dpmsEnabled:	True
dpmsStandby:	2:00:00
dpmsSuspend:	2:00:00
dpmsOff:	4:00:00

See also