Ich habe es so eingestellt, dass es nach 30 Minuten „unterbrochen wird, wenn es inaktiv ist“.
Wie stellt es fest, ob es inaktiv ist? Ist es nur eine Benutzereingabe über Tastatur/Maus?
Wenn ich ein Programm außer Betrieb lasse – sagen wir, die Verarbeitung eines Videos, was lange dauert, wird es dann nach 30 Minuten angehalten und das Programm gestoppt? Dieselbe Frage für lange Downloads, wird es auf halbem Weg unterbrochen.
Akzeptierte Antwort:
Gute Frage. Finden wir es heraus!
-
Beginnen Sie mit der Untersuchung der Option „Sperren, wenn inaktiv für“
<property ...>Suspend when inactive for</property> ... <object ... id="combobox_sleep_ac">
Wir können erfahren, dass es einen GSettings-Schlüssel namens
sleep-inactive-ac-timeout
setzt :widget = GTK_WIDGET (gtk_builder_get_object (..., "combobox_sleep_ac")); ... g_object_set_data (G_OBJECT(widget), "_gsettings_key", "sleep-inactive-ac-timeout");
Die Dokumentation für diesen Schlüssel enthält eine kurze Beschreibung:
Die Zeit in Sekunden, die der Computer im Netzbetrieb inaktiv sein muss, bevor er in den Energiesparmodus wechselt. Ein Wert von 0 bedeutet nie.
erklärt aber immer noch nicht, was „inaktiv“ bedeutet.
-
Suche nach
sleep-inactive-ac-timeout
führt uns zum GNOME Settings Daemon,timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");
die regelmäßig eine Eigenschaft der GNOME-Sitzung namens
Presence.status
überprüft :result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");
Wenn es feststellt, dass der Status inaktiv ist, versetzt es das System in den Ruhezustand:
idle_set_mode (..., GSD_POWER_IDLE_MODE_SLEEP);
Wir müssen also lernen, wie die GNOME-Sitzung entscheidet, ob das System „inaktiv“ ist.
-
Rückwärts folgend, wo GNOME Session den Wert von
Presence.status
aktualisiert ,gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, ...);
wir können sehen, dass es die
IDLETIME
verwendet Zähler von Xorg:if (... && strcmp (counters[i].name, "IDLETIME") == 0) { ...->counter = counters[i].counter;
-
Die
IDLETIME
Das Verhalten des Zählers ist in einem Blogbeitrag des Autors von GNOME Power Manager zusammengefasst:gnome-power-manager verwendet einen Zähler in Xorg namens IDLETIME. Dieser Zähler wird nur erhöht, wenn der Benutzer die Maus nicht bewegt oder auf einige Tasten klickt. Wenn der Benutzer auf etwas klickt, wird der IDLCOUNTER zurückgesetzt.
Dies sagt uns, dass Ubuntu die Inaktivität bestimmt, indem es die Zeit misst, die seit dem letzten Tastendruck oder der letzten Mausbewegung vergangen ist. CPU-Auslastung und Netzwerkaktivität werden nicht berücksichtigt.
Verwandte:Mac – Ubuntu VM mit VirtualBox erstellen?