Jak zabránit spuštění obrazovky při stmívání nebo zablokování obrazovky při sledování YouTube?

99

Po několika vteřinách mi jas obrazovky ztmavil, aby se zachovala baterie. Toto je implicitní nastavení v Ubuntu 12.04. Při sledování videa by však nemělo být tlumené.

To funguje správně, když se dívám na videa pomocí nativních aplikací, jako je VLC. S videem v prohlížeči však není zabráněno ztlumení obrazovky. To je velmi nepříjemné, protože musíte přesunout kurzor každých 10 sekund.

Používal jsem Mac OSX, kde jsem měl stejná nastavení stmívání a videa Flash byly vzaty v úvahu správně.

Každý, kdo ví, jak zabránit stmívání obrazovky YouTube?

    
dané Steven Roose 02.08.2012 13:09

20 odpovědí

54

HOWTO: Zablokování spořiče obrazovky při běhu Flash

Spusťte následující příkaz v terminálu:

mkdir -p ~/bin

Otevřete gedit nebo preferovaný textový editor a zadejte tento:

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

Uložit tento soubor jako~/bin/flash_saver.sh.

Vraťte se zpět do terminálu a spusťte:

chmod +x ~/bin/flash_saver.sh

Chcete-li toto spustit, přejděte do terminálu a zadejte:

~/bin/flash_saver.sh

Pokud chcete, můžete tento skript nastavit při přihlášení následujícím postupem:

  1. Spusťte program "Spouštěcí aplikace"
  2. Klikněte na tlačítko "Přidat"
  3. Pod názvem "FlashMonitor" nebo něco, co rozpoznáte
  4. Pod typem příkazu~/bin/flash_saver.sh
  5. Pod poznámkou (pokud chcete) zadejte stručný popis. Např. "Zastaví vypnutí obrazovky, když je Flash spuštěn"

Zdroj: HOWTO: Zablokování spořiče obrazovky při běhu Flash - ubuntuforums

    
odpověděl njallam 02.08.2012 14:58
31

EDIT

To pravděpodobně nebude fungovat, pokud používáte verzi Ubuntu novější než 12.04 (pokusili se v 13.04 a 13.10 a to prostě nefunguje vůbec). Zdá se, že hlavní vývojář už v tomto projektu nepracuje, takže šance na jeho fixaci nejsou dobré.

V mém systému (Ubuntu 11.10) používám kofein . Můžete zkusit, pokud funguje i v Xubuntu. Přidá ikonu oznamovací oblasti, kde můžete povolit / zakázat spořič obrazovky pro některé programy. Chcete-li nainstalovat kofein, postupujte takto:

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

Poté spusťte v terminálu:

caffeine -p &

Můžete vybrat programy, které by měly vypnout spořič obrazovky:
vlc pro VLC,mplayer pro Movie Player atd.

Doufám, že to pomůže.

    
odpověděl Salem 19.11.2011 13:35
14

Existuje pěkný malý skript na GitHub nazvaném lightsOn , který by měl dělat trik, který chcete.

V podstatě hledá video na celé obrazovce (flash ve firefoxu nebo chromu, mplayeru nebo vlc), a pokud ano, vypne xscreensaver a také funkci automatického vypnutí obrazovky.

ze samotného skriptu:

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.

Zavolejte skriptu ze složky autostart jako podle mého odpovězte zde .

Upravte skript, zda používáte flash / vlc / mplayer

nezapomeňte dát skriptu spouštěcí práva k spuštění např.

chmod +x lightsOn.sh
    
odpověděl fossfreedom 28.02.2012 17:55
10

Není to úplně to, co jste po, ale tento malý skript by zaregistroval pohyb myši pokaždé, když byl spuštěn. Mohli byste ho spustit do cronu, aby běžel jednou za každou x-částku času. To by zastavilo vypnutí obrazovky a pohyb 1 1 myši je sotva viditelný, pokud se spustí, když NEVIDÁTE video.

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

Mimochodem, tento nápad jsem absolutně získal od komiksu xkcd. Odkaz

    
odpověděl KentGeek 05.06.2013 19:19
7

Pro pre-rolovaný ekvivalent scénáře dodávaného firmou @ njallam, s elegantním malým prvkem Gnome UI, zkuste apletu Caffeine:

Odkaz
Odkaz

    
odpověděl andybuckley 03.08.2012 19:50
6

