Lo configuré para "suspender cuando está inactivo" después de 30 minutos.
¿Cómo determina si está inactivo? ¿Es solo la entrada del usuario a través del teclado/ratón?
Si dejo un programa funcionando, digamos procesando un video, que lleva mucho tiempo, ¿se suspenderá después de 30 minutos y detendrá ese programa? La misma pregunta para descargas largas, ¿se suspenderá a la mitad?
Respuesta aceptada:
Buena pregunta. ¡Vamos a averiguarlo!
-
Comenzando por investigar la opción "Suspender cuando esté inactivo por",
<property ...>Suspend when inactive for</property> ... <object ... id="combobox_sleep_ac">
podemos aprender que establece una clave GSettings llamada
sleep-inactive-ac-timeout
:widget = GTK_WIDGET (gtk_builder_get_object (..., "combobox_sleep_ac")); ... g_object_set_data (G_OBJECT(widget), "_gsettings_key", "sleep-inactive-ac-timeout");
La documentación de esta clave proporciona una breve descripción:
La cantidad de tiempo en segundos que la computadora con alimentación de CA necesita estar inactiva antes de entrar en modo de suspensión. Un valor de 0 significa nunca.
pero aún no explica qué significa "inactivo".
-
Buscando
sleep-inactive-ac-timeout
nos lleva al demonio de configuración de GNOME,timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");
que comprueba periódicamente una propiedad de la sesión de GNOME llamada
Presence.status
:result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");
Si encuentra que el estado es inactivo, pone el sistema en suspensión:
idle_set_mode (..., GSD_POWER_IDLE_MODE_SLEEP);
Por lo tanto, debemos aprender cómo la sesión de GNOME decide si el sistema está "inactivo".
-
Siguiendo hacia atrás desde donde GNOME Session actualiza el valor de
Presence.status
,gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, ...);
podemos ver que usa el
IDLETIME
contador de Xorg:if (... && strcmp (counters[i].name, "IDLETIME") == 0) { ...->counter = counters[i].counter;
-
El
IDLETIME
El comportamiento del contador se resume en una entrada de blog del autor de GNOME Power Manager:gnome-power-manager usa un contador dentro de Xorg llamado IDLETIME. Este contador se incrementa solo cuando el usuario no mueve el mouse o hace clic en algunas teclas. Cuando el usuario hace clic en algo, IDLECOUNTER se reinicia.
Esto nos dice que Ubuntu determina la inactividad midiendo la cantidad de tiempo que ha pasado desde la última pulsación de tecla o movimiento del mouse. El uso de la CPU y la actividad de la red no se tienen en cuenta.
Relacionado:Mac:¿Crear Ubuntu VM con VirtualBox?