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

8

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

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

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

thomasrutter
источник
1
В XBMC должен быть параметр «Энергосбережение»> «Выключить на холостом ходу» или что-то в этом роде. Вы пробовали это?
Е. Лин Аунг
Проблема возникает во время просмотра фильма, который не простаивает. Я не против (и на самом деле нравится) это выключение экрана во время простоя.
Томасруттер
Какие версии вы используете? У вас есть какие-то специальные настройки питания в Ubuntu? Я запускаю свежую установку 12.10 с (нормальным, а не нестабильным) XBMC из PPA, и на меня это не влияет, так что, похоже, это не вещь по умолчанию // не влияет на всех людей , (да, я знаю, это не очень вам помогает, но все же это может помочь узнать, что это не постоянная ошибка .. Я не знаю :))
Nanne
Я использую версию из Ubuntu (12.10, недавно обновленную с 12.04), а не из PPA. Никаких специальных настроек питания, только настройки по умолчанию, которые выключают монитор после периода бездействия.
Томасруттер
Спасибо за усилия, которые вы приложили к этому ответу, Адитья, но я думаю, что лучше сначала попробовать две альтернативы, предложенные ответом Нанн.
Томасруттер

Ответы:

7

Это похоже на ошибку в пакете XBMC для Ubuntu

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

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

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

Nanne
источник
Спасибо за ссылку на ошибку, которая выглядит как причина моей проблемы, поскольку я использую пакет xbmc из Ubuntu. Я попытаюсь использовать XBMC в качестве сеанса, когда буду дома, и посмотрю, исправит ли это это.
Томасруттер
11

Мы можем создать сценарий оболочки, который будет имитировать движение мыши с заданным интервалом (только во время работы 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. Сделайте этот скрипт исполняемым:

    Щелкните правой кнопкой мыши файл, который вы только что сохранили. >> Выберите Properties>>. На Permissionвкладке установите флажок Execute.

    сделать скрипт исполняемым

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

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

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

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

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

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

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


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

Это был пример для XBMC (имя процесса 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 и запросить «Системный монитор», чтобы запустить его. На Processesвкладке мы можем найти имя процесса в качестве первого столбца.

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

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

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

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

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


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

Адитья
источник
Разве это не будет последним, последним, последним, ничем иным, как действующим курортом?
Нанн
1
@Nanne: нет ... с чего бы это так; скрипт оболочки не потребляет ресурсы вашей системы; и он не будет имитировать движение мыши, когда XMBC не работает; а также вам не нужно будет постоянно запускать этот сценарий ... Хотя настройка предпочтений в XMBC, очевидно, будет лучшим решением; так как я не использую XMBC - я не знаю, существует ли такая настройка. Я протестировал этот сценарий Shell с Firefox, и он работает, как и ожидалось OP.
Адитья
Проблема в том, что система не должна засыпать во время воспроизведения видео (а для меня это не так). Это явно обходной путь (вы можете даже назвать это хаком), и я не говорю, что это плохо, подпирает вас за этот замечательный пост, но все же сначала я бы искал реальное решение (как вы говорите, вы этого не делаете знать о XBMC, так что может быть фактическим), прежде чем попробовать это. Опять же, ничего плохого в вашем фактическом посте, но вы не согласны с тем, что перемещение мыши - это то, что вы должны попробовать после сбоя «обычных» настроек?
Нанн
1
@Nanne Как я уже сказал, настройка предпочтений в XMBC для управления им, очевидно, будет лучшим решением. Тем не менее, для меня благоразумно ожидать, что ОП сделал свою домашнюю работу. Более того, если бы такая настройка была доступна в XMBC, я думаю, что кто-то подошел бы и опубликовал свой ответ. Сейчас вопрос 7 дней - я не думаю, что он есть в XMBC. В любом случае, поскольку вы используете XMBC, пожалуйста, проверьте, можно ли это сделать :)
Aditya
3
Я бы не назвал это хаком. Люди используют сценарии оболочки, чтобы делать все это постоянно. Отличный ответ +1.
Сет
8

Очень простое решение - кофеин . Кофеин - это «приложение в строке состояния, способное временно предотвратить активацию как заставки, так и режима энергосбережения в« спящем »режиме».

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

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

Если вы используете Gnome, вы можете установить расширение кофеинового гнома . Если нет, то для 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

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

Герхард Бургер
источник
Это похоже на хороший инструмент.
Томасруттер
@PeterMortensen Это работает, даже 16.04, этот ответ устарел. Спасибо за заголовок, хотя, потому что мой ответ мог также использовать обновление;) Я добавил инструкции по установке для более новых версий Ubuntu.
Герхард Бургер
0

Я использую их в ~ / 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 либо

хамон
источник
Я использую Gnome, поэтому я не думаю, что я использую xscreensaver. Спасибо за Ваш ответ.
Томасруттер
0

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

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

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

SumnerHayes
источник
Этот вопрос был о XBMC в Ubuntu 12.10, в котором была ошибка, из-за которой он не отключал заставку во время воспроизведения видео. Эта ошибка не существует в XBMC в более современных версиях Ubuntu, поэтому я не думаю, что ваш обходной путь необходим. XBMC отключает заставку во время воспроизведения видео, как и должно быть.
Томасруттер