| |
Модуль - отдельная программа выполняемая как отдельный Unix-процесс но передающая в fvwm команды на выполнение. В последующих реализациях ожидаются средства к модулям, позволяющие выделять оконную информацию из fvwm. Пользователи смогут создавать свои собственные модули с любыми жуткими или эксцентричными манипуляциями без непосредственного воздействия на целостность fvwm.
Модули ДОЛЖНЫ разделяться fvwm, поэтому возможна установка двух каналов для связи fvwm с модулями. Каналы для модуля всегда могут быть открыты при его запуске, причем файл описаний каналов указывается как аргумент командной строки.
Модули могут быть разделены при инициализации fvwm через опцию Module, либо в любой момент X-сессии с помощью встроенной формы Module. Они могут существовать всю X-сессию, но могут так же завершаться по выполнении какой-либо задачи.
Перед окончанием работы, fvwm закрывает каналы связи с активными модулями и ожидает от модулей подтверждающего сообщения SIGCHLD, означающего что модуль обнаружил закрытие канала, после чего fvwm заканчивает работу. Если какой-либо модуль не может определить закрытие канала, fvwm ожидает подтверждения примерно 30 секунд и в любом случае заканчивает свою работу.
Число одновременно выполняемых модулей ограничено максимальным числом одновременно открытых файлов, что зависит от операционной системы и обычно составляет 60 - 256 файлов.
Модули просто передают текстовые команды на встроенный в fvwm интерпретатор команд. Команды имеют такой же формат как и команды работы с мышью в файле начальных установок .fvwmrc. Так же передается вспомогательная информация, что продемонстрировано в модуле-примере GoodStaff. Модуль GoodStaff имеет собственную документацию для man page.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |