Verhindern Sie das Ausschalten des Bildschirms beim Ansehen von Videos in XBMC [geschlossen]

8

In 12.04 ging der Bildschirm beim Ansehen von Videos in XBMC nie in den Ruhezustand. Nach dem Upgrade auf 12.10 und dem Ändern keiner Einstellungen ist dies jedoch der Fall.

Gibt es eine Möglichkeit, das automatische Ausschalten des Bildschirms während der Wiedergabe eines Videos in XBMC zu verhindern, ohne das Ausschalten des Bildschirms zu anderen Zeiten zu deaktivieren?

Gibt es im Idealfall eine XBMC-spezifische Einstellung dafür? War dies eine Funktion von XBMC, die jetzt in 12.10 irgendwie kaputt ist, oder hat sich dies aufgrund einer anderen Nicht-XBMC-Änderung in Ubuntu geändert?

thomasrutter
quelle
1
In XBMC sollte unter Energiesparen> Leerlauf ausschalten oder etwas in diesem Sinne eine Einstellung vorhanden sein. Hast du das versucht?
Ye Lin Aung
Das Problem tritt beim Ansehen eines Films auf, der nicht inaktiv ist. Es macht mir nichts aus (und ich mag es tatsächlich), wenn ich den Bildschirm im Leerlauf ausschalte.
Thomasrutter
Welche Versionen verwenden Sie? Haben Sie spezielle Leistungseinstellungen in Ubuntu? Ich führe eine Neuinstallation von 12.10 mit dem (normalen, nicht instabilen) XBMC von der PPA aus und bin davon nicht betroffen. Es scheint also keine Standardeinstellung zu sein, // betrifft nicht alle Personen . (Ja, ich weiß, das hilft dir nicht viel, aber es könnte trotzdem helfen zu wissen, dass es kein allgegenwärtiger Fehler ist. Ich weiß nicht :))
Nanne
Ich verwende die Version von Ubuntu (12.10, kürzlich aktualisiert von 12.04), nicht von einer PPA. Keine speziellen Energieeinstellungen, nur die Standardeinstellung, mit der der Monitor nach einer gewissen Zeit der Inaktivität ausgeschaltet wird.
Thomasrutter
Vielen Dank für die Mühe, die Sie in diese Antwort gesteckt haben, Aditya, aber ich denke, ich würde lieber zuerst die beiden Alternativen ausprobieren, die Nannes Antwort vorgeschlagen hat.
Thomasrutter

Antworten:

7

Dies scheint eine zu sein , Fehler in dem XBMC - Paket für Ubuntu

Ich bin nicht sicher, welche Version Sie installiert haben, aber die Version von PPA * scheint sie nicht auf meinem System zu haben. Dies kann natürlich daran liegen, dass ich in Ubuntu unterschiedliche Einstellungen habe, sodass Ihre Laufleistung variieren kann.

Wenn Sie dies nicht tun, können Sie versuchen, XBMC als Sitzung zu verwenden (drücken Sie auf Ihrem Anmeldebildschirm auf das Ubuntu-Logo neben Ihrem Namen und wählen Sie XBMC aus. Sie erhalten keine Einheit, sondern nur Vollbild-XMBC). Die Einstellungen für "Einheit" sind nicht vorhanden, sodass Sie möglicherweise Glück haben, keinen Bildschirmschoner zu haben. (Wenn Sie die automatische Anmeldung festgelegt haben, müssen Sie auf Abmelden klicken, um den Anmeldebildschirm aufzurufen.)

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

Nanne
quelle
Vielen Dank für den Bug-Link, der den Grund für mein Problem darstellt, da ich das xbmc-Paket von Ubuntu verwende. Ich werde versuchen, XBMC als Sitzung zu verwenden, wenn ich zu Hause bin, und prüfen, ob dies das Problem behebt.
Thomasrutter
11

Wir können ein Shell-Skript erstellen, das die Mausbewegung in einem bestimmten Intervall simuliert (nur wenn XBMC ausgeführt wird) und verhindert, dass sich Ihr Bildschirm ausschaltet.

