Как получить точную информацию о окне в Linux? Я знаю, что я могу использовать wmctrl
для получения размера окна, но фактический размер окна может варьироваться в зависимости от оформления окна. Мне нужна следующая информация и методы:
Какой был бы лучший способ сделать это? Я заинтересован в работе с Python, поэтому было бы предпочтительным что-то с модулем python.
Спасибо заранее!
Лучший способ - напрямую использовать X11/xlib (Документация: http://tronche.com/gui/x/xlib/)
Начиная с Root, вы можете пройти через дерево через XQueryTree() и получить атрибуты окна с помощью XGetWindowAttributes()/XGetGeometry().
Хорошо, это C-библиотека, но есть также порт Python: http://python-xlib.sourceforge.net/?page=documentation
Root-Window (your Desktop) - Top-Level-Window (window with Deco) - Child windows (may be part of the decoration or content area etc.) - Buttons etc
Этот подход не всегда работает, например, когда Compiz включен, Compiz рисует декорацию окна в обход X11 (но я не уверен в этом)