Me gustaría poder rastrear qué aplicación está actualmente enfocada en mi pantalla X11 de Python. La intención es vincularlo a una herramienta de seguimiento del tiempo para poder hacer un seguimiento de cuánto tiempo gasto siendo improductivo.¿Cómo puedo detectar la aplicación actualmente enfocada?
ya me encontré con este código en http://thpinfo.com/2007/09/x11-idle-time-and-focused-window-in.html:
import Xlib.display
display = Xlib.display.Display()
focus = display.get_input_focus()
print "WM Class: %s" % (focus.focus.get_wm_class(),)
print "WM Name: %s" % (focus.focus.get_wm_name(),)
Sin embargo, no parece funcionar para mí. Aparentemente, no importa qué aplicación esté enfocada, get_wm_class() y get_wm_name() simplemente devuelven None.
Por supuesto, la solución debe funcionar con todos estos nuevos administradores de ventanas con filo como Compiz y tal.
Entonces, ¿qué hace 'window.query_tree()' en realidad? He descubierto que yo también lo he usado para obtener el resultado deseado, pero el significado/función detrás de esto todavía es un misterio para mí. Los documentos Python Xlib tampoco son de mucha ayuda. – erb