ubuntuusers.de

Inaktivität analysieren und Trigger kontrollieren

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

hife

Anmeldungsdatum:
22. April 2009

Beiträge: 62

Je nach Einstellung in "Helligkeit und Sperren" und "Leistung" werden nach bestimmten Zeiten der Inaktivität der Bildschirm ausgeschaltet oder der PC in den Standby versetzt, etc.

Doch was genau ist "Aktivität"? Standardmäßig sind es Benutzereingaben, aber diverse Programme simulieren (?) Aktivität, so etwa Firefox während der Medienwiedergabe. Allerdings scheint die Wiedergabe nicht den gleichen Effekt zu haben, wie etwa ein ständiges Bewegen der Maus, denn nach Ende der Wiedergabe schaltet sich der Bildschirm (falls es lange genug keine User-Eingaben gab) sofort ab. Es scheint also eine Art Blockade der Auslösung der entsprechenden Ereignisse stattzufinden, die aber nicht den Inaktivitätstimer zurücksetzt. Caffeine übt gezielt diese Funktion aus. Etwa der VLC-Player hat diesen Effekt nicht, es gibt für mich etwa bei einem neuen Programm aber keine Möglichkeit dies festzustellen.

Manchmal kommt es vor, dass mein PC versehentlich die ganze Nacht läuft, obwohl keine mir bekannte "Blockade" vorliegt. In so einem Fall würde ich gerne feststellen, welches Programm den Standby verhindert, am Besten noch mit einem Protokoll des Inaktivitätszustandes. Idealerweise möchte ich das Verhalten zudem besser kontrollieren können, etwa durch Wechsel zwischen verschiedenen Modi, etwa

  1. Normal: Automatisch Bildschirm aus und Standby.

  2. Film/Präsentation: Alles an, nie automatisch ausschalten (momentan realisiert durch Caffeine)

  3. Sleep-Timer: Bildschirm aus (evtl. trotz User-Eingabe) und automatischer Standby TROTZ Medienwiedergabe im Browser (momentan mangelhaft realisiert durch minimale Helligkeit und 'sleep XXX && xte "key XF86Suspend"')

  4. Hintergrund-Task: Bildschirm aus, aber kein Standby (erfordert Änderung der Einstellungen).

Eigentlich entspricht das (bis auf die gesonderte Behandlung von Medienwiedergabe) der Funktionalität die Windows XP damals durch Energieprofile hatte, die man bequem über ein Tray-Icon wechseln konnte.

realsuamor

Avatar von realsuamor

Anmeldungsdatum:
16. Mai 2010

Beiträge: 199

Wohnort: Renningen (BaWue)

Zwei Stchworte: DPMS und xscreensaver

DPMS kann unabhängig von Deinen Settings den/die Bildschirme abschalten um Energie zu sparen. Der Screensaver kann programmatisch deaktiviert werden, so daß im Fullscreen nichts deaktiviert wird.

Ob das auch im Windowmode geht, bin ich überfragt, aber zumindest denkbar.

hife

(Themenstarter)

Anmeldungsdatum:
22. April 2009

Beiträge: 62

realsuamor schrieb:

Zwei Stchworte: DPMS und xscreensaver

xscreensaver ist bei mir nicht installiert (Standard bei 16.04). Und laut xset q

1
2
3
4
DPMS (Energy Star):
  Standby: 0    Suspend: 0    Off: 0
  DPMS is Enabled
  Monitor is On

ist DPMS nicht zum Ausschalten des Bildschirms konfiguriert.

Wenn ich allerdings über

xset dpms 300 600 900

DPMS konfiguriere, wird für diese Zeiten die Medien-Wiedergabe im Browser ignoriert. Nach Standby oder Neustart wird die Einstellung allerdings zurückgesetzt.

Die in den Systemeinstellungen eingestellte Zeit bis zur Abdunkelung ist davon unabhängig und wird durch die Medien-Wiedergabe wie oben beschrieben beeinflusst. Im Unterschied zu DPMS passiert die Abdunkelung hier mit einem fließenden Übergang.

Durch Kombination beider Einstellungen kann ich zumindest das Verhalten des Bildschirms recht flexibel zusammenhacken. Schon einmal vielen Dank dafür.

Offen bleiben meine ursprüngliche Frage nach dem Mechanismus, der die Systemeinstellung umsetzt (evtl. gnome-screensaver?), und insbesondere die Möglichkeit auch für automatischen Standby-Modus die Medien-Wiedergabe zu ignorieren.

hife

(Themenstarter)

Anmeldungsdatum:
22. April 2009

Beiträge: 62

Ich habe nun eine etwas abgeänderte Frage hier gestellt.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11229

Wohnort: München

Die Gnome-Session bietet eine über D-Bus nutzbare Inhibitor-API: https://people.gnome.org/~mccann/gnome-session/docs/gnome-session.html

Jede Anwendung kann damit angeben, dass die Session bestimmte Zustände wie Idle, Standby usw. nicht automatisch annehmen soll. Es gibt auch das CLI-Tool gnome-session-inhibit, das den Aufruf der Funktionen leicht möglich macht, ohne das Low-Level mit dbus-send oder einer Programmiersprache zu machen: http://manpages.ubuntu.com/manpages/xenial/man1/gnome-session-inhibit.1.html

Wenn ein Programm solche Inhibitoren nicht setzen soll und es keine Option dafür gibt das abzuschalten, muss man ggf. den Quelltext mit den gewünschten Änderungen neu kompilieren.

hife

(Themenstarter)

Anmeldungsdatum:
22. April 2009

Beiträge: 62

@seahawk1986: Vielen Dank für die ausführliche Antwort und die Links zu den relevanten Dokumentationen.

Am liebsten wäre mir ja eine Möglichkeit, gezielt beliebigen Programmen die Inhibitor-Rechte zu entziehen, ohne den Quelltext zu bearbeiten, insbesondere wegen Updates.

Auf askubuntu wurde mir vorgeschlagen, per Skript die entsprechenden Flags zu überwachen und gegebenenfalls zu entfernen, ich werde sehen, ob ich das hinbekomme.

Mit seahawk1986s Antwort sehe ich die Hauptfrage als beantwortet, also werde ich den Thread als gelöst markieren, aber werde trotzdem gegebenenfalls meine Versuche/Ergebnisse posten.

Antworten |