Evite que la pantalla se apague cuando vea un video en XBMC [cerrado]

8

En 12.04, la pantalla nunca se fue a dormir mientras miraba videos en XBMC. Sin embargo, después de actualizar a 12.10 y no cambiar la configuración, lo hace.

¿Hay alguna forma de evitar que la pantalla se apague automáticamente mientras se reproduce un video en XBMC, sin inhabilitar la pantalla en otras ocasiones?

Idealmente, ¿hay una configuración específica de XBMC para esto? ¿Era esta una característica de XBMC que ahora está rota de alguna manera en 12.10 o ha cambiado debido a algún otro cambio que no sea XBMC dentro de Ubuntu?

thomasrutter
fuente
1
Debe haber una configuración en XBMC en Ahorro de energía> Desactivar inactivo o algo por el estilo. ¿Has intentado eso?
Ye Lin Aung el
El problema ocurre mientras miras una película, que no está inactiva. No me importa (y en realidad me gusta) que apague la pantalla mientras está inactivo.
thomasrutter
¿Qué versiones estás usando? ¿Tiene alguna configuración especial de energía en ubuntu? Estoy ejecutando una instalación 12.10 nueva con el XBMC (normal, no inestable) del PPA, y esto no me afecta, por lo que no parece ser algo predeterminado // no afecta a todas las personas . (sí, lo sé, eso no te ayuda mucho, pero aún así podría ayudar saber que no es un error siempre presente ... no sé :))
Nanne
Estoy usando la versión de Ubuntu (12.10, actualizada recientemente desde 12.04), no de un PPA. No hay configuraciones especiales de energía, solo el valor predeterminado que apaga el monitor después de un período de inactividad.
thomasrutter
Gracias por el esfuerzo que pusiste en esa respuesta Aditya, pero creo que prefiero probar las dos alternativas propuestas por la respuesta de Nanne primero.
thomasrutter

Respuestas:

7

Esto parece ser un error en el paquete XBMC para ubuntu

No estoy seguro de qué versión ha instalado, pero la versión del PPA * no parece tenerla en mi sistema. Esto puede deberse a que tengo diferentes configuraciones en ubuntu, por supuesto, por lo que su manejo puede variar.

Si no lo hace, puede intentar usar XBMC como sesión (en su pantalla de inicio de sesión, presione el logotipo de ubuntu junto a su nombre y seleccione XBMC. No obtendrá la unidad, sino solo XMBC de pantalla completa). La configuración de la unidad no estará allí, por lo que es posible que tenga suerte de no tener un protector de pantalla. (Si tiene configurado el inicio de sesión automático, debe presionar cerrar sesión para obtener la pantalla de inicio de sesión)

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

Nanne
fuente
Gracias por el enlace de error, ese parece ser el motivo de mi problema, ya que estoy usando el paquete xbmc de Ubuntu. Intentaré usar XBMC como sesión cuando esté en casa y ver si eso lo soluciona.
thomasrutter
11

Podemos crear un script de shell que simule el movimiento del mouse en un intervalo específico (solo cuando XBMC se está ejecutando) y evitará que la pantalla se apague.

Sigue los pasos:

  1. Instale las herramientas necesarias:

    Necesitaríamos xdotoolInstalar xdotool para hacer este trabajo por nosotros. Instálelo ejecutando el siguiente comando en la terminal:

    sudo apt-get install xdotool
    
  2. La secuencia de comandos:

    Guarde el siguiente script en cualquier lugar de su PC. Puede modificar de sleep_periodacuerdo a sus necesidades, lo configuré en 60 segundos. El script verifica si hay un proceso llamado xbmc.binejecución; y si encuentra uno, se repite para simular el movimiento del mouse mientras el proceso está activo. De lo contrario, verifica el proceso nuevamente después del intervalo especificado.

    #!/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. Haga que este script sea ejecutable:

    Haga clic derecho en el archivo que acaba de guardar >> Seleccionar Properties>> En la Permissionpestaña, marque la casilla de verificación Execute.

    hacer que el script sea ejecutable

  4. Ejecute este script automáticamente en cada inicio:

    Podemos hacer esto con la ayuda de las aplicaciones de inicio . Abra su Tablero presionando Entery busque Startup Applications>> En la ventana de aplicaciones de inicio, haga clic en Add>> Luego, en el cuadro de diálogo que aparece, complete la información:

    Nombre: opcional, como quieras nombrar esto.

    Comando: ruta al archivo donde lo guardó.

    Comentario: opcional, si desea agregar algunos.

    preferencias de aplicaciones de inicio

  5. Reinicie su sistema y disfrute de sus películas con XBMC.


Cómo usarlo con otras aplicaciones

Este fue un ejemplo para XBMC (Nombre del proceso xbmc.bin). Sin embargo, también se puede usar para cualquier otro proceso de su elección simplemente reemplazando xbmc.binen el Script mencionado en el Paso 2 con el nombre del proceso que desea. Encuentra las siguientes líneas en el script anterior:

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

Y reemplace xbmc.binen ambas líneas 2 y 3 con el nombre del proceso que elija.


