Чтобы узнать идентификатор окна, попробуйте:
xprop -root|grep "_NET_CLIENT_LIST_STACKING(WINDOW): window id"
Свойства окна :
_NET_CLIENT_LIST_STACKING имеет порядок размещения снизу вверх
Один из способов сделать это - проанализировать выходные данные этой команды в вашем приложении.Самое верхнее окно является последним в списке.
РЕДАКТИРОВАТЬ:
Если вам нужно получить идентификатор процесса из идентификатора окна, есть небольшое приложение здесь , который показывает, как сделать этот трюк.Я успешно скомпилировал его с:
g++ win_procid.cpp -o win_procid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libgtop-2.0 -lXtst -lgtop-2.0
Мне пришлось установить пакет libgtop2-dev , потому что у меня его не было в моей системе.