Como impedir que minha tela fique esmaecida ou que o bloqueio de tela seja iniciado ao assistir ao YouTube?


100

O brilho da tela costumava diminuir depois de alguns segundos para preservar a bateria. Isso é o padrão no Ubuntu 12.04. No entanto, ao assistir ao vídeo, não deve escurecer.

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

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

Alguém tem uma idéia de como você pode fazer com que o YouTube impeça que sua tela fique esmaecida?


4
Portanto, como esse é um problema para o qual a maioria dos usuários do Ubuntu deseja uma solução, podemos considerá-lo um bug no sistema operacional ou no software (Flash, Chrome, Firefox) e obter uma correção para que todo usuário não precise para acessar esta página do AskUbuntu?
blong

1
Agradeço toda a ajuda, mas isso é ridículo que isso aconteça em 2016. Vamos lá, essas são coisas básicas que não são suportadas. Também vídeo em HTML5 - por que é tão lento e com bugs? É um problema tão grande para corrigir ..? Era para substituir o Flash .. agora parece ridículo.
Dor

Pessoalmente, entendo que meu navegador não pode impedir o bloqueio do meu computador, por isso não acredito que isso seja um bug. O que você está pedindo pode deixar seu computador em uma configuração menos segura.
usar o seguinte código

@earthmeLon ou qualquer outra pessoa, você pode explicar como será menos seguro?
Sergey Chupov

Respostas:


54

COMO: Desativar protetor de tela enquanto o Flash está em execução

Execute o seguinte comando no terminal:

mkdir -p ~/bin

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

#!/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 ao 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 executar no logon, fazendo o seguinte:

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

Fonte: COMO FAZER: Desativar protetor de tela enquanto o Flash estiver em execução - ubuntuforums


4
Se eu pudesse, eu votaria nisso +5. O script do fórum do ubuntu está incrivelmente bem escrito, assim como a sua resposta. Também é uma boa ideia incluir realmente a fonte.
con-f-use


4
Isso realmente funciona apenas para o Firefox. Alguém pode reescrever isso para suporte a vários navegadores?
Steven Roose

3
funcionará com o player de vídeo html5?
Kdureidy

2
É realmente necessário suporte a vídeo HTML5.
ulidtko

31

EDITAR

Provavelmente isso não funcionará se você estiver usando uma versão do Ubuntu mais recente que a 12.04 (tentei nas 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 ser corrigido não são boas.


No meu sistema (Ubuntu 11.10) eu uso Caffeine . Você pode tentar se ele funciona no Xubuntu também. Ele adiciona um ícone da área de notificação onde você pode ativar / desativar o protetor 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 escolher os programas que devem desativar o protetor de tela:
vlcpara VLC, mplayerpara Movie Player, etc.

Preferências de cafeína

Espero que ajude.


Isso está funcionando muito bem em 12.04, Obrigado!
Geppettvs D'Constanzo

Obrigado por contribuir com uma solução, mas esta é a melhor solução? Isso não é um bug? Tem que ser um bug. Isso acontece no gnomo, mas não na unidade.
Gerard Roche

Agora estou no 12.04 e ainda uso esse aplicativo, não para interromper o protetor de tela, mas para desativar rapidamente a diminuição do brilho da tela. Pelo que vi, se é um bug, está no navegador: deve ser sua responsabilidade inibir o protetor de tela quando estiver em tela cheia.
Salem

Não instala na 13.10
NoBugs

1
Esta resposta precisa ser atualizada, pois o Caffeine funciona no Ubuntu 16.04 Xenial. ;)
Andrea Lazzarotto

14

Existe um pequeno script no GitHub chamado lightsOn, que deve fazer o truque que você deseja.

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

do próprio script:

COMO USAR: Inicie o script com o número de segundos que deseja que as verificações
para que a tela cheia seja feita. Exemplo:
 "./lightsOn.sh 120 &" irá verificar a cada 120 segundos se o Mplayer,
 VLC, Firefox ou Chromium são protetores de tela de tela cheia e de atraso, além de Gerenciamento de energia.
 Você deseja que o número de segundos seja ~ 10 segundos menor que o tempo que leva
 seu protetor de tela ou Gerenciamento de energia para ativar.
 Se você não passar um argumento, as verificações são feitas a cada 50 segundos.

