xdotool
puede hacer eso.
xdotool getactivewindow
Modifiqué ligeramente su solución para que funcione de manera más eficiente (pasa parámetros a xprop para que solo se devuelvan los datos que necesita). Además, no estoy seguro de que sea necesario almacenar en búfer la salida de xprop, así que lo eliminé. También debería corregir el retorno de "Ventana activa no encontrada" si por alguna razón no puede encontrar la ventana activa.
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"
Puede obtener el título de la ventana activa con xdotool
:
$ xdotool getactivewindow getwindowname