Cuando veo un video en línea, la pantalla se apaga después de unos minutos.

en algunos sitios, cuando veo una película en un navegador y no toco la computadora, la pantalla se apaga. En otros sitios como Youtube no tengo ese problema. Intenté usar cafeína, pero no me gusta la idea de tener que habilitarlo y desactivarlo manualmente cada vez que veo un video. También probé otros métodos que encontré en internet pero nada funcionó. ¿alguna sugerencia? Estoy usando chrome y ejecutando ubuntu 16.04.

ACTUALIZACIÓN 2017/08/23: Se cambió la secuencia de comandos a una que no envía pulsaciones de teclas, pero desactiva dpms los progtwigs de dpms pantalla y el protector de pantalla mientras se reproduce un video en pantalla completa.

Esto solo funciona con aplicaciones que se ejecutan en pantalla completa, no maximizadas.


Primero instale xdotool :

 sudo apt install xdotool 

Luego creé una carpeta de scripts en mi carpeta de inicio en la que podía colocar cualquier script que quisiera conservar:

 mkdir -p ~/scripts 

luego creé un archivo llamado check_full.bsh en mi carpeta ~/scripts y le agregué el siguiente contenido:

Como mi protector de pantalla está configurado para 20 minutos, configuré el temporizador de suspensión en el script a 10 minutos (600 segundos). Puede cambiar esto en función de la configuración de su protector de pantalla.

 #!/bin/bash #Get DPMS settings dpms_set=$(xset -q | grep -i "dpms is" | awk '{print $NF}') #Get screensaver type and command scrnsvr=$(ps -ef | grep screensav | grep -v grep | awk '{print $8}') scrnsvrcmd=$(ps -ef | grep screensav | grep -v grep | awk '{print substr($0,index($0,$8))}') #Sleep Timer in seconds. SL=600 while true; do result=() #Get all window geometries all=($(xdotool search --name - | while read win; do xdotool getwindowgeometry $win | grep Geometry | awk '{print $2}'; done)) #Get all screen resolutions detected and build array. SCREENS=($(xrandr | grep \* | awk '{print $1}')) SCRN=" ${SCREENS[*]} " #Get result of all windows and match for item in ${all[@]}; do if [[ $SCRN =~ " $item " ]] ; then result+=($item); fi; done #If a result exists disable power management and screensaver if [[ ${result[@]} ]]; then ps -ef | grep $scrnsvr | grep -v grep >/dev/null if [[ $? == 0 ]]; then kill $(ps -ef | grep $scrnsvr | grep -v grep | awk '{print $2}') fi if [[ $dpms_set == "Enabled" ]];then xset -dpms fi else ps -ef | grep $scrnsvr | grep -v grep >/dev/null if [[ $? == 1 ]]; then ${scrnsvrcmd} & fi if [[ $dpms_set != "Disabled" ]];then xset dpms fi fi result=() sleep $SL done 

hacer el script ejecutable:

 chmod +x ~/scripts/check_full.bsh 

Por alguna razón, un trabajo cron no se ejecutaría correctamente. Así que agregué una entrada a mi inicio para llamar a este script. En la carpeta ~/.config/autostart/ , creé un archivo llamado Check_Full.desktop con el siguiente contenido:

Me gusta que se agreguen demoras al inicio, ya que generalmente se cargan mejor.

 [Desktop Entry] Type=Application Name=Check_Full Comment=Prevent screensaver from activating when full screen video is playing Exec=bash -c 'sleep 5 && /home//scripts/check_full.bsh' 

cambie por encima de la línea Exec para que coincida con su carpeta de inicio.

Establezca los permisos adecuados para el archivo:

 chmod 664 ~/.config/autostart/check_full.desktop 

Después de cerrar sesión y volver a iniciar sesión, check_full.bsh ahora se ejecuta y comprueba cada 10 minutos si la aplicación activa está en pantalla completa. Si no es así, el protector de pantalla / locking de pantalla se inicia en momentos normales.


¡Espero que esto ayude!

Youtube no tiene ese problema porque usa el reproductor HTML5. Los sitios con los que tiene problemas están utilizando Flash Player en su lugar. Es un error en Adobe Flashplayer , que, en resumen, es que nunca notifica a WM que se ejecutó en pantalla completa. Es posible que haya escuchado que Adobe Flash es una aplicación con errores en general, por lo que una solución es deshabilitarla y usar solo sitios con video HTML5.

Como mencionó la cafeína, probablemente ya haya buscado una solución. Otra cosa que podría hacer es desactivar completamente el «ahorro de energía» , es decir, forzar la pantalla para que nunca se apague.