Folge den Schritten:

  1. Installieren Sie die erforderlichen Tools:

    Wir würden xdotoolInstallieren Sie xdotool brauchen , um diesen Job für uns zu erledigen. Installieren Sie es, indem Sie den folgenden Befehl im Terminal ausführen:

    sudo apt-get install xdotool
    
  2. Das Drehbuch:

    Speichern Sie das folgende Skript an einer beliebigen Stelle auf Ihrem PC. Sie können sleep_periodnach Ihren Wünschen ändern , ich habe es auf 60 Sekunden eingestellt. Das Skript prüft, ob ein Prozess namens xbmc.binrunning ausgeführt wird. und wenn es eine findet, wird eine Schleife ausgeführt, um die Mausbewegung zu simulieren, während der Prozess aktiv ist. Andernfalls wird nach dem angegebenen Intervall erneut nach dem Prozess gesucht.

    #!/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. Machen Sie dieses Skript ausführbar:

    Klicken Sie mit der rechten Maustaste auf die gerade gespeicherte Datei >> Wählen Sie >> PropertiesAktivieren Sie auf der PermissionRegisterkarte das Häkchen Execute.

    Machen Sie das Skript ausführbar

  4. Führen Sie dieses Skript bei jedem Start automatisch aus:

    Wir können dies mit Hilfe von Startup Applications tun . Öffnen Sie Ihren Dash, indem Sie auf >> klicken Enterund nach Startup Applications>> fragen. Klicken Sie im Fenster Startanwendungen auf Add>>. Geben Sie dann im daraufhin angezeigten Dialogfeld die folgenden Informationen ein:

    Name: optional, wie auch immer Sie dies benennen möchten.

    Befehl: Pfad zu der Datei, in der Sie sie gespeichert haben.

    Kommentar: optional, wenn Sie welche hinzufügen möchten.

    Einstellungen für Startanwendungen

  5. Starten Sie Ihr System neu und genießen Sie Ihre Filme mit XBMC.


Verwendung mit anderen Anwendungen

Dies war ein Beispiel für XBMC (Prozessname xbmc.bin). Es kann jedoch auch für jeden anderen Prozess Ihrer Wahl verwendet werden, indem Sie einfach das xbmc.binin Schritt 2 erwähnte Skript durch den Namen des gewünschten Prozesses ersetzen . Suchen Sie im obigen Skript die folgenden Zeilen:

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

Und ersetzen Sie xbmc.binin beiden Zeilen 2 und 3 den Prozessnamen Ihrer Wahl.


So finden Sie den Prozessnamen

  • Mit GUI (GNOME):

    Wir können verwenden System Monitor, um den Namen des Prozesses zu finden. Drücken Sie Super, um Dash zu öffnen, und fragen Sie nach "System Monitor", um es zu starten. Auf der ProcessesRegisterkarte finden Sie den Prozessnamen als erste Spalte.

    Systemmonitor

  • Mit Terminal:

    Wir können ausführen, topum alle laufenden Prozesse aufzulisten. Die letzte aufgerufene Spalte Commandgibt den Namen des Prozesses an (sie ist jedoch auf die ersten 15 Zeichen beschränkt).

    Terminal <code> top </ code> Befehl

Hier können wir sehen, dass Firefox nur so heißt firefox. Wenn wir dieses Verhalten möchten, wenn Firefox ausgeführt wird, Wir würden xbmc.binim Skript durch ersetzen firefoxund alles andere würde gut funktionieren.


Danksagung: Ich hatte das Skript hier gefunden . Ich habe jedoch die notwendigen Änderungen vorgenommen, um es kompakt zu machen und die Anforderungen der Frage zu erfüllen.

