2014-09-28 2 views
1

Я использую FVWM2, который позволяет мне отправлять текущий X11 WindowID на любой скрипт, который мне нравится, через привязки оформления окна.Perl: Получение геометрии окна с помощью X11 WindowID

Так щелчок может выполнить программу CLI в следующем виде:

Баш # example.pl

В этом случае WindowID относится к уже существующему окну. Не тот, который генерируется example.pl.

Если example.pl a - утилита для захвата экрана, то для выполнения захвата понадобится строка геометрии X11 окна, идентифицированного. Я могу проанализировать эти данные из вывода xwininfo. Но это не переносимо.

Как получить геометрию X11 из WindowID, программно, на Perl?

ответ

2

Вы можете использовать X11::GuiTest, чтобы получить информацию об окнах X11.

В вашем случае, соответствующая команда будет GetWindowPos(windowID):

use strict; use warnings; 
use X11::GuiTest qw/GetWindowPos GetRootWindow/; 

... 

my ($x, $y, $width, $height, $borderWidth, $screen) = GetWindowPos(GetRootWindow()); 

$width и $height являются размеры окна, $borderWidth это граница на ней, и $screen является экран, что он включен.

Смежные вопросы