Installez xdotool , puis exécutez
xdotool getwindowfocus getwindowname
Cela donnera par ex. pour la page Web en cours ouverte dans Firefox :
linux - Detecting currently active window - Super User - Mozilla Firefox
C'est plus direct et n'utilise que xprop et cut :
xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) _NET_WM_NAME
Ces commandes ne sont qu'une extraction des propriétés de la fenêtre racine et de la fenêtre de l'application, mais à la demande de Lorenzo von Matterhorn :
-
Tout d'abord,
xprop -root 32x '\t$0' _NET_ACTIVE_WINDOWExtrait le
_NET_ACTIVE_WINDOWpropriété de la racine, qui vous donne le XID de la fenêtre active. Le32x '\t$0'ditxproppour formater la sortie d'une manière quicutpeut facilement analyser plus tard. -
Ensuite, extrayez uniquement le XID de la sortie avec
cut -f 2 -
Ensuite, passez le XID en tant que paramètre à
xprop -id XID _NET_WM_NAME
Ce qui imprime le nom de cette fenêtre.
C'est le cas, mais pas de réponse courte ni de solution.
$ wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')
résultat :
0x03800004 0 16459 xxxxxxxxxx /bin/bash
En cours d'utilisation :
$ for x in $(seq 1 10); do sleep 5; wmctrl -lp | grep $(xprop -root | \
grep _NET_ACTIVE_WINDOW | head -1 | awk '{print $5}' | sed 's/,//' | \
sed 's/^0x/0x0/'); done
0x03800004 0 16459 xxxxxxxxxx /bin/bash
0x020000a4 0 13524 xxxxxxxxxx linux - Detecting currently active window - Super User - Mozilla Firefox (Build 20120129142219)