Display Power Management Signaling
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;