Linux:如何获取所有可见窗口的列表

Ada*_*ała 5 java linux gnome

免责声明:我知道这个话题有一个非常相似的问题.

我试图得到NoozNooz42 在这里描述的完全相同的结果.但是mdma的答案并不适合我的需要,因为我有兴趣在linux上做同样的事情.如果重要的话,最好是侏儒.所以在这里使用JNA和user32库不是一个选择(或者是吗?).

任何建议都会很棒,我几乎找不到关于这个主题的任何内容.

PS我发现的唯一的东西是wmctrl命令(我最终可以在java中调用和解析),它列出了窗口,但没有给我任何关于z顺序的信息.

更新:如果我能在z顺序发生变化时收到通知/回调,那将是完美的.

Jar*_*zew 8

使用xprop,它显示窗口属性.z顺序中的窗口列表_NET_CLIENT_LIST_STACKING位于根窗口的属性中:

xprop -root | grep '_NET_CLIENT_LIST_STACKING(WINDOW)'
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x2000003, 0x4000004,
0x1c00004, 0x1c00030, 0x1c00033, 0x2e00004
Run Code Online (Sandbox Code Playgroud)

稍后您可以获得有关特定窗口的更多信息:

xprop -id <id>
Run Code Online (Sandbox Code Playgroud)

要么

xwininfo -id <id>
Run Code Online (Sandbox Code Playgroud)

  • xprop -root _NET_CLIENT_LIST_STACKING`过滤时不使用grep。 (2认同)