Je voudrais savoir (par programme) quelle fenêtre a le focus actuel. Existe-t-il un moyen indépendant de gérer les fenêtres pour découvrir cela?
Sinon, comment déterminer quelle fenêtre est active dans Compiz ou Metacity?
Ce que vous voulez, c’est libwnck (si vous êtes simplement intéressé par Windows) ou libbamf (si vous êtes intéressé par Windows et les applications qui en sont propriétaires).
Si vous êtes content de faire une petite programmation X11, la spécification EWMH est ce que vous recherchez, en particulier _NET_ACTIVE_WINDOW .
Une autre chose que vous pouvez utiliser est xdotool:
xdotool getwindowfocus
renverrait l’identifiant de fenêtre de la fenêtre focalisée, et:
xdotool getwindowfocus getwindowname
vous dirait son nom.
essayez d’utiliser la bibliothèque wnck puis utilisez ce code:
import wnck import gtk while True: if __name__ == '__main__': screen = wnck.screen_get_default() screen.force_update() while True: while gtk.events_pending(): gtk.main_iteration() #time.sleep(0.5) print screen.get_active_window().get_name()
Eh bien, si vous pouvez faire un ping vers le shell:
xdpyinfo | grep focus
Devrait marcher.
Edit: Pour une sortie légèrement plus propre, essayez ceci:
xdpyinfo | grep -Eo 'window 0x[^,]+' | cut -d" " -f2
De info xtool:
getactivewindow Output the current active window. This command is often more reliable than getwindowfocus. The result is saved to the window stack. See "WINDOW STACK" for more details.
C’est ce que j’utilise pour obtenir le titre. (Je un sur 10.04)
xwininfo -id "$(xdotool getactivewindow)" |sed -n \ "2s/^xwininfo: Window id: \(0x[[:xdigit:]]\+\) \x22\(.*\)\x22$/\2/p"