Como impedir que minha tela seja escurecida ou que a tela de bloqueio comece quando assistir ao YouTube?

99

Meu brilho da tela costumava diminuir após alguns segundos para preservar a bateria. Este é o padrão no Ubuntu 12.04. No entanto, quando assistir a um vídeo, não deve diminuir.

Isso funciona corretamente quando assisto a vídeos usando aplicativos nativos como o VLC. Com o vídeo no navegador, no entanto, a tela não é impedida de escurecer. Isso é muito chato, já que você precisa mover o cursor a cada 10 segundos ou mais.

Eu costumava usar o Mac OSX, onde eu tinha as mesmas configurações de escurecimento e os vídeos em Flash eram levados em conta corretamente.

Alguém tem uma ideia de como você pode fazer o YouTube impedir que a tela diminua o brilho?

    
por Steven Roose 02.08.2012 / 13:09

20 respostas

54

COMO: Desativar a proteção de tela enquanto o Flash está sendo executado

Execute o seguinte comando no terminal:

mkdir -p ~/bin

Abra o gedit ou o seu editor de texto preferido e digite:

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

Salve este arquivo como ~/bin/flash_saver.sh .

Volte para o terminal e execute:

chmod +x ~/bin/flash_saver.sh

Para executar isso, entre no terminal e digite:

~/bin/flash_saver.sh

Se preferir, você pode definir esse script para ser executado no logon fazendo o seguinte:

  1. Execute o programa "Aplicativos de inicialização"
  2. Clique em "Adicionar"
  3. Abaixo do tipo de nome "FlashMonitor" ou algo que você reconhecerá
  4. sob o tipo de comando ~/bin/flash_saver.sh
  5. Em comentário (se desejar), digite uma breve descrição. Por exemplo. "Pára a tela desligar quando o Flash está em execução"

Fonte: COMO: Desative a proteção de tela enquanto o Flash está em execução - ubuntuforums

    
por njallam 02.08.2012 / 14:58
31

EDITAR

Isso provavelmente não funcionará se você estiver usando uma versão do Ubuntu mais recente que a 12.04 (já tentou em 13.04 e 13.10 e simplesmente não funciona). Parece que o desenvolvedor principal não está mais trabalhando neste projeto, então as chances de ele ser corrigido não são boas.

No meu sistema (Ubuntu 11.10) eu uso Cafeína . Você pode tentar se funciona no Xubuntu também. Adiciona um ícone de área de notificação onde você pode ativar / desativar a proteção de tela para alguns programas. Para instalar a cafeína, faça o seguinte:

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

Em seguida, execute em um terminal:

caffeine -p &

Você pode então escolher os programas que devem desativar o protetor de tela: vlc para VLC, mplayer para o Movie Player, etc.

Espero que ajude.

    
por Salem 19.11.2011 / 13:35
14

Existe um pequeno script em GitHub chamado lightsOn que deve fazer o que você quiser.

Basicamente, ele procura vídeos em tela cheia (flash no firefox ou cromo, mplayer ou vlc) e, se assim for, desabilitar o xscreensaver e também o recurso de tela de escurecimento do gerenciador de energia automático.

do próprio script:

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.

Assim, chame o script da sua pasta de início automático como por meu responda aqui .

Ajuste o script para saber se você está executando o flash / vlc / mplayer

lembre-se de dar ao script direitos de execução, por exemplo,

chmod +x lightsOn.sh
    
por fossfreedom 28.02.2012 / 17:55
10

Não totalmente o que você procura, mas esse pequeno script registraria um movimento do mouse sempre que fosse executado. Você poderia soltá-lo no cron para rodar uma vez a cada x quantidade de tempo. Isso impediria a tela de desligar, e um movimento de 1 1 do mouse é pouco perceptível se for executado quando você NÃO estiver assistindo a um vídeo

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

Eu totalmente tenho essa idéia de um quadrinho xkcd pelo caminho. link

    
por KentGeek 05.06.2013 / 19:19
7

Para um equivalente pré-rolado ao script fornecido pelo @njallam, com um pequeno elemento de interface do Gnome, tente o miniaplicativo de cafeína:

