Кто-нибудь понял, как получить от Xserver список всех открытых окон?
Из CLI вы можете использовать
xwininfo -tree -root
Если вам нужно сделать это в своем собственном коде, вам нужно использовать функцию XQueryTree из библиотеки Xlib.
XQueryTree
Xlib
Вы также можете взглянуть на значение _NET_CLIENT_LIST корневого окна. Это устанавливается большинством современных оконных менеджеров:
_NET_CLIENT_LIST
xprop -root|grep ^_NET_CLIENT_LIST
Это значение можно легко получить программным способом, см. Документацию Xlib!