Aditya
quelle
Wäre das nicht ein letztes, letztes, letztes, nichts anderes funktionierendes Resort?
Nanne
1
@Nanne: Nein ... Warum sollte das so sein? Das Shell-Skript belastet Ihre Systemressourcen nicht. und es würde keine Mausbewegung simulieren, wenn XMBC nicht ausgeführt wird; Außerdem müssen Sie nicht jedes Mal daran denken, dieses Skript auszuführen ... Obwohl eine Voreinstellung in XMBC offensichtlich die beste Lösung wäre; Da ich kein XMBC verwende, weiß ich nicht, ob eine solche Einstellung vorhanden ist. Ich habe dieses Shell-Skript mit Firefox getestet und es funktioniert wie vom OP erwartet.
Aditya
Das Problem ist, dass das System während der Videowiedergabe nicht in den Ruhezustand wechseln sollte (und für mich nicht). Dies ist eindeutig eine Problemumgehung (man könnte es sogar als Hack bezeichnen) und ich sage nicht, dass es schlecht ist, Requisiten für diesen großartigen Beitrag, aber dennoch würde ich zuerst nach einer echten Lösung suchen (wie Sie sagen, tun Sie dies nicht Sie kennen sich mit XBMC aus, daher gibt es möglicherweise eine tatsächliche), bevor Sie dies versuchen. Auch hier ist nichts Schlechtes an Ihrem eigentlichen Beitrag, aber stimmen Sie nicht zu, dass Sie die Maus bewegen sollten, nachdem "normale" Einstellungen fehlgeschlagen sind?
Nanne
1
@Nanne Wie gesagt, eine Voreinstellung in XMBC zur Steuerung wäre offensichtlich die beste Lösung. Es ist jedoch ratsam zu erwarten, dass das OP seine Hausaufgaben gemacht hat. Wenn eine solche Einstellung in XMBC verfügbar wäre, wäre wahrscheinlich jemand aufgetaucht und hätte seine Antwort veröffentlicht. Die Frage ist ab sofort 7 Tage alt - ich glaube nicht, dass sie in XMBC vorhanden ist. Wie auch immer, wenn Sie XMBC verwenden, können Sie bitte überprüfen, ob dies möglich ist :)
Aditya
3
Ich würde das nicht Hack nennen. Die Leute benutzen Shell-Skripte, um diese Dinge die ganze Zeit zu tun. Tolle Antwort +1.
Seth
8

Eine sehr einfache Lösung ist Koffein . Koffein ist eine Statusleistenanwendung, die vorübergehend die Aktivierung des Bildschirmschoners und des Energiesparmodus "Schlaf" verhindern kann.

Das Aktivieren ist so einfach wie das Klicken auf die Statusleistenanzeige. Sie können sie jedoch auch so einrichten, dass der Bildschirmschoner beim Starten von xbmc automatisch deaktiviert wird. Siehe den Screenshot unten

Geben Sie hier die Bildbeschreibung ein

Wenn Sie Gnome verwenden, können Sie die Koffein-Gnome-Erweiterung installieren . Wenn nicht, können Sie für Ubuntu bis 15.04 (lebendig) Koffein vom Launchpad ppa installieren:

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

ab 15.10 können sie ohne ppa installieren

sudo apt install caffeine

Genießen!

Gerhard Burger
quelle
Das sieht nach einem guten Werkzeug aus.
Thomasrutter
@PeterMortensen Es funktioniert sogar am 16.04, dass die Antwort veraltet ist. Vielen Dank für das Headsup, da meine Antwort auch ein Update gebrauchen könnte;) Ich habe die Installationsanweisungen für die neueren Ubuntu-Versionen hinzugefügt.
Gerhard Burger
0

Ich benutze diese in ~ / 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

Natürlich können Sie ein Symbol erstellen, um diese auszuführen, aber ich verwende auch kein XBMC

Jamon
quelle
Ich benutze Gnome, also glaube ich nicht, dass ich xscreensaver benutze. Danke für deine Antwort.
Thomasrutter
0

Diese Lösungen schalten alle den Bildschirmschoner aus, wenn xbmc ausgeführt wird, nicht nur, wenn Videos abgespielt werden. Da es einen eingebauten UPnP-Server hat, lasse ich ihn rund um die Uhr laufen, möchte aber den Bildschirmschoner nur deaktivieren, wenn ein Video lokal abgespielt wird.

Folgendes habe ich mir ausgedacht: Aktivieren Sie die http- und JSON-Unterstützung in XBMC. Stellen Sie dann eine Schleife auf, um herauszufinden, ob der Player aktiv ist oder nicht. Wenn dies der Fall ist, geben Sie einen xscreensaver-Befehl -disable aus (Sie können dies je nach Bildschirmschoner anpassen). Wenn nicht, nichts tun. Alle 50 Sekunden zu überprüfen ist genug für mich.

Python-Code hier: http://sumnerhayes.com/software/

SumnerHayes
quelle
Diese Frage betraf die XBMC in Ubuntu 12.10, die einen Fehler aufwies, bei dem der Bildschirmschoner während der Wiedergabe eines Videos nicht deaktiviert wurde. Dieser Fehler ist in der XBMC in aktuelleren Versionen von Ubuntu nicht vorhanden, daher halte ich Ihre Problemumgehung nicht für erforderlich. XBMC deaktiviert den Bildschirmschoner während der Videowiedergabe wie gewünscht.
Thomasrutter