Boa pergunta. Vamos descobrir!
-
Começando por investigando a opção "Suspender quando inativo por",
<property ...>Suspend when inactive for</property> ... <object ... id="combobox_sleep_ac">
podemos aprender que define uma chave GSettings chamada
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");
O documentação para esta chave fornece uma breve descrição:
A quantidade de tempo em segundos que o computador com energia CA precisa estar inativo antes de entrar no modo de suspensão. Um valor de 0 significa nunca.
mas ainda não explica o que significa "inativo".
-
Pesquisando por
sleep-inactive-ac-timeout
nos leva a < a href="http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/power/gsd-power-manager.c?id=410c71a0ab858d6c2ff3a67d707049e443880a06#n3257"> Configurações GNOME Daemon ,timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");
verifica periodicamente uma propriedade da sessão do GNOME chamada
Presence.status
:result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");
Se achar que o status é ocioso , coloca o sistema para dormir :
idle_set_mode (..., GSD_POWER_IDLE_MODE_SLEEP);
Portanto, precisamos aprender como a sessão do GNOME decide se o sistema está "inativo".
-
Na sequência de trás de onde Sessão GNOME o valor de
Presence.status
,gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, ...);
podemos ver que ele usa o contador
IDLETIME
do Xorg:if (... && strcmp (counters[i].name, "IDLETIME") == 0) { ...->counter = counters[i].counter;
-
O comportamento do contador
IDLETIME
é resumido em um post no blog pelo autor do GNOME Power Manager:O gnome-power-manager usa um contador dentro do Xorg chamado IDLETIME. Este contador é incrementado somente quando o usuário não move o mouse ou clica em algumas teclas. Quando o usuário clica em algo, o IDLECOUNTER é redefinido.
Isso nos diz que o Ubuntu determina a inatividade medindo a quantidade de tempo que passou desde o último toque de tecla ou movimento do mouse. Uso da CPU e atividade de rede não levam em consideração.