Assim, chame o script da sua pasta de inicialização automática conforme minha resposta aqui .

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

lembre-se de dar ao script direitos de execução, ou seja,

chmod +x lightsOn.sh

3
LightsOn parece unmaintained mas há garfos vivos ( github.com/partizand/lightsOn , github.com/unhammer/lightsOn )
Jérôme

10

Não é exatamente o que você procura, mas esse pequeno script registraria um movimento do mouse toda vez que ele fosse executado. Você pode soltá-lo no cron para executar uma vez a cada x vezes. Isso impediria a tela de desligar, e um movimento de 1 1 do mouse é quase imperceptível se for executado quando você NÃO estiver assistindo a um vídeo

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

A propósito, eu peguei essa ideia totalmente de uma história em quadrinhos do xkcd. http://xkcd.com/196/


Ou execute-o a partir de um script do Bash (com while e sleep), como algumas das outras respostas aqui.
Peter Mortensen

7

Para um equivalente pré-processado ao script fornecido por @njallam, com um pequeno elemento de interface do usuário do Gnome, tente o applet Caffeine:

https://launchpad.net/caffeine
http://ubuntu-tweak.com/app/caffeine/


Eu tinha o Caffeine instalado, mas não vi que você precisava ativá-lo para deixá-lo funcionar. Obrigado!
Steven Roose

Informações dos desenvolvedores do Caffeine: “O suporte ao vídeo em Flash desapareceu, pois era muito complicado para mantê-lo funcionando.” Portanto, você pode esquecer a caixa de seleção Vídeo em Flash nas configurações. No entanto, se você estiver usando o Firefox, adicione plugin-containerà lista de programas e o Caffeine será ativado nos vídeos em Flash corretamente (a desativação será atrasada um pouco, pois o contêiner de plug-ins não é descarregado imediatamente quando você fecha a guia do vídeo, leva alguns minutos )
whtyger

6

O Webupd8 publicou um artigo sobre Caffeine e Lightson.sh para desativar o protetor de tela durante a reprodução de vídeos em Flash ou HTML5. O script Lightson funciona para Firefox e Chrome e pode ser definido para incluir o VLC. Espero que isso ajude.

Caso o código fornecido pelo 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

1
O método usado nesse script ( lightsOn.sh) para detectar se o navegador utiliza o HTML5 player não é realmente bom. De fato, o método determina se o Firefox ou o Chromium estão em tela cheia ... No resto, o artigo é bom e sua resposta é mais abordada sobre o que eu perguntei.
Radu Rădeanu

1
Eu estive fazendo um pouco mais de pesquisa e encontrei um script baseado na CPU ou na atividade da rede. Ele está localizado nos Fóruns do Mint e pode oferecer um controle um pouco melhor. Divirta-se assistindo ao YouTube.
Garry

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 suspensão quando inativa por ...".

Observe que nos laptops, existem duas configurações com esse nome: quando o laptop está funcionando com energia CA e quando está com bateria.


2

Use Caffeine: ppa page .

Como instalar:

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

Como executar:

  1. Pressione Alt+ F2e digite caffeine.

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


1
Não pretendo desativar o protetor de tela. Enfim, eu tentei cafeína, mas não funciona de forma alguma. Eu não acho que isso seja atualizado para a versão mais recente do Gnome.
Radu Rădeanu

@ A cafeína RaduRădeanu desativa o protetor de tela do seu computador, que não tem nada a ver com o seu navegador da web.
Alvar

@ Alvar Tem, se desejar ... Enfim, não funcionou para mim.
Radu Rădeanu

2

Um pouco velho, 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

Apenas salve o script em algum lugar chmod +xe 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 não sei como lidar com o fato de que alguns executáveis ​​não têm o nome que seus processos (por exemplo, são /usr/bin/google-chromeexecutados como chrome).



