Bir bilgisayarda harcadığım günlük zor zamanı belirlemek için basit bir yol arıyorum. Süreçleri, tuş basmalarını, fare tıklamalarını ve benzerlerini izlemeye çalışırsanız bu zor bir görev olabilir, çünkü bir kodlama sorunu hakkında düşünmekten, bir web makalesini okumaktan, telefonda konuşmaktan veya köpek. Bilgisayar aklımı okuyamıyor. Bilgisayarları 7/24 açık bıraktığım için girişler çalışmayacak.
Bilgisayarın ekran koruyucu modunda ne kadar zaman harcadığını günlüğe kaydetme fikrine vurdum. Benim hatam o zaman ekran koruyucu moduna kaç kez boşta-ekran koruyucu ürün daha büyük olacaktır. Bunu 24 saatten çıkarmak bana amacım için makul bir tahmin verecektir.
Sorun şu ki: Ekran koruyucu açılıp kapandığında nasıl oturum açılacağını bilmiyorum. Şu anda çoğu makinede Ubuntu 10.10 kullanıyorum, bazılarında 11.04'e yükseltmeye başlamak üzereyim.
Herhangi bir fikir?
Daha fazla googling yaptıktan sonra, işe yarayabilecek gibi görünen ancak önemli bir bileşeni eksik olan dbus monitörüne çarptım. İşte ben bir daemon olarak monitörü başlatan senaryo:
#!/bin/bash
RUNNING=`ps -A | grep "dbus-monitor"`
if [ ! $RUNNING ]; then
echo "(Re)starting dbus-monitor daemon"
nohup dbus-monitor "--profile" "type='signal',interface='org.gnome.ScreenSaver'" >> ${HOME}/sc.log &
fi
Ekranı birkaç kez kilitledikten ve kilidini açtıktan sonra ürettiği çıktı:
sig 1304860712 153829 2 /org/freedesktop/DBus org.freedesktop.DBus NameAcquired
sig 1304860717 318732 462 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304860725 547928 463 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304861018 17 464 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304862919 403523 466 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
İkinci sütun saniyeler içinde Unix UTC'dir. Eksik bileşen, ekran koruyucunun açık veya kapalı olduğunu tanımlamamasıdır! Sanırım NameAcquired'in gerçekleştiği andan itibaren geçiş yapabileceklerini varsayabilirim, ama her şeyi senkronizasyondan çıkaracağını tahmin edemediğim eksik veya ekstra bir olay olabileceği beni rahatsız ediyor.
Fikirler için çok yükümlü.
jkcunningham