以十六进制而不是十进制获取活动窗口 ID

Joh*_*ino 6 wmctrl

如何在十六进制中获取焦点(活动)窗口的窗口 ID?

May*_*hux 5

试试这个黑客:

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

例如:

$ 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
Run Code Online (Sandbox Code Playgroud)

0x07600006 是活动窗口的十六进制,在我的例子中是终端。

为了确保让我们以十进制形式获取它:

$ xdotool getactivewindow 
123731974
Run Code Online (Sandbox Code Playgroud)

现在从十进制转换为十六进制:

$ printf 0x%x 123731974
0x7600006
Run Code Online (Sandbox Code Playgroud)

一样的。