Come impedire che lo schermo si oscuri o che il blocco dello schermo si avvii quando guardi YouTube?

97

La luminosità dello schermo si attenuava dopo alcuni secondi per preservare la batteria. Questo è predefinito in Ubuntu 12.04. Tuttavia, quando guardi il video non dovrebbe oscurarsi.

Funziona correttamente quando guardo video usando applicazioni native come VLC. Con il video in-browser, tuttavia, non viene impedito lo spegnimento dello schermo. Questo è molto fastidioso in quanto devi spostare il cursore ogni 10 secondi circa.

Usavo Mac OSX in cui avevo le stesse impostazioni di oscuramento e i video Flash sono stati presi in considerazione correttamente.

Qualcuno ha un'idea su come puoi impedire a YouTube di oscurare lo schermo?

    
posta Steven Roose 02.08.2012 - 13:09
fonte

20 risposte

54

HOWTO: disabilita lo screen saver mentre Flash è in esecuzione

Esegui il seguente comando nel terminale:

mkdir -p ~/bin

Apri gedit o il tuo editor di testo preferito e digita:

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

Salva questo file come ~/bin/flash_saver.sh .

Torna al terminale ed esegui:

chmod +x ~/bin/flash_saver.sh

Per eseguirlo, vai nel terminale e digita:

~/bin/flash_saver.sh

Se preferisci, puoi impostare questo script per l'esecuzione all'accesso, effettuando le seguenti operazioni:

  1. Esegui il programma "Applicazioni di avvio"
  2. Fai clic su "Aggiungi"
  3. Sotto il tipo di nome "FlashMonitor" o qualcosa che riconoscerai
  4. Sotto tipo di comando ~/bin/flash_saver.sh
  5. Sotto il commento (se vuoi) inserisci una breve descrizione. Per esempio. "Interrompe lo schermo quando Flash è in esecuzione"

Fonte: HOWTO: disabilita lo screen saver mentre Flash è in esecuzione - ubuntuforums

    
risposta data njallam 02.08.2012 - 14:58
fonte
31

Modifica

Probabilmente non funzionerà se stai usando una versione di Ubuntu più nuova della 12.04 (ho provato in 13.04 e 13.10 e non funziona affatto). Sembra che lo sviluppatore principale non stia funzionando più in questo progetto, quindi le possibilità che venga risolto non sono buone.

Nel mio sistema (Ubuntu 11.10) uso Caffeina . Puoi provare se funziona anche in Xubuntu. Aggiunge un'icona dell'area di notifica in cui è possibile abilitare / disabilitare lo screensaver per alcuni programmi. Per installare Caffeine, effettuare le seguenti operazioni:

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

Quindi esegui in un terminale:

caffeine -p &

Puoi quindi scegliere i programmi che dovrebbero disabilitare lo screensaver:
vlc per VLC, mplayer per Movie Player, ecc.

Spero che ti aiuti.

    
risposta data Salem 19.11.2011 - 13:35
fonte
14

C'è un simpatico script su GitHub chiamato lightsOn che dovrebbe fare il trucco che vuoi.

Fondamentalmente cerca video a schermo intero (flash in firefox o chromium, mplayer o vlc) e in tal caso disabilita xscreensaver e anche la funzionalità di oscuramento automatico del power manager.

dallo script stesso:

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.

Quindi chiama lo script dalla cartella autostart come per mio rispondi qui .

Regola lo script per sapere se stai eseguendo flash / vlc / mplayer

ricorda di dare allo script i diritti di esecuzione per eseguire i.e.

chmod +x lightsOn.sh
    
risposta data fossfreedom 28.02.2012 - 17:55
fonte
10

Non del tutto ciò che stai cercando, ma questo piccolo script registrerebbe un movimento del mouse ogni volta che veniva eseguito. Si può rilasciarlo in cron per eseguire una volta ogni x-quantità-di-tempo. Ciò impedirebbe lo spegnimento dello schermo e un movimento del mouse di 1 1 si noterà a malapena se viene eseguito quando NON stai guardando un video

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

Comunque ho avuto questa idea da un fumetto di xkcd. link

    
risposta data KentGeek 05.06.2013 - 19:19
fonte
7

Per un pre-rolled equivalente allo script fornito da @njallam, con un piccolo elemento dell'interfaccia utente Gnome, prova l'applet Caffeine:

link
link

    
risposta data andybuckley 03.08.2012 - 19:50
fonte
6

