Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Потухание монитора во время просмотра видео  (Прочитано 12065 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Temporel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Виват.
На ПК стоит Kubuntu 14.04(под KDE 4.13.3)[если я правильно понимаю]
Возникает следующая проблема: при просмотре видео(используя браузер и flash/html5) правила энергосбережения не игнорируются, и монитор потухает.
Подскажите пожалуйста как исправить такую штуку.  :-[

Спассибо.

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2207
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #1 : 06 Сентября 2014, 18:48:16 »
параметры системы > управление питанием > энергосбережение > энергосбережение монитора (снять галочку) > применить

Оффлайн hitomy

  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #2 : 06 Сентября 2014, 18:48:35 »
оключить "Выключение экрана при бездействии"

Оффлайн Temporel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #3 : 06 Сентября 2014, 19:00:48 »
Спасибо, но тут вот какое дело... Как настроить правила энергосбережения/отключение монитора и.т.д. я нашел в настройках. Меня интересует как заставить систему игнорировать эти правила при просмотре видео? Пока конечно можно выключать монитор ручками... но хотелось бы программное решение.  :-\ :) Может есть некая волшебная тулза?

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2207
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #4 : 06 Сентября 2014, 19:22:58 »
есть caffeine, но не знаю как он поведет себя в kde.

Оффлайн А_л_е_к_с_е_й

  • Активист
  • *
  • Сообщений: 590
  • Kubuntu 15.04 x64 KDE 5.2.1 Qt 5.4.0
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #5 : 06 Сентября 2014, 19:33:45 »
есть caffeine, но не знаю как он поведет себя в kde.
нормально ведёт себя, в соответствии со своими функциями, пользоваться можно

Оффлайн Temporel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #6 : 06 Сентября 2014, 19:56:10 »
Утилита по описанию понравилась.
Попытался ее поставить. После перезагрузки GUI для нее не заметил. Вот что выдало в терминале:
~$ caffeine info
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2135, in _find_spec
AttributeError: 'DynamicImporter' object has no attribute 'find_spec'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/caffeine", line 23, in <module>
    from gi.repository import GObject, Gtk
  File "/usr/lib/python3/dist-packages/gi/importer.py", line 53, in find_module
    'introspection typelib not found' % namespace)
ImportError: cannot import name Gtk, introspection typelib not found

