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

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

フォーカス(アクティブ)ウィンドウのウィンドウ ID を 16 進数で取得するにはどうすればよいでしょうか?

答え1

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

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

それは同じだ。

答え2

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

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

答え3

10進数を16進数に変換するにはprintfを使用します。例えば、アクティブウィンドウのウィンドウIDを16進数で取得するには、

xdotool getactivewindow | xargs -I{} printf '%x\n' {}

関連情報