Saya mencari cara sederhana untuk menentukan jumlah waktu kasar per hari yang saya habiskan di komputer. Ini bisa menjadi tugas yang sulit jika Anda mencoba memantau proses, penekanan tombol, klik mouse dan sejenisnya, karena orang dapat melakukan apa saja dari memikirkan masalah pengkodean, membaca artikel web, berbicara di telepon, atau pergi berjalan anjing. Komputer tidak bisa membaca pikiranku. Karena saya meninggalkan komputer pada 24/7 log-in pemantauan tidak akan berfungsi.
Saya menemukan ide untuk mencatat berapa banyak waktu yang dihabiskan komputer dalam mode screensaver. Kesalahan saya kemudian tidak akan lebih besar dari produk idle-time-to-screensaver dengan berapa kali ia masuk ke mode screensaver. Mengurangkan ini dari 24 jam akan memberi saya perkiraan yang masuk akal untuk tujuan saya.
Masalahnya adalah: Saya tidak tahu cara login ketika screensaver dihidupkan dan dimatikan. Saya menjalankan Ubuntu 10.10 saat ini di sebagian besar mesin, akan mulai memutakhirkan ke 11,04 pada beberapa dari mereka.
Ada ide?
[sunting] Setelah lebih banyak googling saya menemukan dbus-monitor yang sepertinya berfungsi, tetapi kehilangan bahan penting. Inilah skrip yang saya jalankan yang meluncurkan monitor sebagai daemon:
#!/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
Ini adalah output yang dihasilkannya setelah mengunci dan membuka kunci layar beberapa kali:
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
Kolom kedua jelas unix UTC dalam hitungan detik. Bahan yang hilang adalah tidak mengidentifikasi apakah screensaver hidup atau mati! Saya kira saya bisa berasumsi mereka beralih dari saat NameAcquired terjadi, tetapi itu membuat saya mual bahwa mungkin ada peristiwa yang hilang atau tambahan yang tidak dapat saya antisipasi yang akan membuat semuanya tidak sinkron.
Banyak diwajibkan untuk ide.
jkcunningham