link
link

    
por andybuckley 03.08.2012 / 19:50
6

Webupd8 tinha um artigo sobre cafeína e Lightson.sh para desative a proteção de tela enquanto os vídeos em Flash ou HTML5 estiverem sendo reproduzidos. O script do Lightson funciona tanto para o Firefox quanto para o Chrome e pode ser configurado para incluir o VLC. Espero que isso ajude.

Caso o código fornecido por Webupd8 para instalar o script seja o seguinte:

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

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

chmod +x lightsOn.sh
    
por Garry 10.06.2013 / 03:57
5

Você não deve apenas verificar as opções de proteção de tela, mas também as opções de gerenciamento de energia, especialmente a opção "Colocar a tela em espera quando inativa por ...".

Note que em laptops, há duas configurações com esse nome: quando o laptop está funcionando com corrente alternada e quando está funcionando com bateria.

    
por daniel kullmann 28.07.2011 / 15:38
2

Use cafeína: página ppa .

Como instalar:

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

Como executar:

  1. Pressione Alt + F2 e digite caffeine .

  2. Clique no ícone "Cafeína" e depois em "Desativar protetor de tela".

por user128712 04.06.2013 / 12:03
2

Um pouco antigo, mas aqui está com suporte a vários 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

Salve o script em algum lugar, chmod +x e adicione-o aos StartupApplications. Pode haver uma maneira de listar todos os navegadores disponíveis usando algo como:

update-alternatives --list x-www-browser

Mas eu não sei como lidar com o fato de que alguns executáveis não têm o nome do que seus processos (por exemplo, /usr/bin/google-chrome é executado como chrome ).

    
por Sheljohn 06.06.2013 / 02:56
2

Para aqueles que estão usando um protetor de tela diferente de gnome-screensaver (que é o protetor de tela padrão no Ubuntu, começando com a versão 11.10) resposta pode ser útil.

Pessoalmente, eu não mudei o gnome-screensaver para outra coisa e, não sei por que razões, a cafeína não funciona para mim de alguma forma (talvez esteja desatualizada).

