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

时间:2013-03-26 13:56:23

标签: java linux gnome

免责声明:我知道此主题有一个非常相似的question

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

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

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

更新: 如果我能在z顺序改变时得到通知/回调,那将是完美的。

1 个答案:

答案 0 :(得分:6)

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

xprop -root | grep '_NET_CLIENT_LIST_STACKING(WINDOW)'

输出应如下所示:

_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x2000003, 0x4000004,
0x1c00004, 0x1c00030, 0x1c00033, 0x2e00004

稍后您可以通过以下方式获取有关特定窗口的更多信息:

xprop -id <id>

xwininfo -id <id>