xautolock locker機能が1分後に動作を停止します。

xautolock locker機能が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この動作が表示されないことです。これはよく説明されています。理由の説明をいただきありがとうございます。

関連情報