Installieren Sie xdotool
, dann ausführen
xdotool getwindowfocus getwindowname
Es wird z.B. für die aktuell in Firefox geöffnete Webseite:
linux - Detecting currently active window - Super User - Mozilla Firefox
Dies ist direkter und verwendet nur xprop
und cut
:
xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) _NET_WM_NAME
Diese Befehle sind nur eine Extraktion von Eigenschaften aus dem Stammfenster und dem Anwendungsfenster, aber auf Wunsch von Lorenzo von Matterhorn:
-
Erstens
xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW
Extrahiert die
_NET_ACTIVE_WINDOW
-Eigenschaft aus dem Stamm, die Ihnen die XID des aktiven Fensters gibt. Die32x '\t$0'
sagtxprop
um die Ausgabe so zu formatieren, dasscut
kann später leicht geparst werden. -
Extrahieren Sie dann nur die XID aus der Ausgabe mit
cut -f 2
-
Übergeben Sie dann die XID als Parameter an
xprop -id XID _NET_WM_NAME
Gibt den Namen dieses Fensters aus.
Es gibt, aber keine kurze Antwort oder Lösung.
$ wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')
Ergebnis:
0x03800004 0 16459 xxxxxxxxxx /bin/bash
Verwendet:
$ 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)