Webupd8 aveva un articolo su Caffeine and Lightson.sh to disabilita lo screen saver durante la riproduzione di video Flash o HTML5. Lo script Lightson funziona sia per Firefox che per Chrome e può essere impostato per includere VLC. Spero che questo ti possa aiutare.

Nel caso in cui il codice fornito da Webupd8 per installare lo script segua:

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

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

chmod +x lightsOn.sh
    
risposta data Garry 10.06.2013 - 03:57
fonte
5

Non dovresti solo controllare le opzioni del salvaschermo, ma anche le opzioni di risparmio energetico, in particolare l'opzione "Metti il ​​display in pausa quando inattivo per ...".

Nota che sui laptop ci sono due impostazioni con quel nome: quando il laptop è alimentato dalla rete elettrica e quando è alimentato a batteria.

    
risposta data daniel kullmann 28.07.2011 - 15:38
fonte
2

Usa Caffeina: pagina ppa .

Come installare:

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

Come eseguire:

  1. Premi Alt + F2 , quindi digita caffeine .

  2. Fai clic sull'icona "Caffeina", quindi su "Disabilita salvaschermo".

risposta data user128712 04.06.2013 - 12:03
fonte
2

Un po 'vecchio, ma eccolo con il supporto di più browser:

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

Basta salvare lo script da qualche parte, chmod +x e aggiungerlo alle StartupApplications. Potrebbe esserci un modo per elencare tutti i browser disponibili usando qualcosa come:

update-alternatives --list x-www-browser

Ma non so come gestire il fatto che alcuni eseguibili non hanno il nome dei loro processi (per esempio /usr/bin/google-chrome viene eseguito come chrome ).

    
risposta data Sheljohn 06.06.2013 - 02:56
fonte
2

Per coloro che utilizzano uno screensaver diverso da gnome-screensaver (che è lo screensaver predefinito in Ubuntu che inizia con la versione 11.10) questo la risposta potrebbe essere utile.

Personalmente, non ho cambiato gnome-screensaver per qualcos'altro e, non so per quali ragioni, Caffeine non funziona per me in alcun modo (forse è obsoleto).

Detto questo, partendo dagli script di bash degli altri ( questo , questo e questo ) , Sono riuscito a creare un nuovo script, gnome_screensaver_off.sh che funziona perfettamente per ciò che intendevo quando YouTube utilizza Flash Player per il rendering di video.

Disattiva gnome-screensaver mentre YouTube utilizza Flash player

Apri un terminale ed esegui i comandi successivi seguiti dalle istruzioni:

  • mkdir -p bin - questo comando creerà una cartella bin nella tua cartella home se non la hai già.
  • gedit ~/bin/gnome_screensaver_off.sh : questo creerà il nuovo file gnome_screensaver_off.sh in gedit.
  • Copia e incolla lo script successivo:
#!/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
  • Salva il file e chiudilo.
  • Torna al terminale ed esegui: chmod +x gnome_screensaver_off.sh - per garantire l'accesso all'esecuzione per lo script.
  • Per eseguire il tuo nuovo script, esegui ~/bin/gnome_screensaver_off.sh .

Se preferisci, puoi impostare questo script per l'esecuzione all'accesso, effettuando le seguenti operazioni:

  1. Cerca in Dash per Applicazioni di avvio , aprilo e fai clic su Aggiungi .
  2. Sotto il nome "YouTube Monitor" o qualcosa che riconoscerai
  3. Sotto tipo di comando "/home/$USER/bin/gnome_screensaver_off.sh" (cambia $ USER con il tuo nome utente).
  4. Sotto il commento (se lo desideri), digita una breve descrizione (ad esempio "la schermata di arresto si spegne quando Flash Player è in esecuzione nel browser").

Disattiva gnome-screensaver mentre YouTube utilizza HTML5 player

La domanda rimane aperta in questo senso ...

Grazie per i suggerimenti offerti da: fossfreedom , Meer Borg , njallam , desgua e altri.

    
risposta data Radu Rădeanu 05.06.2013 - 18:22
fonte
2

Soluzione per la riproduzione HTML5 in Chrome

Panoramica

Il seguente script disabilita lo screensaver se trova una sessione di Chrome a schermo intero attiva. Per impostazione predefinita eseguirà un controllo ogni 5 minuti. Lo script ripristinerà automaticamente lo screensaver se viene soddisfatta una delle seguenti tre condizioni:

    La finestra
  • non è a schermo intero
  • La finestra
  • non è a fuoco
  • la finestra non esiste più

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
    
