NAPOMENA: Firefox 71 (moguće i ranije) automatski gasi screensaver/DPMS
pri gledanju videa. Tako da je ovo prevaziđeno.
Zašto se gasi
Ne koristim nikakve screensavere. Jedina stvar koju imam uključeno
su DPMS postavke koje zatamnjuju, suspenduju i gase monitor. Pri
normalnom radu funkcioniše bez problema. Pomjeranjem miša ili pritiskanjem
dugmeta na tastaturi prestaje. Video plejer mpv također samostalno
privremeno isključi DPMS postavke dok pušta video.
Problem nastaje pri gledanju video klipova u Firefoxu, npr. YouTube.
Firefox ne gasi DPMS gašenje pri puštanju videa. Također mislim da ne emituje
nikakav znak za zahtijevanje gašenja. Moguće da emituje neku dbus poruku
upućenu klasičnim screensaverima i drugim koji slušaju, ali nažalost
ne utiče na DPMS postavke.
Zašto se neće gasiti
Primjetio sam da se pri puštanju video klipa u Firefoxu pojavi
"stream" u Pulseaudiju kao na slici.
Ideja je bila da pratim Pulseaudio sinkove i provjerim da li ima
Firefoxa među njima. U slučaju da ima, ugasio bih DPMS postavke. Pri
ponovnoj provjeri, ukoliko nema Firefoxa, vratio bih postavke.
Zašto se ne gasi
Napisao sam mali Python programčić koji će provjeravati Pulseaudio
podatke i tražiti Firefox.
Prva ideja je bila da nakon svakih određenih sekundi provjerim da
li postoji Firefox sink. Na sličan način funkcionše lightsOn.
Međutim lightsOn detektuje samo Flash video i druge programe. Meni to
nije potrebno, a potrebno mi je da detektuje HTML5 video jer je Flash
deprecirano, vlasničko-softver smeće koje ne treba imati instalirano.
Slučajno sam pronašao pactl subscribe
. Pulseaudio emituje razne
događaje, kao pojavu novih sources, sinks i nama potrebni input sinks.
To je mnogo bolje rješenje nego periodično provjeravanje.
Da ne moram hakasto rasčlanjivati (navodno se tako kaže parse na naš)
ispis od pactl, pronašao sam python-pulse-control.
On otkriva iste Pulseaudio događaje, samo lakše i čistije.
Uz pomoć toga nije bilo teško sklepati na brzaka rješenje. Svjestan
sam da je sam princip veoma hakast i da izvodba rješenja nije perfektna,
ali za sada radi besprijekorno.
Preuzmi program Firefox-DPMS.
Potreban vam je Python 3, gore navedeni python-pulse-control i naravno
morate koristiti PulseAudio. Osim toga ne koristi ništa izvan Python
standardne library.
Arch Linux korisnici mogu koristiti priloženi PKGBUILD za Firefox-DPMS.
Trebaće vam python-pulse-control. Imate moj PKGBUILD
ovdje
ili ga pronađite u AURu.
Komentari