Empêcher l'écran de s'éteindre lorsque vous regardez une vidéo dans XBMC [fermé]

8

En 12.04, l'écran ne s'endormait jamais en regardant des vidéos dans XBMC. Cependant, après la mise à niveau vers 12.10 et la modification d'aucun paramètre, c'est le cas.

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

Idéalement, existe-t-il un paramètre spécifique XBMC pour cela? Était-ce une fonctionnalité de XBMC qui est maintenant en quelque sorte cassée en 12.10 ou cela a-t-il changé en raison d'un autre changement non-XBMC dans Ubuntu?

thomasrutter
la source
1
Il devrait y avoir un paramètre dans XBMC sous Économie d'énergie> Désactiver le mode veille ou quelque chose à cet effet. As-tu essayé ça?
Ye Lin Aung
Le problème se produit lorsque vous regardez un film, qui n'est pas inactif. Cela ne me dérange pas (et en fait, j'aime) que cela éteigne l'écran en mode veille.
thomasrutter
Quelles versions utilisez-vous? Avez-vous des paramètres d'alimentation spéciaux dans Ubuntu? J'exécute une nouvelle installation 12.10 avec le XBMC (normal, pas l'instable) du PPA, et je ne suis pas affecté par cela, donc cela ne semble pas être une chose par défaut // n'affecte pas tout le monde . (ouais, je sais, ça ne vous aide pas beaucoup, mais ça peut quand même aider de savoir que ce n'est pas un bug omniprésent .. Je ne sais pas :))
Nanne
J'utilise la version d'Ubuntu (12.10, récemment mise à niveau depuis 12.04), pas d'un PPA. Pas de paramètres d'alimentation spéciaux, juste la valeur par défaut qui éteint le moniteur après une période d'inactivité.
thomasrutter
Merci pour l'effort que vous avez mis dans cette réponse Aditya mais je pense que je préfère essayer les deux alternatives proposées par la réponse de Nanne en premier.
thomasrutter le

Réponses:

7

Cela semble être un bogue dans le package 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 dû au fait que j'ai différents paramètres dans Ubuntu bien sûr, donc votre kilométrage peut varier.

Si vous ne le faites pas, vous pouvez essayer d'utiliser XBMC en tant que session (sur votre écran de connexion, appuyez sur le logo ubuntu à côté de votre nom et sélectionnez XBMC. Vous n'obtiendrez pas l'unité, mais juste le plein écran XMBC). Les paramètres de l'unité ne seront pas là, vous pourriez donc ne pas avoir d'économiseur d'écran. (Si vous avez défini la connexion automatique, vous devez appuyer sur déconnexion pour obtenir l'écran de connexion)

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

Nanne
la source
Merci pour le lien de bogue, qui ressemble à la raison de mon problème car j'utilise le paquet xbmc d'Ubuntu. J'essaierai d'utiliser XBMC en tant que session lorsque je serai chez moi et voir si cela résout le problème.
thomasrutter
11

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

Suis les étapes:

  1. Installez les outils nécessaires:

    Nous aurions besoin de xdotoolInstaller 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 scénario:

    Enregistrez le script suivant n'importe où sur votre PC. Vous pouvez modifier sleep_periodselon vos besoins, je l'ai fixé à 60 secondes. Le script vérifie s'il existe un processus appelé en xbmc.bincours d'exécution; et s'il en trouve un, il boucle pour simuler le mouvement de la souris pendant que le processus est actif. Sinon, 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 sur le fichier que vous venez d'enregistrer >> Sélectionner Properties>> Dans l' Permissiononglet, cochez la case Execute.

    rendre le script exécutable

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

    Nous pouvons le faire avec l'aide des applications de démarrage . Ouvrez votre Dash en appuyant sur Enteret recherchez Startup Applications>> Dans la fenêtre des applications de démarrage, cliquez sur Add>> Ensuite, dans la boîte de dialogue qui apparaît, remplissez les informations:

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

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

    Commentaire: facultatif, si vous souhaitez en ajouter.

    préférences des applications de démarrage

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


Comment l'utiliser avec d'autres applications

C'était 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.bindans le script mentionné à l'étape 2 le nom du processus que vous souhaitez. Recherchez les lignes suivantes dans le script ci-dessus:

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

Et remplacez xbmc.bindans les deux lignes 2 et 3 par le nom du processus de votre choix.


Comment trouver le nom du processus

  • Avec GUI (GNOME):

    Nous pouvons utiliser System Monitorpour trouver le nom du processus. Appuyez sur Superpour ouvrir Dash et recherchez «System Monitor» pour le lancer. Dans l' Processesonglet, nous pouvons trouver le nom du processus comme première colonne.

    Moniteur système

  • Avec terminal:

    Nous pouvons exécuter toppour répertorier tous les processus en cours d'exécution. La dernière colonne appelée Commandnous donne le nom du Processus (cependant il est limité aux 15 premiers caractères).

    Commande <code> top </code> du terminal

Ici, nous pouvons voir que Firefox est simplement nommé comme firefox. Donc, si nous voulons ce comportement lorsque Firefox est en cours d'exécution; nous remplacerions xbmc.bindans le script par firefoxet tout le reste fonctionnerait très bien.


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

Aditya
la source
Ne serait-ce pas un dernier, dernier, dernier recours, rien d'autre?
Nanne
1
@Nanne: Non ... Pourquoi en serait-il ainsi; le script shell ne monopolisera pas vos ressources système; et il ne simulerait pas le mouvement de la souris lorsque XMBC n'est pas en cours d'exécution; ainsi que vous n'aurez pas à vous rappeler d'exécuter ce script à chaque fois ... Bien qu'un paramètre de préférence dans XMBC soit évidemment la meilleure solution; puisque je n'utilise pas XMBC - je ne sais pas si un tel paramètre existe. J'ai testé ce script Shell avec Firefox et il fonctionne comme prévu par l'OP.
Aditya
Le problème est que le système ne doit pas s'endormir pendant la lecture de la vidéo (et pour moi, ce n'est pas le cas). Il s'agit clairement d'une solution de contournement (vous pouvez même l'appeler un hack) et je ne dis pas que c'est mauvais, des accessoires pour vous pour ce super article, mais je chercherais d'abord une vraie solution (comme vous le dites, vous ne le faites pas connaître XBMC, donc il pourrait y en avoir un réel) avant d'essayer. Encore une fois, rien de mal à propos de votre message, mais n'êtes-vous pas d'accord pour dire que faire bouger la souris est quelque chose que vous devriez essayer après l'échec des paramètres "normaux"?
Nanne
1
@Nanne Comme je l'ai dit, un paramètre de préférence au sein de XMBC pour le contrôler serait évidemment la meilleure solution. Cependant, il est prudent que je m'attende à ce que le PO ait fait ses devoirs. De plus, si un tel paramètre était disponible dans XMBC, je pense que quelqu'un serait venu et aurait posté sa réponse. La question a 7 jours à partir de maintenant - je ne pense pas que ce soit là dans XMBC. Quoi qu'il en soit, comme vous utilisez XMBC, pouvez-vous s'il vous plaît vérifier si cela peut être fait :)
Aditya
3
Je n'appellerais pas ça un hack. Les gens utilisent des scripts shell pour faire ces choses tout le temps. Réponse impressionnante +1.
Seth
8

Une solution très simple est la caféine . La caféine 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« veille ».

L'activer est aussi simple que de cliquer sur l'indicateur de la barre d'état, mais vous pouvez également le configurer de sorte qu'il désactive automatiquement l'économiseur d'écran lorsque vous démarrez xbmc. Voir la capture d'écran ci-dessous

entrez la description de l'image ici

Si vous utilisez Gnome, vous pouvez installer l'extension gnome caféine . Sinon, pour Ubuntu jusqu'à 15.04 (vif), vous pouvez installer la caféine à partir du tableau de bord ppa:

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

à partir de 15h10, vous pouvez installer sans ppa

sudo apt install caffeine

Prendre plaisir!

Gerhard Burger
la source
Cela ressemble à un bon outil.
thomasrutter
@PeterMortensen Cela fonctionne, même le 16.04, cette réponse est obsolète. Merci pour le headsup cependant, car ma réponse pourrait également utiliser une mise à jour;) J'ai ajouté les instructions d'installation pour les nouvelles versions d'Ubuntu.
Gerhard Burger
0

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

jamon
la source
J'utilise Gnome donc je ne pense pas que j'utilise xscreensaver. Merci pour votre réponse.
thomasrutter
0

Ces solutions désactivent toutes l'économiseur d'écran chaque fois que xbmc est en cours d'exécution, pas seulement lors de la lecture de vidéos. Comme il dispose d'un serveur UPnP intégré, je le laisse fonctionner 24h / 24 et 7j / 7, mais je ne souhaite désactiver l'économiseur d'écran que lorsqu'une vidéo est lue localement.

Voici ce que j'ai trouvé: activez la prise en charge http et JSON dans XBMC. Bouclez ensuite en faisant une demande pour savoir si le joueur est actif ou non. Si c'est le cas, lancez une commande xscreensaver -disable (vous pouvez l'ajuster selon votre économiseur d'écran). Sinon, ne faites rien. Vérifier toutes les 50 secondes me suffit.

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

SumnerHayes
la source
Cette question concernait le XBMC dans Ubuntu 12.10 qui avait un bug où il ne désactivait pas l'économiseur d'écran pendant la lecture d'une vidéo. Ce bogue n'existe pas dans le XBMC dans les versions plus à jour d'Ubuntu, donc je ne pense pas que votre solution de contournement soit nécessaire. XBMC désactive l'économiseur d'écran pendant la lecture de la vidéo, comme il se doit.
thomasrutter