如何以十六进制形式获取焦点(活动)窗口的窗口 ID?
答案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 是活动窗口的十六进制,在我的情况下是终端。
为了确保万无一失,我们将其转换为十进制:
$ xdotool getactivewindow
123731974
现在从十进制转换为十六进制:
$ printf 0x%x 123731974
0x7600006
一样的。
答案2
给您 3 秒的时间来更改窗口焦点,
然后打印十六进制 PID:
~$ sleep 3; printf 0x%x $(xdotool getactivewindow getwindowpid)
答案3
使用 printf 将十进制转换为十六进制。例如,要以十六进制获取活动窗口的窗口 ID,请使用
xdotool getactivewindow | xargs -I{} printf '%x\n' {}