Gnome 2デスクトップで現在アクティブな(フォーカスされた)ウィンドウ情報を取得するためのソリューションが必要です。私は主にそのウィンドウとウィンドウタイトルを実行しているプロセスに興味があります。
出来ますか?
解決策:
ウィンドウのタイトルを取得しています:
xwininfo -root -children | grep $(printf '%x\n' $(xdotool getwindowfocus)) | grep -oEi '"[^"]+"' | head -1
プロセス名を取得しています:
ps -e | grep $(xdotool getwindowpid $(xdotool getwindowfocus)) | grep -v grep | awk '{print $4}'
または:
cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm
それはこれと同じくらい簡単です:
xdotool getactivewindow getwindowname
幸運を祈ります。
プロセス名を取得するために、OPのソリューションよりもシンプル(IMO)(つまり、ps
、grep
およびawk
なし):
cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm
または、行末が必要な場合:
echo $(cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm)
Xwininfoコマンド http://www.xfree86.org/4.2.0/xwininfo.1.html を試してください。これにより、ウィンドウのタイトルが返され、プロセスに関する限り...
XはこれにIDを割り当て、ウィンドウの親PIDになり、デフォルトで非表示になるため、GnomeがNET_WM_PIDをサポートしていると想定すると、2001年のこのパッチがサポートしているように、 http:// mail。 gnome.org/archives/gtk-devel-list/2001-October/msg00238.html の場合、この投稿 http://www.mail-archive.com/devel@xfree86。 org/msg05809.html 、ここで作者はウィンドウIDをPIDに変換する短いCプログラムを書きます。
私は質問が古いことを知っていますが、 xprop
もここで言及する必要があると思います。 Xですぐに利用できます。インタラクティブな方法で使用できます。
xprop
と入力し、マウスカーソルを使用して目的のウィンドウを選択してから、WM_NAME
_はウィンドウのタイトルを示し、__NET_WM_PID
_はpidを示しますまたは、_-id
_または_-name
_オプションを渡すことにより、必要なウィンドウをxprop
に直接伝えることができます。 awk
を使用すると、アクティブなウィンドウIDを取得して、それをxprop
にそのように渡すことができます( here から取得):
_xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}")
_
最後に、Your Favorite Tool™(grep
またはsed
など)を使用して、必要な値をgrep-outできます。たとえば、pid
の場合、上記のコマンドの出力はsed
にパイプ処理できます。sed -nE 's/^_NET_WM_PID.*= ([0-9]+)/\1/p'