xdotool
をインストール 、次に実行
xdotool getwindowfocus getwindowname
それは例えば与えるでしょう。 Firefox で開いている現在の Web ページ:
linux - Detecting currently active window - Super User - Mozilla Firefox
これはより直接的で、xprop
のみを使用します と cut
:
xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) _NET_WM_NAME
これらのコマンドは、ルート ウィンドウとアプリケーション ウィンドウからのプロパティの抽出にすぎませんが、Lorenzo von Matterhorn の要求により:
-
まず、
xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW
_NET_ACTIVE_WINDOW
を抽出します プロパティをルートから取得すると、アクティブなウィンドウの XID が得られます。32x '\t$0'
xprop
に伝えますcut
の方法で出力をフォーマットする 後で簡単に解析できます。 -
次に、出力から
cut -f 2
で XID だけを抽出します。 -
次に、XID をパラメーターとして
に渡します。xprop -id XID _NET_WM_NAME
そのウィンドウの名前を出力します。
ありますが、短い答えや解決策はありません。
$ wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')
結果:
0x03800004 0 16459 xxxxxxxxxx /bin/bash
使用中:
$ 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)