MPlayer – blokowanie wygaszacza ekranu w trakcie oglądania filmu

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Oryginalny link – Blokowanie wygaszacza ekranu podczas odtwarzania filmów
Autor – QkiZ

Artykuł został umieszczony na stronie ubuntu-pomoc.org w ramach współpracy z blogiem qkiz.pl

Wraz z aktualizacją 9.10 zmieniono API wygaszacza ekranu przez co (S)Mplayer przestał go blokować. Podobno naprawiono już ten problem, ale jakoś u mnie sytuacja się nie zmieniła. Nadal podczas odtwarzania filmu włącza się wygaszacz. Ale udało mi się pozbyć tego problemu pisząc prosty skrypt i wykorzystując jedną komendę MPlayer’a.
Nie pożądanego włączenia wygaszacza ekranu najlepiej się pozbyć ruszając myszą lub naciskając jakiś klawisz. Ale nikt podczas oglądania filmu nie będzie wstawał z miejsca tylko po to aby ruszyć myszą właśnie. Prędzej wyłączy całkiem wygaszacz ekranu. Tylko trzeba pamiętać aby go potem włączyć, więc taka sytuacja może być problematyczna. Więc trzeba zasymulować interakcję użytkownika z komputerem.
Do tego użyłem polecenia xdotool oraz opcji -heartbeat w MPlayer. Klikając na ten link można ściągnąć i zainstalować xdotool (wymagany zainstalowany apturl wcześniej). To proste narzędzie symuluje naciśnięcie klawiszy. W skrypcie symuluje naciśniecie klawisza Shift.

nice -n 1 xdotool key shift

Skrypt nazwałem shiftpress i wrzuciłem go do katalogu /usr/local/bin i nadałem odpowiednie uprawnienia do uruchomienia się. Poleceniem nice obniżyłem priorytet wykonywania polecenia.
Następnie w MPlayer’a uruchamiamy z parametrem heartbeat:

mplayer -heartbeat-cmd "shiftpress"

Teraz co 30 sekund MPlayer będzie wykonywał skrypt shiftpress czyli co pół minuty komputer będzie otrzymywał sygnał naciśnięcia przycisku shift i będzie odwlekał wygaszacz ekranu. Teraz możemy utworzyć skrypt z powyższą komendą (wraz z opcją) i używać go do uruchomienia MPlayer’a.Opcje SMPlayer’aJeśli używamy SMPlayer’a, opcję heartbeat wstawiamy w Zaawansowane > Opcje MPlayer’a > Opcje.
Przyznam że jest to rozwiązanie partyzanckie, ale skuteczne dzięki opcjom MPlayer’a. Póki programiści nie naprawią tego błędu, trzeba będzie pozostać przy tego typu rozwiązaniach.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.