Webupd8 měl článek o Caffeine a Lightson.sh vypněte spořič obrazovky při přehrávání videí ve formátu Flash nebo HTML5. Skript Lightson funguje jak pro prohlížeč Firefox, tak i pro Chrome a může být nastaven tak, aby zahrnoval VLC. Doufám, že to pomůže.

Pokud kód nainstalovaný skriptem Webupd8 provede:

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

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

chmod +x lightsOn.sh
    
odpověděl Garry 10.06.2013 03:57
5

Měli byste nejen kontrolovat možnosti spořiče obrazovky, ale také možnosti správy napájení, zejména volbu "Umístit displej do režimu spánku při nečinnosti pro ...".

Všimněte si, že u notebooků existují dvě nastavení s tímto názvem: když je notebook napájen střídavým napájením a když běží na baterii.

    
odpověděl daniel kullmann 28.07.2011 15:38
2

Použijte kofein: stránka ppa .

Jak nainstalovat:

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

Jak spustit:

  1. Hit Alt + F2 , zadejtecaffeine.

  2. Klikněte na ikonu "Kofein" a klikněte na "Zakázat spořič obrazovky".

odpověděl user128712 04.06.2013 12:03
2

Trochu starý, ale tady je s podporou více prohlížečů:

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

Skript uložte někde,chmod +x it a přidejte jej do StartupApplications. Možná existuje způsob, jak seznam všech dostupných prohlížečů používat:

update-alternatives --list x-www-browser

Ale nevím, jak zvládnout skutečnost, že některé spustitelné soubory nemají jméno než jejich procesy (například/usr/bin/google-chrome běží jakochrome).

    
odpověděl Sheljohn 06.06.2013 02:56
2

Pro ty, kteří používají jiný spořič obrazovky než gnome-screensaver (což je výchozí spořič obrazovky v Ubuntu od verze 11.10) toto odpověď může být užitečná.

Osobně jsem nezměnil gnome-spořič obrazovky za něco jiného a nevím, z jakých důvodů nefunguje kofein v žádném případě (možná je zastaralý).

To je řečeno, od ostatních bash skriptů ( toto , this a ) , Podařilo se mi vytvořit nový skriptgnome_screensaver_off.sh, který funguje dokonale pro to, co jsem zamýšlel, když YouTube používá přehrávač Flash pro vykreslování videí.

Deaktivujte gnome-spořič obrazovky, zatímco služba YouTube používá přehrávač Flash

Otevřete terminál a spusťte další příkazy následované pokyny:

  • mkdir -p bin - tento příkaz vytvoří adresářbin ve složcehome, pokud jej nemáte.
  • gedit ~/bin/gnome_screensaver_off.sh - tím vytvoří nový souborgnome_screensaver_off.sh v gedit.
  • Zkopírujte a vložte další skript:
#!/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
  • Uložte soubor a zavřete jej.
  • Vraťte se zpět do terminálu a spusťte:chmod +x gnome_screensaver_off.sh - pro udělení přístupu pro skript.
  • Chcete-li spustit nový skript, spusťte~/bin/gnome_screensaver_off.sh.

Pokud chcete, můžete tento skript nastavit při přihlášení následujícím postupem:

  1. Vyhledejte Pomlčka pro Spouštěcí aplikace , otevřete ji a klikněte na Přidat .
  2. Pod názvem "YouTube Monitor" nebo něco, co poznáte.
  3. Pod příkazem "/home/$USER/bin/gnome_screensaver_off.sh" (změňte $ USER s uživatelským jménem).
  4. Pod poznámkou (pokud chcete) zadejte stručný popis (např. "vypnutí obrazovky se vypne při přehrávání přehrávače Flash v prohlížeči").

Zakažte gnome-spořič obrazovky, když YouTube používá přehrávač HTML5

Otázka zůstává otevřená v tomto smyslu ...

Děkujeme za návrhy, které nabízí: fossfreedom , Meer Borg , njallam , desgua a další.

    
odpověděl Radu Rădeanu 05.06.2013 18:22
2

Řešení pro přehrávání HTML5 v Chrome

Přehled

Následující skript zakáže šetřič obrazovky, pokud zjistí aktivní relaci Chrome na celou obrazovku. Ve výchozím nastavení bude provedena kontrola každých 5 minut. Skript automaticky obnoví spořič obrazovky, pokud je splněna jedna z následujících tří podmínek:

  • okno není celé obrazovky
  • okno není zaostřené
  • okno již neexistuje

Skript

#!/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
    
odpověděl Glutanimate 14.02.2015 22:47
2

Nejjednodušší non-intelektuální přístup, který je desktop-agnostický a spoléhá na xdotool , by byl simulovat klíčový úder každé N sekundy.

Používám skript s názvemheartbeat.sh:

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

Během přehrávání videa spustím skript a poté jej zastavím, když už to není potřeba.

xdotool lze nainstalovat ssudo apt-get install xdotool.

Pokud také chcete mít nějaký druh automatické detekce zvuku, a jste v pořádku s receptorem specifickým pro PulseAudio, pak níže je variant výše uvedeného řešení, který kontroluje, zda se přehrává zvuk:

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

Pokud používáte Alsa, pak by test pravděpodobně vypadal jako (netestovaný):

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

Potenciální nevýhodou tohoto řešení je to, že obrazovka nebude spát, i když posloucháte hudbu nebo rádio, ale předpokládám, že ve většině případů to není problém.

    
odpověděl ccpizza 16.01.2016 22:55
1

Pro ty, kteří mají rádi plné nebo ruční ovládání

Tento příkazový řádek může nastavit čas zpoždění spořiče obrazovky:

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

Použijte klávesu "0" (nula), abyste ji udrželi nebo jinou hodnotu pro definování zpoždění v sekundách.

Následující skript udrží obrazovku, dokud nebude stisknuto nějaké tlačítko.

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

Spuštění skriptu:

  1. Zkopírujte text do prázdného souboru
  2. Uložte soubor,
  3. Spusťte spustitelný soubor
  4. Spusťte jej z terminálu.
odpověděl desgua 26.01.2013 17:47
1

VLC v tomto PPA , kromě aktuální verze VLC také správně implementuje zablokování spořiče obrazovky.

Tento PPA můžete přidat pomocí tohoto příkazu

sudo add-apt-repository ppa:n-muench/vlc
    
odpověděl Rob 29.09.2010 21:58
0

Při spouštění můžete tento příkaz jednoduše spustit / nastavit:

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

Můžete také zkusit zrušit zaškrtnutí volby hardwarové akcelerace v aplikaci firefox?

    
odpověděl karan 10.06.2013 08:41
0

Pro uživatele, kteří používají Ubuntu-Gnome 14.04 , existuje jednoduché, ale užitečné rozšíření s názvem Kofein, které poskytuje ikonu přepínání, která umožňuje kliknutím na tlačítko vypnout stmívání světla a spořič obrazovky z horní lišty .

Rozšíření lze nainstalovat následovně na tento odkaz na webovou stránku Gnome-Shell Extensions:

Odkaz

Zdroj: komentáře v tomto článku:

Odkaz

    
odpověděl jasikevicius23 11.02.2015 14:50
0

Toto je moje řešení:

Odkaz

Odkaz

Stačí stáhnoutthe-bund-light.sh a přidat ho do aplikace pro spuštění:

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

UPOZORNĚNÍ: HodnotaExec v kódu by měla být cestathe-bund-light.sh ve vašem počítači.

    
odpověděl yanyingwang 19.02.2016 03:46
0

Záleží jen na jaké verzi Ubuntu používáte. V 11.10 najdete "Nastavení systému" kliknutím na ikonu ozubeného kola v pravém horním rohu obrazovky. Vyberte tuto možnost a v dialogu, který se objeví, vyberte možnost "Obrazovka". Můžete nastavit dobu, po kterou bude váš počítač nečinný před rozbalením obrazovky v rozevírací nabídce, nebo tuto funkci deaktivujete klepnutím na tlačítko s označením "Uzamknout".

Pokud máte starší systém, možná budete muset hledat toto nastavení jinde, ale někde je tam.

    
odpověděl K. P. MacGregor 20.02.2012 01:11
0

Používám následující skript jako řešení:

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

Simuluje klávesu levého posuvu jednou za minutu, což zabraňuje ztlumení obrazovky. Nevýhodou je samozřejmě, že musíte spouštět skript pokaždé, když se díváte na youtube. Na druhou stranu je to jednoduché a pracuje s většinou, ne-li všemi, konfiguracemi.

Možná budete muset nainstalovat tuto

sudo apt-get install xdotool
    
odpověděl Thomas Sejr Jensen 25.12.2016 16:28
0

Skript nahoře na horní straně nepracuje pro mě na Ubuntu 14.04 LTS Unity. Zde je jeho aktualizovaný varianta, která funguje:

#!/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, tento skript vypne spořič obrazovky POUZE při přehrávání videa, tj. když je flashplayer v horní části spotřebitelů CPU.

    
odpověděl Andriy 02.01.2015 20:19