Anyone got an idea how to get from an Xserver the list of all open windows?
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.
XQueryTree
Xlib