Функция блокировки 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вне xautolock, он не демонстрировал этого поведения. Любое объяснение, почему, было бы оценено.

Связанный контент