Не у всех клиентов может быть атом NET_WM_PID. Это стандарт EWMH. Проверить все ли клиенты поддерживают, можно wmctrl -lp. Для одного клиента можно через xprop посмотреть xprop _NET_WM_PID
Ищу надежный способ определять X Window ID по PID-у
Это невозможно делать надёжно, например это не получится сделать для glxgears для остальных подойдёт это wmctrl -lp
Отчего это вообще проблема?
Это тоже самое что текст заголовка окна, приложение его может менять в случайное время и ты будешь спрашивать надёжный способ получения имени заголовка окна, но есть быть не может.
$ for i in $(xdotool search --pid $(pgrep firefox)); do xdotool getwindowname $i; done
Firefox
Firefox
Firefox
Firefox
Firefox
Firefox
Firefox
Firefox
Open a new tab (Ctrl+T)
Firefox
Firefox
Ищу надежный способ определять X Window ID по PID-у — Desktop — Форум
Ищу надежный способ определять X Window ID по PID-у — Desktop — Форум — Mozilla Firefox
К сожалению wmctrl -l не для всех окон покажет их PID/WID а только для тех которые про это сообщают (не явно, но всё же), с отдельными случаями придётся пердохаться с сопоставлением заголовка (такое себе) пида, родительского пида, коммандной строки, обход proc в поисках родитель-дочка и так далее и то всё равно будут случаи когда это не сработает или сработает неточно.
А так да то что ты указал, а останые окна игнорить тупо. Это в иксах, а в вяленом ваще беда бедная с этим. Куцый он и ущербный
Управлять положением окна запускаемого мной приложения
вяленд считает это первоочередной опасностью, и по этому wine не работал, (не факт что работает), я для этого юзаю wlroots но в эталонный вяленд это не проникнет, ибо политика партии так велит
наверно думают: своим окошком ввод пароля в другой программе перекроешь, а это важный функционал для обеспечения комфортной работы, вспомни gimp с его обилием окошек