You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.3 KiB

2 years ago
#!/bin/bash
###
# @Author: Zhang Yueqian zhangyueqian@antiy.cn
# @Date: 2022-11-01 09:47:56
# @LastEditors: Zhang Yueqian zhangyueqian@antiy.cn
# @LastEditTime: 2022-11-01 13:45:07
# @FilePath: /screensaver/backend/medr-lightdm-dpms-enable
# @Description: 在lightdm(greeter)界面启用屏幕休眠功能
#
# 本程序需安装在 /usr/local/bin/ 目录下, 配置到 /etc/lightdm/50-medr-dpms.conf 文件中
###
# 休眠时间设置文件路径
TIMEOUT_FILE=/var/run/medr-lightdm
# 默认休眠时间(分钟)
DEFAULT_TIMEOUT=10
# 确认文件存在
if [ ! -f $TIMEOUT_FILE ]; then
touch $TIMEOUT_FILE
fi
# 获取休眠超时配置, 如果未设置或设置格式非数字, 则返回默认配置 $DEFAULT_TIMEOUT
function get_timeout() {
# 首先保证TIMEOUT文件可被修改
chmod 777 $TIMEOUT_FILE
# 读取TIMEOUT内容并确认为数字
TIMEOUT=$(cat $TIMEOUT_FILE)
case $TIMEOUT in
'' | *[!0-9]*) echo $DEFAULT_TIMEOUT ;;
*) echo $TIMEOUT ;;
esac
}
# 入口函数, 读取设置并调用xset
function main() {
# 读取超时配置并转换为秒
TIMEOUT=$(get_timeout)
TIMEOUT=$((TIMEOUT * 60))
# 必须的, 似乎是需要等待X启动
sleep 10
# 利用X的dpms功能触发屏幕休眠
xset dpms 0 0 $TIMEOUT
}
main &