Boa pergunta. Vamos descobrir!
Começando investigando a opção "Suspender quando inativo por",
<property ...>Suspend when inactive for</property> ...
<object ... id="combobox_sleep_ac">
podemos aprender que ele 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");
A 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 em suspensão. Um valor 0 significa nunca.
mas ainda não explica o que significa "inativo".
Pesquisando para sleep-inactive-ac-timeout
leva-nos a GNOME Configurações Daemon ,
timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");
que verifica periodicamente uma propriedade da Sessão GNOME chamada Presence.status
:
result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");
Se achar que o status está inativo , ele colocará o sistema em suspensão :
idle_set_mode (..., GSD_POWER_IDLE_MODE_SLEEP);
Portanto, precisamos aprender como a Sessão do GNOME decide se o sistema está "inativo".
Depois de onde a Sessão GNOME atualiza o valor de Presence.status
,
gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, ...);
podemos ver que ele usa o IDLETIME
contador do Xorg:
if (... && strcmp (counters[i].name, "IDLETIME") == 0) {
...->counter = counters[i].counter;
O IDLETIME
comportamento do contador é resumido em uma postagem no blog pelo autor do GNOME Power Manager:
O gnome-power-manager usa um contador dentro do Xorg chamado IDLETIME. Esse contador é incrementado apenas 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 pressionamento de tecla ou movimento do mouse. O uso da CPU e a atividade da rede não são considerados.
wake up calls
.