Ubuntu askıya alınmadan önce hareketsizliği nasıl belirler?


14

30 dakika sonra "Aktif değilken askıya alma" olarak ayarladım.

Aktif olup olmadığını nasıl belirler? Sadece klavye / fare ile kullanıcı girişi mi?

Bir programı çalışır vaziyette bırakırsam - uzun süren bir videonun işlenmesini 30 dakika sonra askıya alır ve programı durdurur mu? Uzun indirmeler için aynı soru, yarıya kadar askıya alınacak mı.


İçin bir arama yapın wake up calls.
Rinzwind

Askubuntu'da mı? Ben sadece denedim ve tüm cevaplar sistemi askıya alma veya benzeri uyanma ile ilgili gibi görünüyor.
Jazz

Yanıtlar:


19

İyi soru. Hadi bulalım!

  1. "Etkin olmadığında askıya al" seçeneğini araştırarak başlayarak ,

    <property ...>Suspend when inactive for</property> ...
    <object ... id="combobox_sleep_ac">

    bir GSettings anahtarı ayarladığını öğrenebiliriz 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");

    Dokümantasyon bu anahtar için kısa bir açıklama sağlamaktadır:

    AC gücüne sahip bilgisayarın uyku moduna geçmeden önce etkin olmaması gereken saniye cinsinden süre. 0 değeri asla anlamına gelmez.

    ama yine de "inaktif" in ne anlama geldiğini açıklamıyor.

  2. Arama yapmak sleep-inactive-ac-timeoutbizi GNOME Settings Daemon'a yönlendiriyor ,

    timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");

    bu , GNOME Oturumu adlı bir mülkü düzenli olarak denetlerPresence.status :

    result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");

    O durum olduğunu tespit ederse boşta , bu uykuya sistemini koyar :

    idle_set_mode (..., GSD_POWER_IDLE_MODE_SLEEP);

    Bu yüzden GNOME Session'ın sistemin "boşta" olup olmadığına nasıl karar verdiğini öğrenmemiz gerekiyor.

  3. GNOME Oturumunun değerini güncellediği noktadan sonra Presence.status,

    gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, ...);

    bunu görebilirsiniz kullananIDLETIME Xorg gelen sayacı:

    if (... && strcmp (counters[i].name, "IDLETIME") == 0) {
        ...->counter = counters[i].counter;
  4. IDLETIMESayacın davranışı özetlenmektedir blog post GNOME Güç Yöneticisi yazarı:

    gnome-power-manager Xorg içinde IDLETIME adlı bir sayaç kullanır. Bu sayaç yalnızca kullanıcı fareyi hareket ettirmediğinde veya bazı tuşları tıklattığında artırılır. Kullanıcı bir şeyi tıklattığında, IDLECOUNTER sıfırlanır.

Bu bize Ubuntu'nun son tuş vuruşu veya fare hareketinden bu yana geçen süreyi ölçerek hareketsizliği belirlediğini söyler. CPU kullanımı ve ağ etkinliği hesaba katılmaz.


Son satırda söylediğiniz gibi, CPU kullanımı neden önemli değil? Şüphem askubuntu.com/questions/215870/… ' den geldiğim . çünkü 1GB dosyasını indirirsem çok zaman alabilir. Ben afk bile PC'm hala bu dosyayı indirmek yapıyor doğru. Bilgisayarım aktif değil mi? : D
rɑːdʒɑ

Mükemmel araştırma ve arıza için +1. Ve @AgentCool, hayır. Etkinlik klavye veya fare tuşuna basılarak belirlenir. İndirme işleminiz herhangi bir tuşa basmayacak ve bilgisayarı uyanık tutamayacak.
Oxwivi

@Oxwivi neredeyse bir yıl önce yorum yaptı. düzenlemeden sonra değil. :)
rɑːdʒɑ

@AgentCool Kötüüm, fark etmedim. Gönderi, büyük olasılıkla dünkü düzenlemeden dolayı yakın zamanda çarpıldı. İlgilendiğim bir soruydu, bu yüzden kontrol ettim.
Oxwivi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.