获取十六进制而非十进制的活动窗口 ID

获取十六进制而非十进制的活动窗口 ID

如何以十六进制形式获取焦点(活动)窗口的窗口 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' {}

相关内容