xdotool
peut le faire.
xdotool getactivewindow
J'ai légèrement modifié votre solution pour qu'elle fonctionne plus efficacement (elle transmet des paramètres à xprop afin que seules les données dont elle a besoin soient renvoyées). De plus, je ne suis pas sûr qu'il soit nécessaire de mettre en mémoire tampon la sortie de xprop, donc je l'ai retiré. Il devrait également corriger le retour "Fenêtre active introuvable" si, pour une raison quelconque, il ne trouve pas la fenêtre active.
def get_active_window_title(self):
root = Popen(['xprop', '-root', '_NET_ACTIVE_WINDOW'], stdout=PIPE)
for line in root.stdout:
m = re.search('^_NET_ACTIVE_WINDOW.* ([\w]+)$', line)
if m != None:
id_ = m.group(1)
id_w = Popen(['xprop', '-id', id_, 'WM_NAME'], stdout=PIPE)
break
if id_w != None:
for line in id_w.stdout:
match = re.match("WM_NAME\(\w+\) = (?P<name>.+)$", line)
if match != None:
return match.group("name")
return "Active window not found"
Vous pouvez obtenir le titre de la fenêtre active avec xdotool
:
$ xdotool getactivewindow getwindowname