Display Power Management Signaling

提供: ArchWiki
ナビゲーションに移動 検索に移動

DPMS (Display Power Management Signaling) はコンピュータが操作されていないときにモニターを省電力モードに移行させる技術です。

それぞれの Timeout の詳細は ここ の Description セクションを見て下さい。

X で DPMS を設定する

ノート: Xorg 1.8 から DPMS は自動で検出され、カーネルの実行時に ACPI が有効になっていれば自動で有効になります。

以下を /etc/X11/xorg.conf.d/ 下のファイルの Monitor セクションに追加してください:

Option "DPMS" "true"

以下を ServerLayout セクションに追加してください、時間 (分単位) は必要に応じて変更してください:

Option "StandbyTime" "10"
Option "SuspendTime" "20"
Option "OffTime" "30"
ノート: "OffTime" オプションが機能しない場合は、以下で置き換えてください ("blanktime""0" に変更すると画面の暗転が無効になります):
Option         "BlankTime" "30"

サンプルファイル /etc/X11/xorg.conf.d/10-monitor.conf は以下のようになります。

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

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

xset を使って DPMS とスクリーンセーバーの設定を変更する

公式リポジトリxorg-xset パッケージに入っている xset ツールを使うことでモニターを切ることが可能です。

ノート: シェルにおいてこのコマンドを手動で使用する場合、正しく動作させるために sleep 1; を前に付ける必要があるかもしれません。例:
$ sleep 1; xset dpms force off

Energy Star (DPMS) の機能を操作するには (タイムアウト値をゼロにするとそのモードが無効になります):

$ xset -dpms Energy Star features off
$ xset +dpms Energy Star features on
$ xset dpms [standby [suspend [off]]]     
$ xset dpms force standby 
$ xset dpms force suspend 
$ xset dpms force off 
$ xset dpms force on  (also implicitly enables DPMS features)

xset スクリーンセーバーコントロール

xset を使ってスクリーンセーバーをコントロールすることができます:

$ xset s [timeout [cycle]]  
$ xset s default    
$ xset s on
$ xset s blank              
$ xset s noblank    
$ xset s off
$ xset s expose             
$ xset s noexpose
$ xset s activate           
$ xset s reset

現在の設定を表示するには

$ 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

サンプル

DPMS をオフにする

$ xset -dpms

スクリーンセーバーを無効にする

$ xset s off

DPMS を無効にして画面が消えないようにする

動画やスライドショーを見るときに便利です:

$ xset -dpms; xset s off

直ちに画面をオフにする

コンピュータから離れるとき、ディスプレイがオフになるよう設定したタイムアウトまで待つ必要はありません。xset コマンドを使って強制的にブラックアウトさせることができます。

$ xset dpms force off

画面をスタンバイ状態にする

$ xset dpms force standby

画面をサスペンド状態にする

$ xset dpms force suspend

画面を消灯するための待機時間を5分から1時間に変更する

$ xset s 3600 3600

xset display.sh

以下のスクリプトをコピーして使うことも可能です:

/usr/local/bin/display.sh
#!/bin/bash
# Small script to set display into standby, suspend or off mode
# 20060301-Joffer

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

実行可能属性をつけて (chmod u+x /usr/local/bin/display.sh) 実行してください display.sh off。後者を動かすには /usr/local/bin にパスを通す必要があります。

setterm を使って Linux コンソールで DPMS を操作する

setterm ユーティリティはターミナルが認識するエスケープコードを出してターミナルを変更します。画面に表示されていようといまいが、リモートの ssh ターミナル、コンソールモード、シリアルコンソールなど無関係に、現在のターミナルデバイスにターミナルシーケンスを書き出します。

setterm の構文: (0 disables)

setterm -blank [0-60|force|poke]
setterm -powersave [on|vsync|hsync|powerdown|off]
setterm -powerdown [0-60]
ノート: 下の DPMS に関する短い記事をまだ読んでいないのであれば、ざっと読んで、どうやって X と同じように DPMS がコンソールで使えるのか理解すると良いでしょう。

画面がオフにならないようにする

次のコマンドを使うことができます:

$ setterm -blank 0 -powerdown 0

また、次のコマンドでコンソールが黒くなるのを永続的に無効にすることができます:

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

出力を cat にパイプでつなげてエスケープを表示する

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

エスケープを tty にパイプでつなげて (書込・追記パーミッション) ターミナルを変更する

$ setterm -powerdown 0 >> /dev/tty3
ノート: >> 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.

tty 0-256 を設定する Bash ループ

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

トラブルシューティング

xset の DPMS 設定が xscreensaver で機能しない

xscreensaver は固有の DPMS 設定を利用します。詳しくは xscreensaver の設定を参照してください。

xscreensaver DPMS

以下のように ~/.xscreensaver ファイルを編集したり、xscreensaver-demo GUI を使うことで xscreensaver の DPMS 設定を手動で設定することができます。

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

参照