Friday, 6 April 2007

Утилита xmond

Для разработчиков графического интерфейса под X сервер (X11, X.org) может быть полезна, а некоторым, может быть даже жизненно необходима такая утилита, как xmond.

Функционально xmond является аналогом Spy++, который широко используется программистами под Windows.

У xmond есть графический фронтенд - xmonui.

Утилита является "прослойкой" между X клиентом и X сервером.

xmond не привязана к конкретной машине, вы можете запустить xmond на одной машине, а отображать окна на другой. Выглядит это так.

                                ----------
| xmonui |
----------
|
v
------------ ----------
| клиент 1 |<------->| |
------------ | | ----------
: | xmond |<----->| сервер |
: | | ----------
------------ | |
| клиент n |<------->| |
------------ ----------
|
v
монитор с консолью, куда
направляется стандартный вывод

Рис. 1

Как видно из рисунка 1, информация с клиента 1( и возможных дополнительных клиентов) пересылается утилите xmond. Утилита, в зависимости от настроек (которые могут быть заданы через графический интерфейс) отправляет отчёт в консоль, откуда она была запущена. И направляет полученный от клиентов ввод на указанный при запуске дисплей (в нашем случае синоним X сервера).

Простейшая команда запуска в BASH выглядит следующим образом

<приглашение>$ xmonui | xmond
<приглашение>$DISPLAY=:1 xlogo

Этот случай удобен для отладки приложения локально (заметьте, что по умолчанию, xmond исаользует дисплей :1 ).

Более сложный вариант использования:

<приглашение>$ xmonui -display my_favorite_host:0 | xmond -server another_host:0 -port 16
<приглашение>$ DISPLAY=:16 xlogo

В этом случае, xmond "слушает" всё что попадает на шестнадцатый дисплей и перенаправляет информацию на нулевой дисплей машины another_host. Причём, графический интерфейс утилиты находится на нулевом дисплее машины my_favorite_host.

Где найти и как собрать
Скачать xmond можно, например, здесь.
Там же находятся рекомендации по сборке.

Важный постскриптум:
При удалённой отладке, не забывайте разрешать доступ к дисплею
<приглашение>$ xhost +

No comments: