Tiempo de innactividad en Linux
lunes, 30 de septiembre de 2013Parecía una tontería, pero me costó encontrar el modo de averiguar cuanto tiempo lleva el escritorio innactivo, básicamente lo que hacen los salvapantallas para lanzarse.
La instalación standard (hasta donde sé) de openSuse no dispone de ninguna aplicación que directamente indique los segundos ó milisegundos que el escritorio (KDE ó GNOME) llevan sin recibir actividad por el teclado ó el ratón. Hay modos indirectos, a traves del comando WHO (who -a) ó consultado /proc/interrupts (cat /proc/interrupts).
Al final opté por compilar una mini-applicación que encontré naufragando por internet y que hace eso mismo: imprimir el tiempo de inactividad en el escritorio gracias a las librerías de salvapantallas (cambié un par de líneas).
Copia estas líneas a un archivo:#include <X11/extensions/scrnsaver.h>
y guardalo como innactivo.c.
#include <stdio.h>
main() {
XScreenSaverInfo *info = XScreenSaverAllocInfo();
Display *display = XOpenDisplay(0);
if (display != NULL) {
XScreenSaverQueryInfo(display, DefaultRootWindow(display), info);
printf("%u\n", info->idle); }
}
Ahora compilalo haciendo gcc -o innactivo innactivo.c -lXss
Copia el binario a /usr/bin y hazlo ejecutablesudo cp innactivo /usr/bin/innactivo
sudo chmod +x /usr/bin/innactivo
Listo. Ahora en cualquier consola al escribir innactivo se imprimen los milisegundos que lleva el sistema innactivo. En mi caso son siempre 8-9 los milisegundos que transcurren entre que ejecuto la orden y se imprime en pantalla.
18 de December, 2024 @ 11:01