Проект Denial развивает открытый композитный сервер на базе протокола Wayland, примечательный встраиванием движка построения пользовательского интерфейса на базе фреймворка Flutter. В отличие от традиционных решений, в которых Flutter-приложения запускаются поверх оконного менеджера, встраивание Flutter в композитный сервер позволило напрямую задействовать его для отрисовки всех элементов пользовательского окружения, создания анимации и компоновки окон. Проект находится на стадии публичного альфа-тестирования. Код написан на языках Dart и Rust, и распространяется под лицензией GPLv3+. При разработке задействован AI-ассистент OpenAI Codex.
Низкоуровневая часть композитного сервера написана на языке Rust с использованием библиотеки Smithay, и отвечает за обработку протоколов Wayland, управление состояниями клиентских окон, взаимодействие с устройствами ввода через libinput, управление устройствами вывода (DRM/KMS), переключение фокуса и управления ресурсами. Пользовательская оболочка написана на языке Dart и использует Flutter для управления раскладкой окон, формирования панелей, управления жестами, навигации и визуальных эффектов.
Кадровые буферы Wayland-приложений импортируются как внешние GPU-текстуры через расширение "EGL_EXT_image_dma_buf_import", что исключает копирование данных между CPU и GPU. Сцена, включающая элементы оболочки на базе Flutter и текстуры запущенных программ, отрисовываются напрямую в GBM-буферы (Generic Buffer Management) и выводятся на экран через…
Реали…