¿Cómo evitar que mi pantalla oscurezca o que el bloqueo de pantalla comience cuando esté viendo YouTube?

98

El brillo de mi pantalla solía atenuarse después de unos segundos para conservar la batería. Esto está predeterminado en Ubuntu 12.04. Sin embargo, cuando ve el video, no debe atenuarse.

Esto funciona correctamente cuando veo videos usando aplicaciones nativas como VLC. Sin embargo, con el video en el navegador, no se previene la atenuación de la pantalla. Esto es muy molesto ya que tienes que mover el cursor cada 10 segundos más o menos.

Solía ​​usar Mac OSX donde tenía la misma configuración de atenuación y los videos Flash se tenían en cuenta correctamente.

¿Alguien tiene una idea de cómo hacer que YouTube evite que se atenúe la pantalla?

    
pregunta Steven Roose 02.08.2012 - 13:09

20 respuestas

54

HOWTO: desactiva el protector de pantalla mientras se está ejecutando Flash

Ejecute el siguiente comando en la terminal:

mkdir -p ~/bin

Abra gedit, o su editor de texto preferido y escriba esto:

#!/bin/bash

# Cleanup any bad state we left behind if the user exited while flash was
# running
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true

we_turned_it_off=0

while true; do
    sleep 60
    flash_on=0

    for pid in 'pgrep firefox' ; do
        if grep libflashplayer /proc/$pid/maps > /dev/null ; then
            flash_on=1
        fi

        ss_on='gconftool-2 -g /apps/gnome-screensaver/idle_activation_enabled'

        if [ "$flash_on" = "1" ] && [ "$ss_on" = "true" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled \
                --type bool false
            we_turned_it_off=1
        elif [ "$flash_on" = "0" ] && [ "$ss_on" = "false" ] \
                && [ "$we_turned_it_off" = "1" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled \
                --type bool true
            we_turned_it_off=0
        fi

    done
done

Guarde este archivo como ~/bin/flash_saver.sh .

Regresa a la terminal y ejecuta:

chmod +x ~/bin/flash_saver.sh

Para ejecutar esto, ve a la terminal y escribe:

~/bin/flash_saver.sh

Si lo prefiere, puede configurar este script para que se ejecute al iniciar sesión haciendo lo siguiente:

  1. Ejecuta el programa "Aplicaciones de inicio"
  2. Haz clic en "Agregar"
  3. Con el nombre tipo "FlashMonitor" o algo que reconocerá
  4. En comando escriba ~/bin/flash_saver.sh
  5. En comentarios (si lo desea) escriba una breve descripción. P.ej. "Detiene la pantalla apagándose cuando se está ejecutando Flash"

Fuente: CÓMO: desactivar el protector de pantalla mientras se está ejecutando Flash - ubuntuforums

    
respondido por el njallam 02.08.2012 - 14:58
31

EDITAR

Esto probablemente no funcionará si está utilizando una versión de Ubuntu más nueva que la 12.04 (lo he intentado en 13.04 y 13.10 y simplemente no funciona en absoluto). Parece que el desarrollador principal ya no está trabajando en este proyecto, por lo que las posibilidades de que se corrija no son buenas.

En mi sistema (Ubuntu 11.10) uso Cafeína . Puedes probar si funciona en Xubuntu también. Agrega un icono de área de notificación donde puede activar / desactivar el protector de pantalla para algunos programas. Para instalar Cafeína, haga lo siguiente:

sudo add-apt-repository ppa:caffeine-developers/ppa
sudo apt-get update
sudo apt-get install caffeine

Luego ejecuta en una terminal:

caffeine -p &

A continuación, puede elegir los programas que deben desactivar el protector de pantalla:
vlc para VLC, mplayer para Movie Player, etc.

Espero que ayude.

    
respondido por el Salem 19.11.2011 - 13:35
14

Hay un pequeño y agradable script en GitHub llamado lightsOn que debería hacer el truco que desee.

Básicamente busca video de pantalla completa (flash en firefox o cromo, mplayer o vlc) y si es así, deshabilita xscreensaver y también la capacidad de pantalla de apagado automático del power-manager.

desde el script en sí:

HOW TO USE: Start the script with the number of seconds you want the checks
for fullscreen to be done. Example:
 "./lightsOn.sh 120 &" will Check every 120 seconds if Mplayer,
 VLC, Firefox or Chromium are fullscreen and delay screensaver and Power Management if so.
 You want the number of seconds to be ~10 seconds less than the time it takes
 your screensaver or Power Management to activate.
 If you don't pass an argument, the checks are done every 50 seconds.

Así, llame al script desde su carpeta de inicio automático como por mi cuenta responde aquí .

Ajuste la secuencia de comandos para si está ejecutando flash / vlc / mplayer

recuerde darle al script los derechos de ejecución para ejecutar, es decir,

chmod +x lightsOn.sh
    
respondido por el fossfreedom 28.02.2012 - 17:55
10

No es exactamente lo que buscas, pero este pequeño script registrará un movimiento del mouse cada vez que se ejecute. Puede colocarlo en cron para que se ejecute una vez cada x-amount-of-time. Eso detendría que la pantalla se apagara, y un movimiento de 1 1 del mouse apenas se notará si se ejecuta cuando NO estás viendo un video

#!/bin/bash
#move the mouse
xte 'mousermove 1 1' 

Obtuve totalmente esta idea de un cómic xkcd por cierto. enlace

    
respondido por el KentGeek 05.06.2013 - 19:19
7

Para obtener un equivalente prelaminado al script proporcionado por @njallam, con un pequeño elemento de interfaz gráfica de usuario de Gnome, pruebe el subprograma de cafeína:

enlace
enlace

    
respondido por el andybuckley 03.08.2012 - 19:50
6

Webupd8 tenía un artículo acerca de Cafeína y Lightson.sh para deshabilite el protector de pantalla mientras se reproducen videos Flash o HTML5. El script de Lightson funciona tanto para Firefox como para Chrome y se puede configurar para incluir VLC. Espero que esto ayude.

En caso de que el código proporcionado por Webupd8 para instalar el script siga a continuación:

mkdir -p ~/scripts && cd ~/scripts

wget https://raw.github.com/hotice/lightsOn/master/lightsOn.sh

chmod +x lightsOn.sh
    
respondido por el Garry 10.06.2013 - 03:57
5

No solo debe comprobar las opciones del protector de pantalla, sino también las opciones de administración de energía, especialmente la opción "Poner pantalla para dormir cuando esté inactivo para ...".

Tenga en cuenta que en las computadoras portátiles, hay dos configuraciones con ese nombre: cuando la computadora portátil está funcionando con alimentación de CA y cuando funciona con batería.

    
respondido por el daniel kullmann 28.07.2011 - 15:38
2

Use cafeína: página de ppa .

Cómo instalar:

sudo apt-add-repository ppa:caffeine-developers/ppa 
sudo apt-get update
sudo apt-get install caffeine

Cómo ejecutar:

  1. Pulse Alt + F2 , luego escriba caffeine .

  2. Haz clic en el icono "Cafeína" y luego en "Desactivar protector de pantalla".

respondido por el user128712 04.06.2013 - 12:03
2

Un poco viejo, pero aquí está con el soporte de múltiples navegadores:

#!/bin/bash -eu

# List your browsers here
browsers_list=( "firefox" "chrome" "chromium" "opera" )

# Cleanup any bad state we left behind if the user exited while flash was running
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true

idle_off=0

while true; do

    sleep 60

    for browser in "${browsers_list[@]}" ; do
    for pid in 'pgrep $browser' ; do

        flash_on=0
        if [ -O /proc/$pid/maps ] && grep libflashplayer /proc/$pid/maps > /dev/null ; then
            flash_on=1
        fi

        ss_on='gconftool-2 -g /apps/gnome-screensaver/idle_activation_enabled'

        if [ "$flash_on" = "1" ] && [ "$ss_on" = "true" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool false
            idle_off=1
        elif [ "$flash_on" = "0" ] && [ "$ss_on" = "false" ] && [ "$idle_off" = "1" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true
            idle_off=0
        fi

    done
    done

done

Simplemente guarde el script en algún lugar, chmod +x it y agréguelo a StartupApplications. Puede haber una manera de mostrar todos los navegadores disponibles usando algo como:

update-alternatives --list x-www-browser

Pero no sé cómo manejar el hecho de que algunos ejecutables no tienen el nombre de sus procesos (por ejemplo, /usr/bin/google-chrome se ejecuta como chrome ).

    
respondido por el Sheljohn 06.06.2013 - 02:56
2

Para aquellos que están usando un protector de pantalla que no sea gnome-screensaver (que es el protector de pantalla predeterminado en Ubuntu que comienza con la versión 11.10) esto la respuesta puede ser útil.

Personalmente, no cambié el gnome-screensaver por otra cosa y, no sé por qué, la cafeína no funciona para mí de ninguna manera (tal vez esté desactualizada).

Dicho esto, a partir de los scripts bash de otros ( esto , este y esto ) , Logré hacer un nuevo guión, gnome_screensaver_off.sh , que funciona perfectamente para lo que pretendía cuando YouTube está usando Flash Player para renderizar videos.

Desactiva gnome-screensaver mientras YouTube usa Flash Player

Abra un terminal y ejecute los siguientes comandos seguidos de las instrucciones:

  • mkdir -p bin - este comando creará un directorio bin en su carpeta home si aún no lo tiene.
  • gedit ~/bin/gnome_screensaver_off.sh -esto creará el nuevo archivo gnome_screensaver_off.sh en gedit.
  • Copie y pegue allí el siguiente script:
#!/bin/bash

# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)

screensaver_is_off=0
delay=$[$back - 10]

# Defining the restore function
function restore {
    gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac $back
    gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery $back
    gsettings set org.gnome.desktop.session idle-delay $back

    bmin=$[$back / 60]
    #notify-send "Screen sleep time restored to $bmin minutes."

    notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time restored to $bmin minutes."
}

# Defining the disable_screensaver function
function disable_screensaver {
    # Making sure the user don't mess up...
    trap 'restore && exit 0' INT HUP

    # Disabling sleep time
    gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
    gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
    gsettings set org.gnome.desktop.session idle-delay 0

    notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time turned off."
}

while true; do
    if [ "$delay" -le "50" ]; then
        sleep 50
    else
        sleep $delay
    fi
    flash_on=0

    #Check if Chrome, Chromium or Firefox is open with a flash video running on it
    if pgrep -lfc ".*((c|C)hrome|chromium|firefox|).*flashp.*" > /dev/null ; then
            flash_on=1
    else
        flash_on=0  
    fi

    if [ "$flash_on" -eq "1" ] && [ "$back" -ne  "0" ] && [ "$screensaver_is_off" -eq "0" ]; then
        disable_screensaver
        screensaver_is_off=1
    elif [ "$flash_on" -eq "0" ] && [ "$screensaver_is_off" -eq "1" ]; then
        restore
        screensaver_is_off=0
    fi
done

exit 0
  • Guarde el archivo y ciérrelo.
  • Regrese a la terminal y ejecute: chmod +x gnome_screensaver_off.sh - para otorgar acceso de ejecución para la secuencia de comandos.
  • Para ejecutar su nuevo script, ejecute ~/bin/gnome_screensaver_off.sh .

Si lo prefiere, puede configurar este script para que se ejecute al iniciar sesión haciendo lo siguiente:

  1. Busque en Tablero para Aplicaciones de inicio , ábralo y haga clic en Añadir .
  2. Debajo del nombre escribe "YouTube Monitor" o algo que reconocerás.
  3. En el comando escriba "/home/$USER/bin/gnome_screensaver_off.sh" (cambie $ USER con su nombre de usuario).
  4. En comentarios (si lo desea), escriba una breve descripción (por ejemplo, "La pantalla Detiene la desactivación cuando Flash Player se ejecuta en el navegador").

Desactiva gnome-screensaver mientras YouTube usa HTML5 reproductor

La pregunta permanece abierta en este sentido ...

Gracias por las sugerencias que ofrece: fossfreedom , Meer Borg , njallam , desgua y otros.

    
respondido por el Radu Rădeanu 05.06.2013 - 18:22
2

Solución para reproducción HTML5 en Chrome

Descripción general

El siguiente script desactiva el protector de pantalla si encuentra una sesión activa de Chrome en pantalla completa. Por defecto, ejecutará una comprobación cada 5 minutos. El script reanudará automáticamente el protector de pantalla si se cumple alguna de las tres condiciones siguientes:

  • la ventana no es de pantalla completa
  • la ventana no está enfocada
  • la ventana ya no existe

Script

#!/bin/bash

## Variables ##

ChromeWmClass="Google-chrome"
FullScreenProperty="_NET_WM_STATE_FULLSCREEN"
CheckInterval="300" # check every 5 minutes

## Main ##

while true; do

  sleep "$CheckInterval"

  ActiveWinID=$(xdotool getactivewindow)

  if [[ -z "$ActiveWinID" ]]; then
    continue
  fi

  ActiveWinProp=$(xprop -id "$ActiveWinID")

  if echo "$ActiveWinProp" | grep "$FullScreenProperty" > /dev/null 2>&1 \
  && echo "$ActiveWinProp" | grep "WM_CLASS" | grep "$ChromeWmClass" > /dev/null 2>&1
    then
      if [[ -z "$SuspendingID" ]]; then
        echo "Suspending screensaver for $ActiveWinID"
        xdg-screensaver suspend "$ActiveWinID"
        SuspendingID="$ActiveWinID"
      elif [[ "$ActiveWinID" = "$SuspendingID" ]]; then
        echo "$ActiveWinID is already suspending  screensaver."
      elif [[ -n "$SuspendingID" ]]; then
        echo "Resuming screensaver for $SuspendingID"
        xdg-screensaver resume "$SuspendingID"
        echo "Suspending screensaver for $ActiveWinID"
        xdg-screensaver suspend "$ActiveWinID"
        SuspendingID="$ActiveWinID"
      fi
    else
      if [[ -n "$SuspendingID" ]] \
      && xprop -id "$SuspendingID" > /dev/null 2>&1
        then
          echo "Resuming screensaver for $SuspendingID"
          xdg-screensaver resume "$SuspendingID"
          SuspendingID=""
        else
          echo "No change."
      fi
  fi
done
    
respondido por el Glutanimate 14.02.2015 - 22:47
2

El enfoque no intelectual más simple, que es independiente del escritorio y se basa en xdotool , sería simular un trazo clave cada N segundos.

Uso un script llamado heartbeat.sh :

#!/bin/bash
while : 
do
    nice -n 1 xdotool key shift
    date +%T ## show some sign of life
    sleep 100
done

Inicié el script mientras reproduzco el video, y luego lo detengo cuando ya no es necesario.

xdotool se puede instalar con sudo apt-get install xdotool .

Si también quieres tener algún tipo de detección automática de audio, y estás de acuerdo con una receta específica de PulseAudio, a continuación encontrarás una variación de la solución anterior que verifica si se está reproduciendo el audio:

#!/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

Si usa Alsa, la prueba probablemente sería algo así como (no probado):

if [[ ! -z $(grep RUNNING /proc/asound/card*/pcm*/sub*/status) ]] ; then...

Una posible desventaja de esta solución es que su pantalla no se apagará aunque esté escuchando música o radio, pero asumo que en la mayoría de los casos esto no es un problema.

    
respondido por el ccpizza 16.01.2016 - 22:55
1

Para aquellos a los que les gusta el control total o manual en sus manos

Esta línea de comando puede configurar el tiempo de retraso del protector de pantalla:

gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0

Use "0" (cero) para mantenerlo encendido u otro valor para definir el retraso en segundos.

La siguiente secuencia de comandos mantendrá la pantalla encendida hasta que se presione alguna tecla.

#!/bin/bash

# 
# To turn screen sleep time off for a while then back on
#
# by desgua 2013/01/27
#

# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)

# Defining the restore function
function RESTORE {

gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac $back
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery $back
gsettings set org.gnome.desktop.session idle-delay $back

bmin=$(echo "$back / 60" | bc)
#notify-send "Screen sleep time restored to $bmin minutes."
echo
echo "Screen sleep time restored to $bmin minutes."
echo 

exit 0
}

# Making sure the user don't mess up...
trap 'RESTORE && exit 0' INT HUP

# Disabling sleep time
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
gsettings set org.gnome.desktop.session idle-delay 0

echo
echo "Screen sleep time turned off."
echo 

#notify-send "Screen sleep time turned off."

# Waiting for user to press some key and then restore the previous configuration
read -n 1 -p 'Press any key to turn it on again. ' b

RESTORE

exit 0

Cómo ejecutar un script:

  1. Copie el texto en un archivo vacío,
  2. Guarde el archivo,
  3. Hacer que el archivo sea ejecutable,
  4. Ejecútalo desde una terminal.
respondido por el desgua 26.01.2013 - 17:47
1

El VLC en este PPA además de ser una versión actual de VLC también implementa correctamente la inhibición del protector de pantalla.

Puede agregar este PPA usando este comando

sudo add-apt-repository ppa:n-muench/vlc
    
respondido por el Rob 29.09.2010 - 21:58
0

Simplemente puede ejecutar / configurar este comando mientras se inicia:

gconftool --type string --set /apps/compiz-1/plugins/fade/screen0/dim_unresponsive false   

¿También puede intentar desmarcar la opción de aceleración de hardware en Firefox?

    
respondido por el karan 10.06.2013 - 08:41
0

Para aquellos que usan Ubuntu-Gnome 14.04 hay una Extensión simple pero útil llamada Cafeína que proporciona un icono de alternar que le permite desactivar el comportamiento de atenuación de luz y protector de pantalla desde la barra superior con un clic .

La extensión se puede instalar siguiendo este enlace al sitio web de las Extensiones Gnome-Shell:

enlace

Fuente: sección de comentarios en este artículo:

enlace

    
respondido por el jasikevicius23 11.02.2015 - 14:50
0

Esta es mi solución:

enlace

enlace

Solo descarga el the-bund-light.sh y agrégalo a la aplicación startbooting:

sudo apt-get install xdotool

cd ~ && wget https://raw.githubusercontent.com/yanyingwang/shanghai-tools/master/kit/the-bund-light.sh

cat >> ~/.config/autostart/the-bund-light.sh.desktop <<EOF
[Desktop Entry]
Type=Application
Exec=$HOME/shanghai-tools/kit/the-bund-light.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[zh_CN]=TheBundLight
Name=TheBundLight
Comment[zh_CN]=
Comment=
EOF

PRECAUCIÓN: el valor de Exec en el código debe ser una ruta de the-bund-light.sh en su computadora.

    
respondido por el yanyingwang 19.02.2016 - 03:46
0

Depende en cierta medida de la versión de Ubuntu que esté utilizando. En 11.10, puede encontrar "Configuración del sistema" haciendo clic en el ícono de ajustes en la esquina superior derecha de la pantalla. Seleccione esto, y en el cuadro de diálogo que aparece, seleccione "Pantalla". Puede establecer la cantidad de tiempo que su computadora estará inactiva antes de que la pantalla se vacíe con el menú desplegable, o deshabilitar esa característica haciendo clic en el botón "Bloquear".

Si tiene un sistema anterior, puede que tenga que buscar esta configuración en otro lugar, pero está ahí en alguna parte.

    
respondido por el K. P. MacGregor 20.02.2012 - 01:11
0

Utilizo el siguiente script como solución alternativa:

#!/bin/bash
while true
do
   xdotool key Shift_L
   sleep 1m
done

Simula una pulsación de tecla Mayús izquierda una vez por minuto, lo que evita que la pantalla se atenúe. El inconveniente de esto, por supuesto, es que debe ejecutar el script cada vez que mira youtube. Por otro lado, es simple y funciona con la mayoría de las configuraciones, si no con todas.

Es posible que debas instalar esto

sudo apt-get install xdotool
    
respondido por el Thomas Sejr Jensen 25.12.2016 - 16:28
0

El script en la parte superior de arriba no funciona para mí en Ubuntu 14.04 LTS Unity. Aquí está su variante actualizada que funciona:

#!/bin/bash

id_saved=0
sac_saved=0
sbat_saved=0
dim_saved=false

ss_save()
{
    id_saved='gsettings get org.gnome.desktop.session idle-delay'
    sac_saved='gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout'
    sbat_saved='gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout'
    dim_saved='gsettings get org.gnome.settings-daemon.plugins.power idle-dim'
}

ss_set()
{
    gsettings set org.gnome.desktop.session idle-delay ""
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout ""
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout ""
    gsettings set org.gnome.settings-daemon.plugins.power idle-dim ""
}

ss_on()
{
    ss_set "$id_saved" "$sac_saved" "$sbat_saved" "$dim_saved"
}

ss_off()
{
    ss_set 0 0 0 false
}

trap ss_on EXIT

already_off=0
flash_on=0
ss_save

while true; do
    if top -bcw 200 | sed -e '1,/PID/d' | head -1 | grep flash > /dev/null
    then
        flash_on=1
        off_count=0
    else
        off_count='expr $off_count + 1'
        echo "flash_off_count=$off_count"
        if [ $off_count -gt 5 ]; then
            flash_on=0
        fi
    fi

    if [ "$flash_on" = "1" -a "$already_off" = "0" ]; then
        echo "screensaver: off"
        ss_off
        already_off=1
    elif [ "$flash_on" = "0" -a "$already_off" = "1" ]; then
        echo "screensaver: on"
        ss_on
        already_off=0
    elif [ "$already_off" = "0" ]; then
        echo "screensaver: save possibly new params"
        ss_save # user may update the values
    fi

    sleep 30
done

Por cierto, este script desactiva el protector de pantalla ÚNICAMENTE cuando se reproduce el video, es decir, cuando flashplayer está en la parte superior de los consumidores de CPU.

    
respondido por el Andriy 02.01.2015 - 20:19

Lea otras preguntas en las etiquetas