xautolock储物柜功能一分钟后停止工作

xautolock储物柜功能一分钟后停止工作

我使用 xautolock 的方式略有不同:锁定屏幕后(i3lock在我的情况下使用),我希望显示器在一段时间不活动后关闭。如果它检测到活动,打开屏幕,但计算机未解锁,我希望它重新关闭。

这是我的脚本:

/bin/bash

function lockfunc {
    if [[ "$1" = -sleep ]]; then
        i3lock -t -i $backgroundimg &&  xautolock -time 1 -locker 'xset s activate' &
        while [[ $(pgrep -x i3lock) ]]; do # loop while computer is locked
            echo $(date) '| i3lock running'
            if [[ $(pgrep -x xautolock) ]]; then echo $(date) '| xautolock running'; fi
            # if $(pgrep -x xautolock); then echo $(date) '| i3lock running'; fi
            sleep 5
        done
        echo $(date) '| exit i3lock while loop'
        xautolock -exit # stop xautolock when unlocked
    else
        i3lock -t -i $backgroundimg
    fi
    return 0}

lockfunc -sleep

虽然这种行为大部分有效,但现在的大问题是屏幕关闭(正好)一分钟后,它会在没有任何交互的情况下重新打开。

行为时间表:

00:00 -> start the lockfunc
01:00 -> screen turns off
02:00 -> screen turns on
07:00 -> screen doesn't turn back off, stop test

上面脚本中的调试echo语句在这段时间内并没有真正显示出任何变化:i3lock 和 xautolock 始终都在运行。

有什么想法为什么会发生这种情况吗?

答案1

改变xset s activate-->xset dpms force off成功了。

xset s activate奇怪的是,当我使用external of时xautolock,它并没有表现出这种行为,这是很好解释的。任何有关原因的解释将不胜感激。

相关内容