
Ich verwende xautolock auf eine etwas andere Art: Nachdem ich den Bildschirm gesperrt habe ( i3lock
in meinem Fall verwende ich), möchte ich, dass sich das Display nach einer gewissen Zeit der Inaktivität ausschaltet. UND ich möchte, dass es sich wieder ausschaltet, wenn es Aktivität erkennt, den Bildschirm einschaltet, der Computer aber nicht entsperrt ist.
Hier ist das Skript, das ich habe:
/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
Obwohl dieses Verhalten größtenteils funktioniert, besteht das große Problem derzeit darin, dassNachdem der Bildschirm (genau) eine Minute lang ausgeschaltet war, schaltet er sich ohne Interaktion wieder ein.
Zeitleiste des Verhaltens:
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
Die Debug- echo
Anweisungen im obigen Skript haben während dieser Zeit keine wirklichen Änderungen gezeigt: Sowohl i3lock als auch xautolock liefen die ganze Zeit noch.
Irgendwelche Ideen, warum das passiert?
Antwort1
Ändern xset s activate
--> xset dpms force off
hat geholfen.
Merkwürdigerweise, aber es wäre schön, wenn man es erklären könnte, trat dieses Verhalten nicht auf, als ich es xset s activate
außerhalb von verwendete xautolock
. Für jede Erklärung, warum das so ist, wäre ich dankbar.