Как-то странно.  :(


Пользователь решил продолжить мысль [time]06 Сентябрь 2014, 20:15:47[/time]:
Так вроде бы поставил.
~$ caffeine
<class 'Xlib.protocol.request.QueryExtension'>
Тут нашлось решение: http://kubuntu.ru/node/9288
Там же узнал что GUI для этого чуда отменили... Попытаюсь настроить виа терминал.(если тулза таки встала)

Пользователь решил продолжить мысль 06 Сентября 2014, 20:43:03:
Сплошное расстройство.  :(
Цитировать
The latest Caffeine version (2.7.x), released back in May, no longer comes with an Ubuntu AppIndicator so you can't manually toggle it on/off any more, feature which was considered pretty important by many of its users. If you're one of them, you can now use Caffeine Plus, a Caffeine 2.7 fork which restores the Ubuntu AppIndicator icon, allowing you to manually toggle it on/off.
caffeine -V
caffeine 2.7.2

Да еще и не определяет оно нифига когда фулскрин юзаю. Тестировал уже на нескольких преложеньках. Монитор спокойно гаснет. Может кто знает в чем проблема?
« Последнее редактирование: 06 Сентября 2014, 20:43:03 от Temporel »

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #7 : 08 Сентября 2014, 17:44:50 »
Включён ли у вас DPMS (Display Power Management Signaling) или нет. Проверить можно с помощью следующей команды:

xset -q

Если DPMS включён, то будет следующий вывод:

DPMS (Energy Star):
  Standby: 0    Suspend: 0    Off: 0
  DPMS is Enabled
  Monitor is On

Отключить режим энергосбережения монитора
xset -dpms
или
xset s off
или
xset dpms 0 0 0
1 команда отрубает dpms.Тогда выключаться не будет совсем.
Добавить в автозапуск, или rc.local
Отключение вручную
xset dpms force off


Оффлайн Temporel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #8 : 09 Сентября 2014, 16:38:10 »
Прошу прощения за то что долго не отвечал(не было возможности)

Цитировать
Включён ли у вас DPMS (Display Power Management Signaling) или нет.
Да, включен. Но мне бы хотелось оставить режим энергосбережения монитора. Да и выключить его можно через GUI(как уже было указано выше)

Цитировать
Да еще и не определяет оно нифига когда фулскрин юзаю.
Вообщем переустановил его(caffeine) несколько раз -- не работает новая версия. Нашел в сети версию 2.4 в агрегатном состоянии deb пакета. Ремувнул репозиторий и поставил старую версию. 2 часа - полет нормальный.(хотя и реагирует это чудо не на фулскрин, а на запущенные процессы).
"Костыль" -- тоже решение  ;) Так что вопрос можно считать закрытым. Всем огромное спасибо за сапорт.

Оффлайн Axel86

  • Участник
  • *
  • Сообщений: 190
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #9 : 18 Октября 2014, 13:47:47 »
kaffeinety
В параметрах плагина указываются имена процессов (программ), при которых выключение экрана не будут срабатывать.

Оффлайн eugenez

  • Старожил
  • *
  • Сообщений: 1500
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #10 : 20 Октября 2014, 05:48:53 »
Спасибо за наводку, поставил, пробую. Кино смотрю с vlc, щёлкать мышкой достало :( Сейчас испытаем.

Пользователь решил продолжить мысль 20 Октября 2014, 22:29:38:
запуск скринсейвера при проигрывании видео не блокируется. выношу :(
« Последнее редактирование: 20 Октября 2014, 22:29:38 от eugenez »
Manjaro+KDE | Mint+Cinnamon | Debian+cli | Kubuntu | Endian | OPNSense | Proxmox VE | Astra Linux

Оффлайн eugenez

  • Старожил
  • *
  • Сообщений: 1500
    • Просмотр профиля
Re: Потухание монитора во время просмотра видео
« Ответ #11 : 23 Февраля 2015, 07:25:44 »
Решение нашёл. Случайно. Где не помню, но в файле ссылка на исходники есть.

Создаём файл lightsOn.sh, делаем его исполнимым, наполняем таким вот содержимым:

#!/bin/bash
# lightsOn.sh https://github.com/iye/lightsOn/blob/master/lightsOn.sh

# Copyright (c) 2013 iye.cba at gmail com
# url: https://github.com/iye/lightsOn
# This script is licensed under GNU GPL version 2.0 or above

# Description: Bash script that prevents the screensaver and display power
# management (DPMS) to be activated when you are watching Flash Videos
# fullscreen on Firefox and Chromium.
# Can detect mplayer, minitube, and VLC when they are fullscreen too.
# Also, screensaver can be prevented when certain specified programs are running.
# lightsOn.sh needs xscreensaver or kscreensaver to work.


# 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, Minitube
# 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.
#
# An optional array variable exists here to add the names of programs that will delay the screensaver if they're running.
# This can be useful if you want to maintain a view of the program from a distance, like a music playlist for DJing,
# or if the screensaver eats up CPU that chops into any background processes you have running,
# such as realtime music programs like Ardour in MIDI keyboard mode.
# If you use this feature, make sure you use the name of the binary of the program (which may exist, for instance, in /usr/bin).


# Modify these variables if you want this script to detect if Mplayer,
# VLC, Minitube, or Firefox or Chromium Flash Video are Fullscreen and disable
# xscreensaver/kscreensaver and PowerManagement.
mplayer_detection=1
vlc_detection=1
firefox_flash_detection=0
chromium_flash_detection=1
minitube_detection=0

# Names of programs which, when running, you wish to delay the screensaver.
delay_progs=('vlc' 'kaffeine' 'mplayer' 'tano' 'kodi') # For example ('ardour2' 'gmpc')


# YOU SHOULD NOT NEED TO MODIFY ANYTHING BELOW THIS LINE


# enumerate all the attached screens
displays=""
while read id
do
    displays="$displays $id"
done < <(xvinfo | sed -n 's/^screen #\([0-9]\+\)$/\1/p')


# Detect screensaver been used (xscreensaver, kscreensaver or none)
screensaver=`pgrep -l xscreensaver | grep -wc xscreensaver`
if [ $screensaver -ge 1 ]; then
    screensaver=xscreensaver
else
    screensaver=`pgrep -l kscreensaver | grep -wc kscreensaver`
    if [ $screensaver -ge 1 ]; then
        screensaver=kscreensaver
    else
        screensaver=None
        echo "No screensaver detected"
    fi
fi

checkDelayProgs()
{
    for prog in "${delay_progs[@]}"; do
        if [ `pgrep -lfc "$prog"` -ge 1 ]; then
            echo "Delaying the screensaver because a program on the delay list, \"$prog\", is running..."
            delayScreensaver
            break
        fi
    done
}

checkFullscreen()
{
    # loop through every display looking for a fullscreen window
    for display in $displays
    do
        #get id of active window and clean output
        activ_win_id=`DISPLAY=:0.${display} xprop -root _NET_ACTIVE_WINDOW`
        #activ_win_id=${activ_win_id#*# } #gives error if xprop returns extra ", 0x0" (happens on some distros)
        activ_win_id=${activ_win_id:40:9}

        # Skip invalid window ids (commented as I could not reproduce a case
        # where invalid id was returned, plus if id invalid
        # isActivWinFullscreen will fail anyway.)
        #if [ "$activ_win_id" = "0x0" ]; then
        #     continue
        #fi

        # Check if Active Window (the foremost window) is in fullscreen state
        isActivWinFullscreen=`DISPLAY=:0.${display} xprop -id $activ_win_id | grep _NET_WM_STATE_FULLSCREEN`
            if [[ "$isActivWinFullscreen" = *NET_WM_STATE_FULLSCREEN* ]];then
                isAppRunning
                var=$?
                if [[ $var -eq 1 ]];then
                    delayScreensaver
                fi
            fi
    done
}





# check if active windows is mplayer, vlc or firefox
#TODO only window name in the variable activ_win_id, not whole line.
#Then change IFs to detect more specifically the apps "<vlc>" and if process name exist

isAppRunning()
{
    #Get title of active window
    activ_win_title=`xprop -id $activ_win_id | grep "WM_CLASS(STRING)"`   # I used WM_NAME(STRING) before, WM_CLASS more accurate.



    # Check if user want to detect Video fullscreen on Firefox, modify variable firefox_flash_detection if you dont want Firefox detection
    if [ $firefox_flash_detection == 1 ];then
        if [[ "$activ_win_title" = *unknown* || "$activ_win_title" = *plugin-container* ]];then
        # Check if plugin-container process is running
            flash_process=`pgrep -l plugin-containe | grep -wc plugin-containe`
            #(why was I using this line avobe? delete if pgrep -lc works ok)
            #flash_process=`pgrep -lc plugin-containe`
            if [[ $flash_process -ge 1 ]];then
                return 1
            fi
        fi
    fi


    # Check if user want to detect Video fullscreen on Chromium, modify variable chromium_flash_detection if you dont want Chromium detection
    if [ $chromium_flash_detection == 1 ];then
        if [[ "$activ_win_title" = *exe* ]];then
        # Check if Chromium/Chrome Flash process is running
            flash_process=`pgrep -lfc ".*((c|C)hrome|chromium).*flashp.*"`
            if [[ $flash_process -ge 1 ]];then
                return 1
            fi
        fi
    fi


    #check if user want to detect mplayer fullscreen, modify variable mplayer_detection
    if [ $mplayer_detection == 1 ];then
        if [[ "$activ_win_title" = *mplayer* || "$activ_win_title" = *MPlayer* ]];then
            #check if mplayer is running.
            #mplayer_process=`pgrep -l mplayer | grep -wc mplayer`
            mplayer_process=`pgrep -lc mplayer`
            if [ $mplayer_process -ge 1 ]; then
                return 1
            fi
        fi
    fi


    # Check if user want to detect vlc fullscreen, modify variable vlc_detection
    if [ $vlc_detection == 1 ];then
        if [[ "$activ_win_title" = *vlc* ]];then
            #check if vlc is running.
            #vlc_process=`pgrep -l vlc | grep -wc vlc`
            vlc_process=`pgrep -lc vlc`
            if [ $vlc_process -ge 1 ]; then
                return 1
            fi
        fi
    fi

    # Check if user want to detect minitube fullscreen, modify variable minitube_detection
    if [ $minitube_detection == 1 ];then
        if [[ "$activ_win_title" = *minitube* ]];then
            #check if minitube is running.
            #minitube_process=`pgrep -l minitube | grep -wc minitube`
            minitube_process=`pgrep -lc minitube`
            if [ $minitube_process -ge 1 ]; then
                return 1
            fi
        fi
    fi

return 0
}


delayScreensaver()
{

    # reset inactivity time counter so screensaver is not started
    if [ "$screensaver" == "xscreensaver" ]; then
        xscreensaver-command -deactivate > /dev/null
    elif [ "$screensaver" == "kscreensaver" ]; then
        qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity > /dev/null
    fi


    #Check if DPMS is on. If it is, deactivate and reactivate again. If it is not, do nothing.
    dpmsStatus=`xset -q | grep -ce 'DPMS is Enabled'`
    if [ $dpmsStatus == 1 ];then
            xset -dpms
            xset dpms
    fi

}



delay=$1


# If argument empty, use 50 seconds as default.
if [ -z "$1" ];then
    delay=50
fi


# If argument is not integer quit.
if [[ $1 = *[^0-9]* ]]; then
    echo "The Argument \"$1\" is not valid, not an integer"
    echo "Please use the time in seconds you want the checks to repeat."
    echo "You want it to be ~10 seconds less than the time it takes your screensaver or DPMS to activate"
    exit 1
fi


while true
do
    checkDelayProgs
    checkFullscreen
    sleep $delay
done


exit 0

Все пользовательские настройки - в начале файла:

# Modify these variables if you want this script to detect if Mplayer,
# VLC, Minitube, or Firefox or Chromium Flash Video are Fullscreen and disable
# xscreensaver/kscreensaver and PowerManagement.
mplayer_detection=1
vlc_detection=1
firefox_flash_detection=0
chromium_flash_detection=1
minitube_detection=0

# Names of programs which, when running, you wish to delay the screensaver.
delay_progs=('vlc' 'kaffeine' 'mplayer' 'tano' 'kodi') # For example ('ardour2' 'gmpc')

Запускаем в стиле "./lightsOn.sh 120 &" из автозагрузки однократно, скрипт будет висеть в памяти и каждые (в данном случае) 120 с проверять, не запущены ли отслеживаемые проигрыватели, и если да, будет пресекать работу скринсейвера.
Manjaro+KDE | Mint+Cinnamon | Debian+cli | Kubuntu | Endian | OPNSense | Proxmox VE | Astra Linux

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.