Dito isso, a partir dos scripts bash dos outros ( este , esta e esta Eu consegui criar um novo script, gnome_screensaver_off.sh , que funciona perfeitamente para o que eu pretendia quando o YouTube está usando o Flash player para renderizar vídeos.

Desativar o protetor de tela do gnome enquanto o YouTube estiver usando o Flash player

Abra um terminal e execute os próximos comandos seguidos de instruções:

  • mkdir -p bin - este comando criará um diretório bin na sua pasta home se você ainda não o tiver.
  • gedit ~/bin/gnome_screensaver_off.sh -isso criará o novo arquivo gnome_screensaver_off.sh no gedit.
  • Copie e cole o próximo 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
  • Salve o arquivo e feche-o.
  • Volte para o terminal e execute: chmod +x gnome_screensaver_off.sh - para conceder acesso de execução para o script.
  • Para executar seu novo script, execute ~/bin/gnome_screensaver_off.sh .

Se preferir, você pode definir esse script para ser executado no logon fazendo o seguinte:

  1. Pesquise no Dash para Aplicativos de inicialização , abra-o e clique em Adicionar .
  2. Abaixo do tipo de nome "YouTube Monitor" ou algo que você reconhecerá.
  3. Sob o comando digite "/home/$USER/bin/gnome_screensaver_off.sh" (altere $ USER com seu nome de usuário).
  4. Em comentário (se desejar), digite uma breve descrição (por exemplo, "A tela pára quando o Flash Player está em execução no navegador").

Desativar o protetor de tela do gnomo enquanto o YouTube usa o HTML5 player

A questão permanece em aberto neste sentido ...

Obrigado pelas sugestões oferecidas por: fossfreedom , Meer Borg , njallam , desgua e outros.

    
por Radu Rădeanu 05.06.2013 / 18:22
2

Solução para reprodução de HTML5 no Chrome

Visão geral

O script a seguir desabilita o protetor de tela se ele encontrar uma sessão ativa do Chrome de tela inteira. Por padrão, ele executará uma verificação a cada 5 minutos. O script retomará automaticamente a proteção de tela se uma das três condições a seguir for atendida:

  • a janela não está em tela cheia
  • A janela
  • não está em foco
  • janela não existe mais

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
    
por Glutanimate 14.02.2015 / 22:47
2

A abordagem não-intelectual mais simples, independente da área de trabalho e que se baseia no xdotool , seria simular um toque de tecla a cada N segundos.

Eu uso um script chamado heartbeat.sh :

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

Eu inicio o script enquanto reproduzo o vídeo e paro quando não é mais necessário.

xdotool pode ser instalado com sudo apt-get install xdotool .

Se você também quiser ter algum tipo de detecção automática de áudio, e você está ok com uma receita específica do PulseAudio, então abaixo está uma variação da solução acima que verifica se o áudio está sendo reproduzido:

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

Se estiver usando o Alsa, o teste provavelmente será algo como (não testado):

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

Uma potencial desvantagem desta solução é que sua tela não vai dormir mesmo se você estiver apenas ouvindo música ou rádio, mas eu assumo que na maioria dos casos isso não é um problema.

    
por ccpizza 16.01.2016 / 22:55
1

Para aqueles que gostam de controle total ou manual em suas mãos

Esta linha de comando pode definir o tempo de atraso do protetor de tela:

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

Use "0" (zero) para mantê-lo ligado ou outro valor para definir o atraso em segundos.

O script a seguir manterá a tela até que alguma tecla seja pressionada.

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

Como executar um script:

  1. Copie o texto em um arquivo vazio,
  2. Salve o arquivo,
  3. Torne o arquivo executável,
  4. Executa a partir de um terminal.
por desgua 26.01.2013 / 17:47
1

O VLC em este PPA , além de ser uma versão atual do O VLC também implementa corretamente a inibição do protetor de tela.

Você pode adicionar este PPA usando este comando

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

Você pode simplesmente executar / definir este comando durante a inicialização:

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

Você também pode tentar desmarcar a opção aceleração de hardware no firefox?

    
por karan 10.06.2013 / 08:41
0

Para aqueles que usam o Ubuntu-Gnome 14.04 existe uma extensão simples e útil chamada Cafeína que fornece um ícone de alternância que permite desativar o escurecimento da luz e o comportamento do protetor de tela a partir da barra superior com um clique .

A extensão pode ser instalada seguindo este link para o site do Gnome-Shell Extensions:

link

Seção

Fonte: comentários neste artigo:

link

    
por jasikevicius23 11.02.2015 / 14:50
0

Esta é a minha solução:

link

link

Basta fazer o download do the-bund-light.sh e adicioná-lo ao aplicativo de inicialização:

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

CUIDADO: o valor de Exec no código deve ser o caminho de the-bund-light.sh em seu computador.

    
por yanyingwang 19.02.2016 / 03:46
0

Depende um pouco de qual versão do Ubuntu você está usando. No 11.10, você pode encontrar "Configurações do sistema" clicando no ícone de engrenagem no canto superior direito da tela. Selecione isso e, na caixa de diálogo que aparece, selecione "Tela". Você pode definir a quantidade de tempo que seu computador ficará inativo antes dos espaços em branco da tela com o menu suspenso ou desabilitar esse recurso clicando no botão "Bloquear".

Se você tiver um sistema mais antigo, talvez seja necessário procurar outro lugar para essa configuração, mas ele está em algum lugar.

    
por K. P. MacGregor 20.02.2012 / 01:11
0

Eu uso o seguinte script como solução alternativa:

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

Simula uma tecla shift esquerda pressionada uma vez a cada minuto, o que evita que a tela fique fraca. A desvantagem disso, é claro, é que você tem que executar o script toda vez que você assistir ao youtube. Por outro lado, é simples e funciona com a maioria das configurações, se não todas.

Você pode precisar instalar este

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

O script no topo acima não funciona para mim no Ubuntu 14.04 LTS Unity. Aqui está sua variante atualizada 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

BTW, este script desativa o protetor de tela SOMENTE quando o vídeo está sendo reproduzido, ou seja, quando o flashplayer está no topo dos consumidores da CPU.

    
por Andriy 02.01.2015 / 20:19