xautolock ロッカー機能は 1 分後に動作を停止します

xautolock ロッカー機能は 1 分後に動作を停止します

私は 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

この動作は大抵はうまく機能しているが、現時点で大きな問題は画面がオフになってから(ちょうど)1分後に、何も操作しなくても画面が再びオンになります。

行動タイムライン:

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外部で を使用した場合xautolock、この動作は示されなかったということです。理由についての説明をいただければ幸いです。

関連情報