Как предотвратить мой экран от затемнения или блокировки экрана, начиная с просмотра YouTube?

97

Яркость экрана, используемая для уменьшения заряда батареи через несколько секунд. Это значение по умолчанию используется в Ubuntu 12.04. Однако при просмотре видео он не должен тускнеть.

Это работает правильно, когда я смотрю видео, используя собственные приложения, такие как VLC. Однако при использовании видео в браузере экран не может быть затемнен. Это очень раздражает, поскольку вам нужно перемещать курсор каждые 10 секунд или около того.

Я использовал Mac OSX, где у меня были такие же настройки затемнения, и Flash-видео были учтены правильно.

Кто-нибудь знает, как вы можете сделать YouTube, чтобы ваш экран не менялся?

    
задан Steven Roose 02.08.2012 в 11:09
источник

20 ответов

54

HOWTO: отключить экранную заставку во время работы Flash

Выполните следующую команду в терминале:

mkdir -p ~/bin

Откройте gedit или ваш предпочтительный текстовый редактор и введите следующее:

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

Сохраните этот файл как ~/bin/flash_saver.sh .

Вернитесь в терминал и запустите:

chmod +x ~/bin/flash_saver.sh

Чтобы запустить это, зайдите в терминал и введите:

~/bin/flash_saver.sh

Если вы предпочитаете, вы можете установить этот сценарий для запуска при входе в систему, выполнив следующие действия:

  1. Запустите программу «Запуск приложений»
  2. Нажмите «Добавить»
  3. Под именем типа «FlashMonitor» или что-то, что вы узнаете
  4. Под командой типа ~/bin/flash_saver.sh
  5. Под комментарием (если хотите) введите краткое описание. Например. «Отключение экрана при запуске Flash»

Источник: HOWTO: отключение экранной заставки во время работы Flash - ubuntuforums     

ответ дан njallam 02.08.2012 в 12:58
источник
31

ИЗМЕНИТЬ

Вероятно, это не сработает, если вы используете версию Ubuntu более позднюю, чем 12.04 (пробовали в 13.04 и 13.10, и она просто не работает вообще). Похоже, что основной разработчик больше не работает в этом проекте, поэтому шансы на его исправление не очень хорошие.

В моей системе (Ubuntu 11.10) я использую Caffeine . Вы можете попробовать, если он работает в Xubuntu тоже. Он добавляет значок области уведомлений, где вы можете включить / отключить скринсейвер для некоторых программ. Чтобы установить кофеин, сделайте следующее:

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

Затем выполните в терминале:

caffeine -p &

Затем вы можете выбрать программы, которые должны отключить заставку:
vlc для VLC, mplayer для Movie Player и т. д.

Надеюсь, что это поможет.

    
ответ дан Salem 19.11.2011 в 12:35
14

В есть красивый маленький скрипт, называемый lightsOn , который должен делать трюк, который вы хотите.

В основном, он ищет полноэкранное видео (flash в firefox или chromium, mplayer или vlc), и если это отключить xscreensaver, а также возможность автоматического управления энергоменеджментами.

из самого скрипта:

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.

Таким образом, вызовите сценарий из папки автозапуска как за мой ответьте здесь .

Откорректируйте скрипт для запуска flash / vlc / mplayer

не забудьте дать права на выполнение скрипта для запуска i.e.

chmod +x lightsOn.sh
    
ответ дан fossfreedom 28.02.2012 в 16:55
10

Не совсем то, что вам нужно, но этот маленький скрипт регистрирует движение мыши каждый раз, когда он запускается. Вы можете бросить его в cron, чтобы запускать его раз в х-время. Это остановило бы экран от выключения, и движение 1 1 мыши едва заметно, если оно работает, когда вы НЕ смотрите видео

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

Я полностью понял эту идею из комикса xkcd. Ссылка

    
ответ дан KentGeek 05.06.2013 в 17:19
7

Для предварительно прокатанного эквивалента скрипту, предоставленному @njallam, с аккуратным элементом пользовательского интерфейса Gnome, попробуйте апплет Caffeine:

Ссылка
Ссылка     

ответ дан andybuckley 03.08.2012 в 17:50
6

В Webupd8 была статья о кофеине и Lightson.sh отключите экранную заставку во время воспроизведения видеороликов Flash или HTML5. Сценарий Lightson работает как для Firefox, так и для Chrome и может быть настроен на включение VLC. Надеюсь, это поможет.

В случае, если код, предоставленный Webupd8 для установки сценария, следует:

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

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

chmod +x lightsOn.sh
    
ответ дан Garry 10.06.2013 в 01:57
5

Вы должны не только проверять параметры заставки, но также параметры управления питанием, особенно параметр «Поставить дисплей в режим сна при неактивном для ...».

Обратите внимание, что на ноутбуках есть два параметра с этим именем: когда ноутбук работает от сети переменного тока и когда он работает от аккумулятора.

    
ответ дан daniel kullmann 28.07.2011 в 13:38
2

Используйте кофеин: страница ppa .

Как установить:

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

Как запустить:

  1. Нажмите Alt + F2 , затем наберите caffeine .

  2. Нажмите значок «Кофеин», затем нажмите «Отключить заставку».

ответ дан user128712 04.06.2013 в 10:03
2

Немного старый, но здесь он поддерживает несколько браузеров:

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

Просто сохраните скрипт где-нибудь, chmod +x it и добавьте его в StartupApplications. Возможно, есть способ перечислить все доступные браузеры, используя что-то вроде:

update-alternatives --list x-www-browser

Но я не знаю, как обрабатывать тот факт, что некоторые исполняемые файлы не имеют имени, чем их процессы (например, /usr/bin/google-chrome работает как chrome ).

    
ответ дан Sheljohn 06.06.2013 в 00:56
2

Для тех, кто использует заставку, отличную от gnome-screensaver (которая является заставкой по умолчанию в Ubuntu, начиная с версии 11.10) это ответ может быть полезен.

Лично я не изменил гном-скринсейвер для чего-то другого, и я не знаю, по каким причинам, кофеин не работает для меня каким-либо образом (может быть, устарел).

Как говорится, начиная с других сценариев bash ( этого , this и это ) , Мне удалось создать новый скрипт, gnome_screensaver_off.sh , который отлично работает для того, что я думал, когда YouTube использует Flash Player для рендеринга видео.

Отключите gnome-screensaver, пока YouTube использует Flash-плеер

Откройте терминал и запустите следующие команды, за которыми следуют инструкции:

  • mkdir -p bin - эта команда сделает каталог bin в вашей папке home , если у вас ее еще нет.
  • gedit ~/bin/gnome_screensaver_off.sh - это создаст новый файл gnome_screensaver_off.sh в gedit.
  • Скопируйте и вставьте следующий скрипт:
#!/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
  • Сохраните файл и закройте его.
  • Вернитесь в терминал и запустите: chmod +x gnome_screensaver_off.sh - чтобы предоставить доступ для выполнения сценария.
  • Чтобы запустить новый скрипт, запустите ~/bin/gnome_screensaver_off.sh .

Если вы предпочитаете, вы можете установить этот сценарий для запуска при входе в систему, выполнив следующие действия:

  1. Найдите Dash для Запуск приложений , откройте его и нажмите Добавить .
  2. Под названием «Монитор YouTube» или что-то, что вы узнаете.
  3. В командной строке введите «/home/$USER/bin/gnome_screensaver_off.sh» (измените $ USER с вашим именем пользователя).
  4. Под комментарием (если хотите) введите краткое описание (например, «Отключение экрана при запуске Flash Player в браузере»).

Отключить gnome-screensaver, в то время как YouTube использует плеер HTML5

Вопрос остается открытым в этом смысле ...

Спасибо за предложения, предлагаемые: fossfreedom , Meer Borg , njallam , desgua и др.

    
ответ дан Radu Rădeanu 05.06.2013 в 16:22
2

Решение для воспроизведения HTML5 в Chrome

Обзор

Следующий скрипт отключает экранную заставку, если находит активный сеанс Chrome на весь экран. По умолчанию он будет проверять каждые 5 минут. Сценарий автоматически возобновит скринсейвер, если выполнено одно из следующих трех условий:

  • окно не полноэкранное
  • Окно
  • не находится в фокусе
  • Окно
  • больше не существует

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
    
ответ дан Glutanimate 14.02.2015 в 21:47
2

Простейшим неинтеллектуальным подходом, который является настольным агностиком и полагается на xdotool , будет симулировать ход ключа каждый N секунд.

