Запретить выключение экрана при просмотре видео в XBMC

В 12.04 экран никогда не заснул во время просмотра видео в XBMC. Однако после обновления до 12.10 и изменения настроек он не делает.

Есть ли способ предотвратить автоматическое отключение экрана во время воспроизведения видео в XBMC, не отключая экран от выключения в другое время?

В идеале, существует ли для этого конкретная настройка XBMC? Была ли эта особенность XBMC, которая теперь как-то сломалась в 12.10, или это изменилось из-за некоторых изменений, не связанных с XBMC в Ubuntu?

Кажется, это ошибка в пакете XBMC для ubuntu

Я не уверен, какую версию вы установили, но версия из PPA *, похоже, не работает в моей системе. Это может быть из-за того, что у меня есть разные настройки в ubuntu, конечно, так что ваш milleage может отличаться.

Если вы этого не сделаете, вы можете попробовать использовать XBMC в качестве сеанса (на экране входа в систему, нажмите логотип ubuntu рядом с вашим именем и выберите XBMC. Вы не получите единство, а просто полноэкранный XMBC). Настройки для единства не будут там, поэтому вам может повезти, если у вас нет заставки. (Если у вас установлен автозапуск, вам нужно нажать «Выход», чтобы получить экран входа в систему)

* https://launchpad.net/~team-xbmc/+archive/ppa

Мы можем создать сценарий оболочки, который будет имитировать движение мыши с заданным интервалом (только при запуске XBMC) и предотвращать выключение экрана.

Следуйте шагам:

  1. Установите необходимые инструменты:

    Нам понадобится xdotool Установить xdotool чтобы сделать эту работу для нас. Установите его, выполнив следующую команду в терминале:

    sudo apt-get install xdotool 
  2. Сценарий:

    Сохраните следующий сценарий в любом месте вашего ПК. Вы можете изменить sleep_period соответствии с вашими потребностями, я установил его на 60 секунд. Скрипт проверяет, существует ли процесс с именем xbmc.bin ; и если он находит один, то он петли, чтобы имитировать движение мыши, пока процесс активен. В противном случае проверяет процесс снова через указанный интервал.

     #!/usr/bin/env bash sleep_period=60s #seconds mouse_x=0 mouse_y=0 movement_px=2 mouse_x=$(xdotool getmouselocation 2>/dev/null | sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}') mouse_y=$(xdotool getmouselocation 2>/dev/null | sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}') while true; do if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do xdotool mousemove $((mouse_x+${movement_px})) $((mouse_y+${movement_px})) xdotool mousemove $((mouse_x-${movement_px})) $((mouse_y-${movement_px})) sleep ${sleep_period} done else sleep ${sleep_period} fi done 
  3. Сделайте этот скрипт исполняемым:

    Щелкните правой кнопкой мыши только что сохраненный файл >> Выберите « Свойства» >> На вкладке « Разрешение » установите флажок «Проверить» в « Выполнение» .

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

  4. Выполните этот скрипт автоматически при каждом запуске:

    Мы можем сделать это с помощью Startup Applications . Откройте Dash, нажав Enter и запрос для Startup Applications >> В окне «Приложения для Startup Applications нажмите « Добавить >>». Затем в появившемся диалоговом окне заполните следующую информацию:

    Имя: необязательно, что бы вы ни назвали.

    Команда: путь к файлу, в котором вы его сохранили.

    Комментарий: необязательно, если вы хотите добавить некоторые.

    настройки приложений для запуска

  5. Перезагрузите свою систему и наслаждайтесь фильмами с помощью XBMC.


Как использовать его с другими приложениями

Это было примером для XBMC (имя процесса xbmc.bin ). Тем не менее, он также может использоваться для любого другого процесса по вашему выбору, просто заменив xbmc.bin в xbmc.bin указанном на шаге 2, с именем процесса, который вы хотите. Найдите в приведенном выше скрипте следующие строки:

 while true; do if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do 

И замените xbmc.bin в обеих строках 2 и 3 с именем процесса по вашему выбору.


Как найти имя процесса

  • С GUI (GNOME):

    Мы можем использовать System Monitor чтобы найти название процесса. Нажмите Super, чтобы открыть Dash и запросить «Системный монитор», чтобы запустить его. На вкладке « Процессы» имя процесса можно найти в качестве первого столбца.

    Системный монитор

  • С терминалом:

    Мы можем запустить top чтобы отобразить все запущенные процессы. Последний столбец с именем Command дает нам имя процесса (однако он ограничен первыми 15 символами).

    Команда терминала <code> top </ code>

Здесь мы видим, что Firefox просто называется firefox . Итак, если мы хотим этого поведения, когда Firefox работает; мы заменили бы xbmc.bin в скрипте firefox и все остальное будет работать нормально.


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

Очень простым решением является кофеин . Кофеин – это приложение состояния, способное временно предотвратить активацию режима сохранения экрана и режима ожидания.

Включение этого так же просто, как щелчок индикатора строки состояния, но вы также можете настроить его таким образом, чтобы он автоматически отключил скринсейвер при запуске xbmc. См. Снимок экрана ниже.

введите описание изображения здесь

Если вы используете Gnome, вы можете установить расширение gnome caffeine . Если нет, для Ubuntu до 15.04 (яркий) вы можете установить кофеин из пусковой панели ppa:

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

с 15.10 и далее вы можете установить без ppa

 sudo apt install caffeine 

Наслаждайтесь!

Я использую их в ~ / bin /:

 #!/bin/bash # ssoff - disable screensaver and power mgmt pkill xscreensaver xset s 0 xset -dpms 

 #!/bin/bash # sson - activate screen and power mgmt xscreensaver > /dev/null 2>&1 & xset s 100 xset +dpms 

конечно, вы можете сделать значок для их запуска, но я не использую XBMC либо

Эти решения превращают экранную заставку во время работы xbmc, а не только при воспроизведении видео. Поскольку у него есть встроенный UPnP-сервер, я оставляю его 24/7, но я хочу отключить скринсейвер, когда видео воспроизводится локально.

Вот что я придумал: включите поддержку HTTP и JSON в XBMC. Затем цикл делает запрос, чтобы узнать, активен ли игрок или нет. Если это так, введите команду xscreensaver-command -disable (вы можете настроить ее для вашей заставки). Если нет, ничего не делайте. Проверять каждые 50 секунд для меня много.

Код Python здесь: http://sumnerhayes.com/software/