Когда я смотрю видео онлайн, экран выключается через несколько минут

на некоторых сайтах, когда я смотрю фильм в браузере и не касаюсь компьютера, экран выключается. На других сайтах, таких как Youtube, у меня нет такой проблемы. Я пытался использовать кофеин, но мне не нравится идея вручную включать и отключать его каждый раз, когда я смотрю видео. Я также пробовал другие методы, которые я нашел в интернете, но ничего не получалось. какие-либо предложения? Я использую Chrome и запускаю Ubuntu 16.04.

5
задан 28 May 2016 в 16:28

2 ответа

ОБНОВЛЕНИЕ 23.08.2017: Измененный сценарий к тому, который не отправляет нажатия клавиш, но отключает dpms и экранная заставка временно, в то время как видео играет полный экран.

Это только работает с приложениями, выполняющими полный экран, не максимизируемый.


Первая установка xdotool:

sudo apt install xdotool

затем я создал a scripts папка в моей домашней папке, что я мог бросить любые сценарии, в которые я хотел сохранить:

mkdir -p ~/scripts

затем я создал названный файл check_full.bsh в моем ~/scripts папка и добавила следующее содержание к нему:

Так как моя экранная заставка установлена в течение 20 минут, я установил таймер автоматического отключения в сценарии к 10 минутам (600 секунд). Можно изменить это на основе настроек экранной заставки.

#!/bin/bash

#Get DPMS settings
dpms_set=$(xset -q | grep -i "dpms is" | awk '{print $NF}')

#Get screensaver type and command
scrnsvr=$(ps -ef | grep screensav | grep -v grep | awk '{print $8}')
scrnsvrcmd=$(ps -ef | grep screensav | grep -v grep | awk '{print substr($0,index($0,$8))}')

#Sleep Timer in seconds.
SL=600

while true;
do
result=()
#Get all window geometries
all=($(xdotool search --name - | while read win; do xdotool getwindowgeometry $win | grep Geometry | awk '{print $2}'; done))

#Get all screen resolutions detected and build array.
SCREENS=($(xrandr | grep \* | awk '{print $1}'))

SCRN=" ${SCREENS[*]} "

#Get result of all windows and match

for item in ${all[@]}; do if [[ $SCRN =~ " $item " ]] ; then result+=($item); fi; done

#If a result exists disable power management and screensaver
if [[ ${result[@]} ]]; then
    ps -ef | grep $scrnsvr | grep -v grep >/dev/null
    if [[ $? == 0 ]]; then 
    kill $(ps -ef | grep $scrnsvr | grep -v grep | awk '{print $2}')
    fi
    if [[ $dpms_set == "Enabled" ]];then
    xset -dpms
    fi
else    
    ps -ef | grep $scrnsvr | grep -v grep >/dev/null
    if [[ $? == 1 ]]; then
    ${scrnsvrcmd} &
    fi
    if [[ $dpms_set != "Disabled" ]];then
        xset dpms
        fi
fi
result=()
sleep $SL
done

сделайте исполняемый файл сценария:

chmod +x ~/scripts/check_full.bsh

По некоторым причинам задание крона не выполнило бы это правильно. Таким образом, я добавил запись в свой запуск для вызова этого сценария. В ~/.config/autostart/ папка, я создал названный файл Check_Full.desktop со следующим содержанием:

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

[Desktop Entry]
Type=Application
Name=Check_Full
Comment=Prevent screensaver from activating when full screen video is playing
Exec=bash -c 'sleep 5 && /home/<username>/scripts/check_full.bsh'

изменение выше Исполнительной строки для соответствия домашней папке.

Установите верные полномочия на файл:

chmod 664 ~/.config/autostart/Check_full.desktop

После того, чтобы выходить из системы и въезжают задним ходом, check_full.bsh теперь выполняет и проверяет каждые 10 минут, является ли активное приложение полным экраном. В противном случае экранная заставка / блокирует экранный запуск в нормальные времена.


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

6
ответ дан 29 May 2016 в 02:28

YouTube не имеет той проблемы, потому что это использует плеер HTML5. Сайты, с которыми у Вас есть проблема, используют Flash player вместо этого. Это ошибка в Adobe Flashplayer , который, короче говоря, является, что это никогда не уведомляет WM, что столкнулось с полным экраном. Вы, возможно, услышали хотя, что Adobe Flash является ошибочным приложением в целом, таким образом, одно обходное решение должно отключить ее и использовать только сайты с видео HTML5.

, Поскольку Вы упомянули кофеин, Вы, вероятно, уже искали решение. Другая вещь, которую Вы могли сделать, к , отключают В «питание savingВ» полностью , т.е. вынудить экран никогда не выключить.

5
ответ дан 29 May 2016 в 02:28

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

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