web-dev-qa-db-ja.com

10進数ではなく16進数でアクティブウィンドウIDを取得

Hexのfocus(active)ウィンドウのウィンドウIDを取得する方法は?

3

このハックを試してください:

wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
    awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')

例えば:

$ wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
>     awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')

0x07600006  0 19051  maythuxPC Gnome Terminal

0x07600006は、私の場合の端末であるアクティブウィンドウの16進数です。

確実に10進数で取得しましょう:

$ xdotool getactivewindow 
123731974

次に、10進数から16進数に変換します。

$ printf 0x%x 123731974
0x7600006

それは同じだ。

3
Maythux

ウィンドウのフォーカスを変更するための3秒の時間を与え、
その後、16進数のPIDを印刷します。

~$ sleep 3; printf 0x%x $(xdotool getactivewindow getwindowpid)
0
PatrickSteiner