
フォーカス(アクティブ)ウィンドウのウィンドウ 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' {}