risposta data Glutanimate 14.02.2015 - 22:47
fonte
2

L'approccio non intellettualmente più semplice, indipendente dal desktop e basato su xdotool , è quello di simulare un tratto chiave ogni N secondi.

Uso uno script chiamato heartbeat.sh :

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

Lancio lo script mentre riproduco il video, quindi lo interrompo quando non è più necessario.

xdotool può essere installato con sudo apt-get install xdotool .

Se vuoi anche avere qualche tipo di rilevamento automatico dell'audio, e stai bene con una ricetta specifica per PulseAudio, quindi sotto c'è una variante della soluzione sopra che controlla se l'audio è in riproduzione:

#!/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 si utilizza Alsa, il test sarebbe probabilmente qualcosa di simile (non testato):

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

Un potenziale svantaggio di questa soluzione è che lo schermo non dorme anche se ascolti solo musica o radio, ma presumo che nella maggior parte dei casi questo non sia un problema.

    
risposta data ccpizza 16.01.2016 - 22:55
fonte
1

Per coloro che amano il controllo completo o manuale a portata di mano

Questa riga di comando può impostare il tempo di ritardo dello screensaver:

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

Utilizzare "0" (zero) per mantenerlo attivo o un altro valore per definire il ritardo in secondi.

Il seguente script manterrà lo schermo attivo finché non verrà premuto un tasto.

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

Come eseguire uno script:

  1. Copia il testo in un file vuoto,
  2. Salva il file,
  3. Rendi il file eseguibile,
  4. eseguilo da un terminale.
risposta data desgua 26.01.2013 - 17:47
fonte
1

Il VLC in questo PPA oltre ad essere una versione corrente di VLC implementa anche correttamente l'inibizione dello screen saver.

Puoi aggiungere questo PPA usando questo comando

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

Potresti semplicemente eseguire / impostare questo comando durante l'avvio:

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

Puoi anche provare a deselezionare l'opzione accelerazione hardware su firefox?

    
risposta data karan 10.06.2013 - 08:41
fonte
0

Per coloro che usano Ubuntu-Gnome 14.04 c'è un'estensione semplice ma utile chiamata Caffeina che fornisce un'icona di commutazione che ti permette di disabilitare l'attenuazione della luce e il comportamento dello screen saver dalla barra in alto con un clic .

L'estensione può essere installata seguendo questo link al sito web di Gnome-Shell Extensions:

link

Fonte: sezione commenti in questo articolo:

link

    
risposta data jasikevicius23 11.02.2015 - 14:50
fonte
0

Questa è la mia soluzione:

link

link

Basta scaricare the-bund-light.sh e aggiungerlo all'avvio dell'applicazione:

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

ATTENZIONE: il valore di Exec nel codice deve essere il percorso di the-bund-light.sh nel tuo computer.

    
risposta data yanyingwang 19.02.2016 - 03:46
fonte
0

Dipende un po 'da quale versione di Ubuntu stai usando. In 11.10, puoi trovare "Impostazioni di sistema" facendo clic sull'icona a forma di ingranaggio nell'angolo in alto a destra dello schermo. Seleziona questo, e nella finestra di dialogo che si apre, seleziona "Schermo". Puoi impostare la quantità di tempo in cui il computer sarà inattivo prima che lo schermo si oscuri con il menu a discesa, o disattivare quella funzione facendo clic sul pulsante "Blocca".

Se hai un sistema più vecchio, potresti dover cercare altrove questa impostazione, ma è lì da qualche parte.

    
risposta data K. P. MacGregor 20.02.2012 - 01:11
fonte
0

Uso il seguente script come soluzione alternativa:

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

Simula una pressione del tasto Maiusc sinistro una volta al minuto, impedendo che lo schermo si oscuri. Lo svantaggio di questo, ovviamente, è che devi eseguire lo script ogni volta che guardi su YouTube. D'altra parte, è semplice e funziona con la maggior parte, se non tutte, le configurazioni.

Potrebbe essere necessario installare questo

sudo apt-get install xdotool
    
risposta data Thomas Sejr Jensen 25.12.2016 - 16:28
fonte
0

Lo script sopra non funziona per me su Ubuntu 14.04 LTS Unity. Qui la sua variante aggiornata che funziona:

#!/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, questo script disabilita lo screensaver SOLO quando il video è in riproduzione, cioè quando flashplayer è nella parte superiore dei consumatori di CPU.

    
risposta data Andriy 02.01.2015 - 20:19
fonte

Leggi altre domande sui tag