
Tengo una forma ligeramente diferente de usar xautolock: después de bloquear la pantalla (usando i3lock
en mi caso), quiero que la pantalla se apague después de un período de inactividad. Y quiero que se vuelva a apagar si detecta actividad, enciende la pantalla, pero la computadora no está desbloqueada.
Aquí está el guión que tengo:
/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
Si bien el comportamiento funciona en su mayoría, el gran problema en este momento es queDespués de (exactamente) un minuto de que la pantalla esté apagada, se vuelve a encender sin ninguna interacción.
Cronología del comportamiento:
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
Las echo
declaraciones de depuración en el script anterior realmente no mostraron ningún cambio durante ese tiempo: tanto i3lock como xautolock siguieron ejecutándose todo el tiempo.
¿Alguna idea de por qué sucede esto?
Respuesta1
Cambiar xset s activate
-> xset dpms force off
funcionó.
Lo extraño que sería bueno explicar es que cuando lo usé xset s activate
fuera de xautolock
, no demostró este comportamiento. Se agradecería cualquier explicación de por qué.