2

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

Pessoalmente, não troquei o protetor de tela de gnomo por outra coisa e, não sei por que razões, a cafeína não funciona para mim de forma alguma (talvez esteja desatualizada).

Dito isto, a partir de roteiros de outros Bash ( este , este e este ), eu consegui fazer um novo roteiro, gnome_screensaver_off.shque funciona perfeitamente para o que eu pretendia quando o YouTube está usando Flash player para renderizar vídeos.

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

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

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

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

  1. Pesquise no Dash por aplicativos de inicialização , abra-o e clique em Adicionar .
  2. Sob o nome, digite "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, "Interrompe a tela quando o Flash player está sendo executado no navegador").

Desativar protetor de tela gnome enquanto o YouTube estiver usando o player HTML5

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

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


2

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

visão global

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

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

Roteiro

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

2

A abordagem não-intelectual mais simples, independente de desktop e baseada 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

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

xdotoolpode ser instalado com sudo apt-get install xdotool.

Se você também deseja ter algum tipo de detecção automática de áudio e concorda com uma receita específica do PulseAudio, 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 você 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 desvantagem potencial dessa solução é que sua tela não dorme, mesmo se você estiver apenas ouvindo música ou rádio, mas presumo que na maioria dos casos isso não seja um problema.


1

Para quem gosta 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 ou outro valor para definir o atraso em segundos.

O script a seguir manterá a tela ligada 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. Execute-o a partir de um terminal.

1

O VLC neste PPA , além de ser uma versão atual do VLC, também implementa corretamente a inibição da proteção de tela.

Você pode adicionar este PPA usando este comando

sudo add-apt-repository ppa:n-muench/vlc

O que isso tem a ver com o escurecimento do vídeo no navegador?
Peter Mortensen

Muitas questões diferentes parecem ter sido incorporadas a essa. Verifique o histórico de edições e talvez algumas das questões incluam problemas com a proteção de tela.
27716 Rob

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 de aceleração de hardware no firefox?


2
Eu disse isso antes: não pretendo desativar o protetor de tela . Quero apenas impedir que minha tela fique esmaecida ao assistir ao YouTube.
Radu Rădeanu

0

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

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

https://extensions.gnome.org/extension/517/caffeine/

Fonte: seção de comentários deste artigo:

http://www.maketecheasier.com/prevent-ubuntu-sleep- while-watching-video/


0

Esta é a minha solução:

https://github.com/yanyingwang/shanghai-tools/blob/master/kit/the-bund-light.md

https://github.com/yanyingwang/shanghai-tools/blob/master/kit/the-bund-light.sh

Basta baixar the-bund-light.she 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 Execvalor do código deve estar no caminho do the-bund-light.shseu computador.


0

Depende um pouco da versão do Ubuntu que você está usando. Na versão 11.10, você pode encontrar "Configurações do sistema" clicando no ícone de roda dentada no canto superior direito da tela. Selecione isso e, na caixa de diálogo exibida, selecione "Tela". Você pode definir a quantidade de tempo que o computador ficará ocioso antes que a tela apareça no menu suspenso ou desativar esse recurso clicando no botão "Bloquear".

Se você possui um sistema mais antigo, pode ser necessário procurar em outra parte essa configuração, mas ela existe em algum lugar.


4
Sim, mas não quero desativá-lo permanentemente.
22412 st_kwr

0

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

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

Ele simula um pressionamento de tecla Shift esquerdo uma vez a cada minuto, o que impede que a tela fique escura. A desvantagem disso, é claro, é que você deve executar o script sempre que assistir ao youtube. Por outro lado, é simples e funciona com a maioria das configurações, se não todas.

Pode ser necessário instalar este

sudo apt-get install xdotool

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 "$1"
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout "$2"
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout "$3"
    gsettings set org.gnome.settings-daemon.plugins.power idle-dim "$4"
}

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, esse script desativa o protetor de tela SOMENTE quando o vídeo está sendo reproduzido, ou seja, quando o flashplayer está no topo dos consumidores de CPU.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.