How to get the list of open windows from xserver

Anyone got an idea how to get from an Xserver the list of all open windows?


Solution 1:

From the CLI you can use

xwininfo -tree -root

If you need to do this within your own code then you need to use the XQueryTree function from the Xlib library.

Solution 2:

If your window manager implements EWMH specification, you can also take a look at the _NET_CLIENT_LIST value of the root window. This is set by most modern window managers:

xprop -root|grep ^_NET_CLIENT_LIST

That value can easily be obtained programmatically, see your Xlib documentation!