Как получить точную информацию об окне (размеры и т. Д.) В Linux (X)?

1

Как получить точную информацию о окне в Linux? Я знаю, что я могу использовать wmctrl для получения размера окна, но фактический размер окна может варьироваться в зависимости от оформления окна. Мне нужна следующая информация и методы:

  • точные размеры окна
  • точное доступное пространство экрана (за исключением панелей типа gnome-panel)
  • возможность установки окна определенного размера, включая декорации

Какой был бы лучший способ сделать это? Я заинтересован в работе с Python, поэтому было бы предпочтительным что-то с модулем python.

Спасибо заранее!

  • 0
    Какую библиотеку окон используют?
  • 0
    Я не уверен, что именно ты спрашиваешь, @Mark. Я использую Ubuntu 10.04 со средой рабочего стола Gnome и Metacity в качестве моего оконного менеджера.
Показать ещё 4 комментария
Теги:

1 ответ

1
Лучший ответ

Лучший способ - напрямую использовать X11/xlib (Документация: http://tronche.com/gui/x/xlib/)

Начиная с Root, вы можете пройти через дерево через XQueryTree() и получить атрибуты окна с помощью XGetWindowAttributes()/XGetGeometry().

Хорошо, это C-библиотека, но есть также порт Python: http://python-xlib.sourceforge.net/?page=documentation

  • 0
    Как X11 узнает размер оконных украшений?
  • 0
    Поскольку окна организованы в виде дерева, и если вы вычтете размер дочернего окна из его родительского окна, вы получите размер украшений. Часто такие вещи, как кнопки закрытия в отделке, также являются X11-Windows. 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 (но я не уверен в этом)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню