Дата публикации:Sun, 15 Mar 2026 22:35:08 +0300
Представлен релиз композитного менеджера River 0.4.0, который в отличие от других композитных менеджеров на базе протокола Wayland использует модульную архитектуру с выделением оконного менеджера в отдельную программу. В River оконные менеджеры являются подключаемыми и пользователь может выбирать их на свой вкус. Код проекта написан на языке Zig и распространяется под лицензией GPLv3.
River может выполняться как во вложенных сеансах, запущенных поверх других X11- и Wayland-серверов, так и без прослоек, используя для вывода драйверы KMS/DRM. Для разделения функциональности композитного и оконного менеджеров проектом развивается Wayland-протокол river-window-management-v1. В оконный менеджер выносятся такие функции, как декорирование окон, управление фокусом ввода, указателем, клавиатурными комбинациями, позицией и размером окон.
Возможна замена оконных менеджеров на лету, без прерывания сеанса. На выбор предлагается 16 оконных менеджеров, совместимых с River, среди которых имеются оконные менеджеры мозаичные в стиле DWM или xmonad, Emacs-подобные в стиле EXWM, классические стековые и на основе прокручиваемой ленты. Для запуска X11-приложений поддерживается использование Xwayland.
Среди причин разделения композитного и оконного менеджеров упоминается: снижение порога для написания оконных менеджеров; возможность реализации оконных менеджеров на высокоуровневых языках со сборкой мусора, не влияющих на производительность композитного менеджера; возможность горячей замены оконных менеджеров без перезапуска композитного сервера и запущенных графических программ; упрощение проведения экспериментов, связанных с дизайном оконных менеджеров.
Из ограничений протокола river-window-management-v1 отмечается отсутствие функциональности, выходящей за рамки 2D-операций с рабочим столом, например, не поддерживается создание сложных эффектов и 3D-интерфейсов для систем виртуальной реальности. Эффекты пока ограничиваются простой анимацией, но в будущем более сложные эффекты планируют реализовать при помощи шейдеров.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64997