Я использую скрипт с именем heartbeat.sh :

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

Я запускаю скрипт во время воспроизведения видео, а затем останавливаю его, когда он больше не нужен.

xdotool может быть установлено с sudo apt-get install xdotool .

Если вы также хотите иметь какое-то автоматическое обнаружение звука, и , у вас все в порядке с рецептом, специфичным для PulseAudio, ниже приведен вариант решения выше, которое проверяет, воспроизводится ли звук:

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

Если вы используете Alsa, тогда тест, вероятно, будет чем-то вроде (untested):

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

Потенциальным недостатком этого решения является то, что ваш экран не будет спать, даже если вы просто слушаете музыку или радио, но я предполагаю, что в большинстве случаев это не проблема.     

ответ дан ccpizza 16.01.2016 в 21:55
1

Для тех, кому нравится полное или ручное управление руками

Эта командная строка может установить время задержки заставки:

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

Используйте «0» (ноль), чтобы сохранить его или другое значение, чтобы определить задержку в секундах.

Следующий скрипт будет удерживать экран до тех пор, пока не будет нажата какая-либо клавиша.

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

Как запустить скрипт:

  1. Скопируйте текст в пустой файл,
  2. Сохраните файл,
  3. Сделать исполняемый файл,
  4. Запустите его с терминала.
ответ дан desgua 26.01.2013 в 16:47
1

VLC в этом PPA в дополнение к текущей версии VLC также правильно реализует торможение экранной заставки.

Вы можете добавить этот PPA, используя эту команду

sudo add-apt-repository ppa:n-muench/vlc
    
ответ дан Rob 29.09.2010 в 19:58
0

Вы можете просто выполнить / установить эту команду во время запуска:

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

Также вы можете попытаться снять флажок аппаратного ускорения в firefox?

    
ответ дан karan 10.06.2013 в 06:41
0

Для тех, кто использует Ubuntu-Gnome 14.04 , есть простой, но полезный Extension под названием Caffeine, который предоставляет значок переключения, который позволяет вам отключить поведение подсветки и экранной заставки с верхней панели с помощью щелчка .

Расширение можно установить по этой ссылке на веб-сайт расширения Gnome-Shell:

Ссылка

Источник: комментарий в этой статье:

Ссылка

    
ответ дан jasikevicius23 11.02.2015 в 13:50
0

Это мое решение:

Ссылка

Ссылка

Просто загрузите the-bund-light.sh и добавьте его в приложение для запуска:

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

ПРЕДОСТЕРЕЖЕНИЕ: значение Exec в коде должно быть на пути the-bund-light.sh на вашем компьютере.

    
ответ дан yanyingwang 19.02.2016 в 02:46
0

В зависимости от того, какую версию Ubuntu вы используете, зависит немного. В 11.10 вы можете найти «Системные настройки», щелкнув значок шестеренки в правом верхнем углу экрана. Выберите это, и в появившемся диалоговом окне выберите «Экран». Вы можете установить время, в течение которого ваш компьютер будет простаивать до того, как экран закроется в раскрывающемся меню, или отключите эту функцию, нажав кнопку с надписью «Lock».

Если у вас более старая система, вам, возможно, придется искать в другом месте для этой настройки, но она где-то там.

    
ответ дан K. P. MacGregor 20.02.2012 в 00:11
0

В качестве обходного пути я использую следующий сценарий:

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

Он имитирует нажатие левой клавиши сдвига один раз каждую минуту, что препятствует тусклу экрана. Недостатком этого, конечно же, является то, что вам нужно запускать скрипт каждый раз, когда вы смотрите на YouTube. С другой стороны, это просто и работает с большинством, если не во всех, конфигурациями.

Вам может потребоваться установить этот

sudo apt-get install xdotool
    
ответ дан Thomas Sejr Jensen 25.12.2016 в 15:28
0

Сценарий на вышеприведенной вершине не работает для меня на Ubuntu 14.04 LTS Unity. Вот его обновленный вариант, который работает:

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

Кстати, этот скрипт отключает скринсейвер ТОЛЬКО при воспроизведении видео, т. е. когда flashplayer находится в верхней части потребителей ЦП.

    
ответ дан Andriy 02.01.2015 в 19:19