Buena pregunta. ¡Vamos a averiguar!
Comenzando por investigar la opción "Suspender cuando está inactivo para",
<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 debe estar inactiva antes de irse a dormir. Un valor de 0 significa nunca.
pero aún no explica qué significa "inactivo".
Buscando para sleep-inactive-ac-timeout
nos lleva a GNOME valores de daemon ,
timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");
que verifica periódicamente una propiedad de GNOME Session llamada Presence.status
:
result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");
Si encuentra que el estado está 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 la sesión de GNOME 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
comportamiento del contador se resume en una publicación 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, el IDLECOUNTER se restablece.
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 tienen en cuenta.
wake up calls
.