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

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

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

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

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

102
задан 8 February 2014 в 18:11

20 ответов

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

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

mkdir -p ~/bin

Открыть gedit или предпочитаемый вами текстовый редактор и ввести this:

#!/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» или что-то, что вы узнаете [ 119]
  4. Под типом команды ~/bin/flash_saver.sh
  5. Под комментарием (если хотите) введите краткое описание. Например. «Останавливает отключение экрана во время работы Flash»

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

0
ответ дан 8 February 2014 в 18:11

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

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

Просто скачайте 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 на вашем компьютере.

0
ответ дан 8 February 2014 в 18:11

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

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

0
ответ дан 8 February 2014 в 18:11

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

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

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

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

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

0
ответ дан 8 February 2014 в 18:11

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

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

sudo add-apt-repository ppa:n-muench/vlc
0
ответ дан 8 February 2014 в 18:11

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

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

Также можете попробовать отключить опцию аппаратного ускорения в Firefox?

0
ответ дан 8 February 2014 в 18:11

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

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

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. Запустите его из терминала.
0
ответ дан 8 February 2014 в 18:11

Простейшим неинтеллектуальным подходом, не зависящим от десктопа и основанным на 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, то ниже приведен вариант решения выше, который проверяет, воспроизводится ли звук: [ 1111]

#!/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, тогда тест, вероятно, будет выглядеть примерно так (не проверено):

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

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

0
ответ дан 8 February 2014 в 18:11

Сценарий, описанный выше, не работает для меня в 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 "$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

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

0
ответ дан 8 February 2014 в 18:11

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

#!/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 и добавьте его в StartupApplications. Может быть способ составить список всех доступных браузеров, используя что-то вроде:

update-alternatives --list x-www-browser

Но я не знаю, как справиться с тем фактом, что некоторые исполняемые файлы не имеют имени, чем их процессы (например, [ 113] работает как chrome).

0
ответ дан 8 February 2014 в 18:11

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

Обзор

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

  • не полноэкранное
  • окно не в фокусе
  • окно больше не существует

Скрипт

#!/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
0
ответ дан 8 February 2014 в 18:11

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

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

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

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

  1. Нажмите Alt + F2 затем введите caffeine.

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

0
ответ дан 8 February 2014 в 18:11

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

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

0
ответ дан 8 February 2014 в 18:11

В Webupd8 была статья о Caffeine и 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
0
ответ дан 8 February 2014 в 18:11

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

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

Я полностью понял эту идею из комикса xkcd: путь. http://xkcd.com/196/

0
ответ дан 8 February 2014 в 18:11

На GitHub есть небольшой симпатичный скрипт с именем 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

Не забудьте дать ему права на выполнение сценария, т.е.

chmod +x lightsOn.sh
0
ответ дан 8 February 2014 в 18:11

РЕДАКТИРОВАТЬ

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


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

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

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

caffeine -p &

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

Caffeine Preferences

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

0
ответ дан 8 February 2014 в 18:11

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

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

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

Отключить заставку gnome, когда YouTube использует Flash player

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

  • 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. Поиск в Тире для Запуск приложений ], откройте его и нажмите Добавить .
  2. Под именем «YouTube Monitor» или что-то, что вы узнаете.
  3. Под командой введите «/home/$USER/bin/gnome_screensaver_off.sh» (измените $ USER на свое имя пользователя).
  4. Под комментарием (если хотите) введите краткое описание (например, «Останавливает выключение экрана, когда проигрыватель Flash запущен в браузере»).

Отключить заставку гнома, когда YouTube использует HTML5 player

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

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

0
ответ дан 8 February 2014 в 18:11

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

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

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

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

sudo apt-get install xdotool
0
ответ дан 8 February 2014 в 18:11

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

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

0
ответ дан 8 February 2014 в 18:11

Другие вопросы по тегам:

Похожие вопросы: