8 votes

Empêcher l'extinction de l'écran lors du visionnage d'une vidéo dans XBMC

Dans la version 12.04, l'écran ne se mettait jamais en veille lorsqu'il regardait des vidéos dans XBMC. Cependant, après la mise à niveau vers 12.10 et après n'avoir modifié aucun paramètre, il se met en veille.

Existe-t-il un moyen d'empêcher l'écran de s'éteindre automatiquement pendant la lecture d'une vidéo dans XBMC, sans empêcher l'écran de s'éteindre à d'autres moments ?

Idéalement, existe-t-il un paramètre spécifique à XBMC pour cela ? S'agit-il d'une fonctionnalité de XBMC qui n'est plus disponible dans la version 12.10 ou d'un changement dû à une autre modification non liée à XBMC dans Ubuntu ?

11voto

Aditya Points 12756

Nous pouvons créer un Shell Shell qui simulerait le mouvement de la souris à un intervalle spécifié (uniquement lorsque XBMC est en cours d'exécution) et empêcherait votre écran de s'éteindre.

Suivez les étapes :

  1. Installez les outils nécessaires :

    Nous aurions besoin xdotool Install xdotool pour faire ce travail pour nous. Installez-le en exécutant la commande suivante dans le terminal :

    sudo apt-get install xdotool
  2. Le script :

    Enregistrez le script suivant n'importe où sur votre PC. Vous pouvez modifier sleep_period Selon vos besoins, je l'ai fixé à 60 secondes. Le script vérifie s'il existe un processus appelé xbmc.bin et s'il en trouve un, il boucle pour simuler le mouvement de la souris pendant que le processus est actif. Sinon, il vérifie à nouveau le processus après l'intervalle spécifié.

    #!/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. Rendez ce script exécutable :

    Cliquez avec le bouton droit de la souris sur le fichier que vous venez d'enregistrer >> Sélectionnez Properties >> Dans le Permission mettez la marque de contrôle sur Execute .

    make the script executable

  4. Exécuter ce script automatiquement à chaque démarrage :

    Nous pouvons le faire avec l'aide de Applications de démarrage . Ouvrez votre Dash en appuyant sur Enter et demander Startup Applications >> Dans la fenêtre des applications de démarrage, cliquez sur Add >> Puis, dans la boîte de dialogue qui s'affiche, remplissez les informations :

    Nom : facultatif, quel que soit le nom que vous voulez lui donner.

    Commandement : le chemin d'accès au fichier où vous l'avez enregistré.

    Commentaire : facultatif, si vous souhaitez en ajouter.

    startup applications preferences

  5. Redémarrez votre système et profitez de vos films avec XBMC.


Comment l'utiliser avec d'autres applications

Il s'agit d'un exemple pour XBMC (Nom du processus xbmc.bin ). Cependant, il peut également être utilisé pour tout autre processus de votre choix en remplaçant simplement xbmc.bin dans le script mentionné à l'étape 2 avec le nom du processus que vous souhaitez. Trouvez les lignes suivantes dans le script mentionné ci-dessus :

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

Et remplacer xbmc.bin dans les deux lignes 2 et 3 avec le nom du processus de votre choix.


Comment trouver le nom du processus

  • Avec interface graphique (GNOME) :

    Nous pouvons utiliser System Monitor pour trouver le nom du processus. Appuyez sur Super pour ouvrir Dash et recherchez "System Monitor" pour le lancer. Dans le Processes Tab, nous pouvons trouver le nom du processus dans la première colonne.

    System Monitor

  • Avec terminal :

    Nous pouvons exécuter top pour lister tous les processus en cours. La dernière colonne appelée Command nous donne le nom du processus (il est toutefois limité aux 15 premiers caractères).

    Terminal <code>top</code> command

Ici nous pouvons voir que Firefox est juste nommé comme firefox . Donc, si nous voulons ce comportement lorsque Firefox est en cours d'exécution, nous remplacerons xbmc.bin dans le script avec firefox et tout le reste fonctionnerait très bien.


Remerciements : J'avais trouvé le script aquí . Cependant, j'ai apporté les modifications nécessaires pour le rendre compact et répondre aux exigences de la question.

8voto

Vrolijk Points 1

Une solution très simple est caféine . Caffeine est une "application de barre d'état capable d'empêcher temporairement l'activation de l'économiseur d'écran et du mode d'économie d'énergie "sommeil"".

Pour l'activer, il suffit de cliquer sur l'indicateur de la barre d'état, mais vous pouvez également le configurer de manière à ce qu'il désactive automatiquement l'économiseur d'écran lorsque vous démarrez xbmc. Voir la capture d'écran ci-dessous

enter image description here

Si vous utilisez Gnome, vous pouvez installer l'extension gnome caffeine . Sinon, pour Ubuntu jusqu'à 15.04 (vif), vous pouvez installer caffeine à partir du ppa launchpad :

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

à partir de 15.10, vous pouvez installer sans ppa

sudo apt install caffeine

Profitez-en !

7voto

leon Points 656

Cela semble être un bogue dans le paquet XBMC pour ubuntu

Je ne sais pas quelle version vous avez installée, mais la version du PPA* ne semble pas l'avoir sur mon système. Cela peut être parce que j'ai des paramètres différents dans ubuntu bien sûr, donc votre milleage peut varier.

Si ce n'est pas le cas, vous pouvez essayer d'utiliser XBMC comme session (sur votre écran de connexion, appuyez sur le logo ubuntu à côté de votre nom et sélectionnez XBMC. Vous n'obtiendrez pas unity, mais seulement fullscreen XMBC). Les paramètres d'unity ne seront pas présents, et vous aurez peut-être la chance de ne pas avoir d'économiseur d'écran. (Si vous avez paramétré la connexion automatique, vous devez appuyer sur logout pour obtenir l'écran de connexion).

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

0voto

jamon Points 1

Je les utilise dans ~/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

Bien sûr, vous pouvez créer une icône pour les exécuter, mais je n'utilise pas non plus XBMC.

0voto

SumnerHayes Points 36

Ces solutions désactivent toutes l'économiseur d'écran chaque fois que le xbmc fonctionne, et pas seulement lorsqu'il lit des vidéos. Comme il possède un serveur UPnP intégré, je le laisse fonctionner 24 heures sur 24, 7 jours sur 7, mais je ne veux désactiver l'économiseur d'écran que lorsqu'une vidéo est lue localement.

Voici ce que j'ai trouvé : activez le support http et JSON dans XBMC. Puis faire une requête en boucle pour savoir si le lecteur est actif ou non. S'il l'est, lancez une commande xscreensaver-command -disable (vous pouvez ajuster cela en fonction de votre écran de veille). Si ce n'est pas le cas, ne faites rien. Vérifier toutes les 50 secondes est suffisant pour moi.

Code Python ici : http://sumnerhayes.com/software/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X