Je voudrais être en mesure de suivre quelle application est actuellement concentrée sur mon affichage X11 à partir de Python. L'intention est de le lier dans un outil de calcul de délai afin que je puisse garder une trace du temps que je passe à être improductif.Comment détecter l'application actuellement ciblée?
Je l'ai déjà trouvé ce code à 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(),)
Cependant, il ne semble pas fonctionner pour moi. Apparemment, peu importe quelle application est ciblée, get_wm_class() et get_wm_name() retournent simplement None.
Bien sûr, la solution doit fonctionner avec tous ces nouveaux gestionnaires de fenêtres comme Compiz et autres.
Alors, que fait réellement window.query_tree() '? J'ai trouvé que moi aussi je l'ai utilisé pour obtenir le résultat désiré, mais le sens/la fonction derrière cela est encore un peu un mystère pour moi. Les docs Python Xlib ne sont pas très utiles non plus. – erb