Display Power Management Signaling (正體中文)

DPMS
(VESA Display Power Management Signaling)  當電腦非使用中啓用螢幕省電特性。可以按照
DPMSSetTimeouts(3)
的說明來設定 監視器進入預設的省電等級 ——待用(standby,隨時再顯示)、暫停(suspend,省電但再顯示慢)或關閉 (off,連背光都全關)—— 之前停止活動的時間。
注意DPMS是基於CRT螢幕所開發，而在LCD顯示器上通常 待用、暫停、關閉等模式下並沒有差別。
Xorg中設定 DPMS
註記
截至Xorg 1.8的 DPMS 如果 ACPI 也在核心執行(kernel runtime)時啓用會自動偵測並啓用。
加入下列文字到檔案：
/etc/X11/xorg.conf.d/
在
Monitor
部份 (如果沒有自行建立) :
Option "DPMS" "true"
加入下列文字設定到
ServerFlags
段落，如果需要自定就修改時間(單位分鐘):
Option "StandbyTime" "10"
Option "SuspendTime" "20"
Option "OffTime" "30"
註記
如果
"OffTime"
選項沒有工作, 用 screen blanking 替代, 這選項將保持螢幕常常以一個黑色圖片來顯示 (以LCD來說，液晶轉暗面但背光沒有關閉)。或者, 變更
"blanktime"
為
"0"
停用 screen blanking :
Option         "BlankTime" "30"
最後範例檔案
/etc/X11/xorg.conf.d/10-monitor.conf
可能看來像這樣：
Section "Monitor"
Identifier "LVDS0"
Option "DPMS" "false"
EndSection
Section "ServerFlags"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
Option "BlankTime" "0"
EndSection
Section "ServerLayout"
Identifier "ServerLayout0"
EndSection
啓用 DPMS
注意使用gdm(3.38.2)及xwayland(1.20.9)時有可能無法自動啓用dpms
無法啓用時xset -q 輸出會像這樣 :
$ xset q
~
DPMS (Energy Star):
Server does not have the DPMS Extension
可以啓用時 xset -q 輸出會像這樣：
$ xset q
~ 
DPMS (Energy Star):
Standby: 0    Suspend: 0    Off: 0
DPMS is Enabled
Monitor is On
可能解決法(參考):
安裝
vbetool
，使用指令
sudo vbetool dpms off
或
on
，來關閉/打開螢幕。
不過關閉螢幕後必須進入盲打於終端機輸入指令或重新開機才能再次啟動螢幕。
參考
GDM設定
，
在 /etc/gdm/custom.conf 設定中取消wayland off的註解後存檔並重新開機(wayland也可能造成systemctl 無法登入時呼叫自定義服務) :
/etc/gdm/custom.conf
[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false
停用 DPMS
Note:之前的部份已有提到選項
"DPMS" "false"
，
因為 DPMS 預設被許多去腳本啓用, 要停用他必須明確的宣告。
要完全停用 DPMS，添加下列選項文字到檔案:
/etc/X11/xorg.conf.d/10-monitor.conf
:
Section "Extensions"
Option      "DPMS" "Disable"
EndSection
用指令修改 DPMS 與螢幕保護(screensaver)設定
可以用指令
xset
指令，指令由安裝包提供:
xorg-xset
。
例子:
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 s off -dpms
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
指令查詢目前設定:
$ 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(1)
獲得所有可用命令。
{{Note (正體中文)|
XScreenSaver
與
xfce4-power-manager
用他們自有的 DPMS 設定並覆蓋
xset
的設定。 查看
XScreenSaver#DPMS and blanking settings
與
Xfce#Display blanking
得到進一步訊息。
如果手動在shell輸入指令時，你可能需要個前綴
sleep 1;
讓他正確地工作，例如
sleep 1; xset dpms force off
xset dpms 0 0 0
, 這設定所以有 DPMS 超時設定到零，也許是較好的方式去禁用 "disable" DPMS， 由於選項
-dpms
可能被回複的時候，例如，關閉螢幕以指令
xset dpms force off
.
如果使用
xset
在
xinitrc
不工作，指定設定於檔案
/etc/X11/xorg.conf.d/
. 查看 [[#Xorg中設定 DPMS] 得到詳細說明。
}}
DPMS 在 Linux console 中用指令 setterm 互動
指令
setterm
作用造成終端機(terminal)瞭解轉譯代碼(escape codes)改變了終端機。本質上他僅僅 writes/echos 終端機序列(terminal sequences)到目前終端機裝置， 不論那裝置是以螢幕、遠端ssh 終端機、控制台終端模式(console mode)、序列控制台(serial consoles)等等形式。
setterm Syntax: (0 disables)
$ setterm -blank [0-60|force|poke]
$ setterm -powersave [on|vsync|hsync|powerdown|off]
$ setterm -powerdown [0-60]
註記
僅僅控制台顯示關閉並不會啓用 DPMS 電能節約。控制台顯示關閉預設是禁用的(常亮)。
[1]
管線指令輸出到指令cat以看到轉譯符
$ setterm -powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"
用轉譯符到任何 tty (搭配以寫入附加的組合) 以修改終端機
$ setterm -powerdown 0 >> /dev/tty3
註記
此例附加
>>
被使用而不是
>
。 腳本有權限問題使用
sudo
或其他指令，你也可以用
tee
指令去附加setterm的輸出到 tty 裝置，讓tty's 附加但不寫入。(
Bash 迴圈去設定所有 ttys 0-256
$ for i in {0..256}; do setterm -powerdown 0 >> /dev/tty$i; done; unset i;
參考資料
PC Monitor DPMS specification explanation
DPMS control in X