Estoy buscando una manera simple de determinar la cantidad aproximada de tiempo por día que paso en una computadora. Esta puede ser una tarea difícil si intenta monitorear procesos, pulsaciones de teclas, clics del mouse y similares, ya que uno puede hacer cualquier cosa, desde pensar en un problema de codificación, leer un artículo web, hablar por teléfono o salir caminando. perro. La computadora no puede leer mi mente. Desde que dejo las computadoras encendidas 24/7, los inicios de sesión de monitoreo no funcionarán.
Llegué a la idea de registrar cuánto tiempo pasa la computadora en modo de protector de pantalla. Mi error no sería mayor que el producto del tiempo de inactividad para el protector de pantalla con la cantidad de veces que entra en modo de protector de pantalla. Restar esto de 24 horas me daría una estimación que sería razonable para mis propósitos.
El problema es: no sé cómo iniciar sesión cuando el protector de pantalla se enciende y apaga. Estoy ejecutando Ubuntu 10.10 en este momento en la mayoría de las máquinas, a punto de comenzar a actualizar a 11.04 en algunas de ellas.
¿Algunas ideas?
[editar] Después de buscar más en Google, golpeé el monitor dbus que parecía funcionar, pero le falta un ingrediente importante. Aquí está el script que estoy ejecutando que inicia el monitor como un demonio:
#!/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
Aquí está la salida que produce después de bloquear y desbloquear la pantalla un par de veces:
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
La segunda columna es obviamente unix UTC en segundos. ¡El ingrediente que falta es que no identifica si el protector de pantalla está activado o desactivado! Supongo que podría suponer que cambian desde el momento en que ocurre NameAcquired, pero me inquieta que pueda haber un evento extra o perdido que no puedo anticipar, lo que desestabilizaría todo.
Muy obligado por las ideas.
jkcunningham