Najprostszym nieintelektualnym podejściem, które jest niezależne od komputera i opiera się na xdotool, byłoby symulowanie naciśnięcia klawisza co N sekund.
Używam skryptu o nazwie heartbeat.sh
:
#!/bin/bash
while :
do
nice -n 1 xdotool key shift
date +%T ## show some sign of life
sleep 100
done
Uruchamiam skrypt podczas odtwarzania filmu, a następnie zatrzymuję go, gdy nie jest już potrzebny.
xdotool
można zainstalować za pomocą sudo apt-get install xdotool
.
Jeśli chcesz także mieć jakieś automatyczne wykrywanie dźwięku i nie masz nic przeciwko przepisowi specyficznemu dla PulseAudio, poniżej znajduje się odmiana powyższego rozwiązania, które sprawdza, czy dźwięk jest odtwarzany:
#!/bin/bash
while :
do
if [[ ! -z $(pacmd list-sink-inputs | grep RUNNING) ]] ; then
echo 'Audio is playing. Inhibiting screensaver'
nice -n 1 xdotool key shift ;
else
echo 'No audio detected'
fi
date +%T ## show some sign of life
sleep 100
done
Jeśli używasz Alsa, test prawdopodobnie byłby podobny do (nieprzetestowany):
if [[ ! -z $(grep RUNNING /proc/asound/card*/pcm*/sub*/status) ]] ; then...
Potencjalnym minusem tego rozwiązania jest to, że ekran nie będzie spał, nawet jeśli tylko słuchasz muzyki lub radia, ale zakładam, że w większości przypadków nie jest to problem.