Cómo encontrar el nombre del proceso

  • Con GUI (GNOME):

    Podemos usar System Monitorpara encontrar el nombre del proceso. Presione Superpara abrir Dash y busque "System Monitor" para iniciarlo. En la Processespestaña, podemos encontrar el nombre del proceso como la primera columna.

    Monitor del sistema

  • Con terminal:

    Podemos ejecutar toppara enumerar todos los procesos en ejecución. La última columna llamada Commandnos da el nombre del Proceso (sin embargo, está limitado a los primeros 15 caracteres).

    Terminal <code> top </code> comando

Aquí podemos ver que Firefox se llama simplemente como firefox. Entonces, si queremos este comportamiento cuando Firefox se está ejecutando; reemplazaríamos xbmc.binen el script con firefoxy todo lo demás funcionaría bien.


Reconocimiento: había encontrado el guión aquí . Sin embargo, he realizado las modificaciones necesarias para hacerlo compacto y satisfacer las demandas de la pregunta.

Aditya
fuente
¿No sería eso un último, último, final, nada más funciona sin embargo?
Nanne
1
@Nanne: No ... ¿Por qué sería así? el script de shell no acaparará los recursos de su sistema; y no simularía el movimiento del mouse cuando XMBC no se está ejecutando; así como no tendrá que recordar ejecutar este script cada vez ... Aunque una configuración de preferencias en XMBC obviamente sería la mejor solución; Como no uso XMBC, no sé si existe esa configuración. He probado este script de Shell con Firefox y funciona según lo esperado por el OP.
Aditya
El problema es que el sistema no debería irse a dormir mientras se reproduce el video (y para mí no). Esto es claramente una solución alternativa (incluso podría llamarlo un truco) y no estoy diciendo que sea malo, lo apoya para esta gran publicación, pero aún así primero buscaría una solución real (como usted dice, usted no saber acerca de XBMC, por lo que puede haber uno real) antes de intentar esto. Una vez más, no hay nada malo en tu publicación real, pero ¿no estás de acuerdo en que hacer que el mouse se mueva es algo que debes probar después de que la configuración "normal" falle?
Nanne
1
@Nanne Como dije, una configuración de preferencias dentro de XMBC para controlarla obviamente sería la mejor solución. Sin embargo, es prudente para mí esperar que el OP haya hecho su tarea. Además, si dicha configuración estuviera disponible dentro de XMBC, creo que alguien habría aparecido y publicado su respuesta. La pregunta tiene 7 días a partir de ahora: no creo que esté allí en XMBC. De todos modos, mientras usas XMBC, ¿puedes verificar si se puede hacer? :)
Aditya
3
No llamaría a esto un truco. La gente usa scripts de shell para hacer estas cosas todo el tiempo. Impresionante respuesta +1.
Seth
8

Una solución muy simple es la cafeína . La cafeína es una 'aplicación de barra de estado capaz de prevenir temporalmente la activación del protector de pantalla y el modo de ahorro de energía "en reposo".

Habilitarlo es tan fácil como hacer clic en el indicador de la barra de estado, pero también puede configurarlo para que deshabilite automáticamente el protector de pantalla cuando inicie xbmc. Vea la captura de pantalla a continuación

ingrese la descripción de la imagen aquí

Si está utilizando Gnome, puede instalar la extensión de cafeína gnome . Si no, para Ubuntu hasta 15.04 (vívido) puede instalar cafeína desde el ppad de launchpad:

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

desde 15.10 en adelante puede instalar sin ppa

sudo apt install caffeine

¡Disfrutar!

Gerhard Burger
fuente
Esto parece una buena herramienta.
thomasrutter
@PeterMortensen Funciona, incluso el 16.04, esa respuesta está desactualizada. Sin embargo, gracias por el aviso, porque mi respuesta también podría usar una actualización;) Agregué las instrucciones de instalación para las versiones más nuevas de Ubuntu.
Gerhard Burger
0

Los uso en ~ / 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

por supuesto, puedes hacer un ícono para ejecutarlos, pero tampoco uso XBMC

jamon
fuente
Estoy usando Gnome, así que no creo que esté usando xscreensaver. Gracias por tu respuesta.
thomasrutter
0

Todas estas soluciones desactivan el protector de pantalla cada vez que se ejecuta xbmc, no solo cuando se reproducen videos. Como tiene un servidor UPnP incorporado, lo dejo en funcionamiento las 24 horas del día, los 7 días de la semana, pero solo quiero desactivar el protector de pantalla cuando se reproduce un video localmente.

Esto es lo que se me ocurrió: active la compatibilidad con http y JSON en XBMC. Luego, realice una solicitud para averiguar si el jugador está activo o no. Si es así, emita un comando xscreensaver -disable (puede ajustar esto según su protector de pantalla). Si no, no hagas nada. Verificar cada 50 segundos es suficiente para mí.

Código de Python aquí: http://sumnerhayes.com/software/

SumnerHayes
fuente
Esta pregunta era sobre el XBMC en Ubuntu 12.10 que tenía un error en el que no desactivaba el protector de pantalla mientras se reproducía un video. Este error no existe en el XBMC en versiones más actualizadas de Ubuntu, por lo que no creo que sea necesaria su solución. XBMC desactiva el protector de pantalla mientras reproduce video, como debería.
thomasrutter