A função xautolock locker para de funcionar após um minuto

A função xautolock locker para de funcionar após um minuto

Tenho uma maneira um pouco diferente de usar o xautolock: depois de bloquear a tela (usando i3lockno meu caso), quero que a tela desligue após algum período de inatividade. E quero que ele desligue novamente se detectar atividade, ligar a tela, mas o computador não estiver desbloqueado.

Aqui está o script que tenho:

/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

Embora o comportamento funcione principalmente, o grande problema agora é queapós (exatamente) um minuto de tela desligada, ela liga novamente sem qualquer interação.

Cronograma de comportamento:

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

As echoinstruções de depuração no script acima não mostraram nada mudando durante esse tempo: tanto o i3lock quanto o xautolock ainda estavam em execução o tempo todo.

Alguma idéia de por que isso está acontecendo?

Responder1

Mudar xset s activate-> xset dpms force offresolveu.

O estranho que seria legal explicar é que quando usei xset s activatefora do xautolock, ele não demonstrou esse comportamento. Qualquer explicação sobre o porquê seria apreciada.

informação relacionada