|
После почти года разработки опубликован релиз композитного менеджера Sway 1.12, построенного с использованием протокола Wayland и совместимого с мозаичным оконным менеджером i3 и панелью i3bar. Код проекта написан на языке Си и распространяется под лицензией MIT. Проект нацелен на использование в Linux и FreeBSD.
Sway позволяет использовать логическое размещение окон (оконный менеджер динамически выбирает позицию и размер окна, учитывая другие открытые окна и не допуская перекрытия окон), вместо традиционного пространственного позицинирования (пользователь выбирает произвольное место и размер окна с возможным перекрытием окон). Окна располагаются, образуя сетку, оптимально использующую экранное пространство и позволяющую быстро манипулировать окнами только при помощи клавиатуры. Совместимость с i3 обеспечена на уровне команд, файлов конфигурации и IPC, что позволяет использовать Sway в качестве прозрачной замены i3, использующей Wayland вместо X11.
Для обустройства полноценного пользовательского окружения предлагаются сопутствующие компоненты: swayidle (фоновый процесс с реализацией ждущего режима), swaylock (хранитель экрана), mako (менеджер уведомлений), grim (создание скриншотов), slurp (выделение области на экране), wf-recorder (захват видео), waybar (панель приложений), virtboard (экранная клавиатура), wl-clipboard (работа с буфером обмена), wallutils (управление обоями рабочего стола).
Sway развивается как модульный проект, построенный поверх библиотеки wlroots, в которую вынесены все базовые примитивы для организации работы композитного менеджера. Wlroots включает бэкенды для
абстрагирования доступа к экрану, устройствам ввода, отрисовки без прямого обращения к OpenGL, взаимодействию с KMS/DRM, libinput, Wayland и X11 (предоставляется прослойка для запуска X11-приложений на базе Xwayland). Помимо Sway библиотека wlroots активно используется и в других проектах. Кроме поддержки языков Си/С++, предоставляются обвязки для языков Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python и Rust.
В новом выпуске:
- Добавлена возможность захвата отдельных окон.
- Реализована поддержка вывода в расширенном динамическом диапазоне яркости HDR10 при использовании отрисовки на базе API Vulkan.
- Добавлена поддержка Wayland-протоколов:
- color-management-v1 для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range).
- color-representation-v1 для определение цветового представления Wayland-поверхности.
- xdg-toplevel-tag-v1 для прикрепления Wayland-клиентами тегов к поверхностями верхнего уровня, которые композитный сервер может использовать для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
- ext-workspace-v1 для создания панелей или индикаторов, выводящих список доступных виртуальных рабочих столов и позволяющих переключаться между ними.
- wl_fixes для решения проблем с другими программными интерфейсами базовых протоколов, которые не могут быть устранены собственными возможностями этих интерфейсов.
- Реализована опция "--device-primaries", при указании которой цветовой профиль формируется на основе данных, вызываемых монитором через EDID.
- Добавлена поддержка определения наличия кейпада, используя флаг LIBINPUT_SWITCH_KEYPAD_SLIDE в libinput.
- В файл конфигурации включены привязки специальных мультимедийных клавиш (приостановить, продолжить воспроизведение, следующая композиция и т.п.) для управления воспроизведением мультимедийного содержимого при помощи утилиты playerctl.
- Цветовой профиль вывода srgb переведён на использование кусочной (piece-wise) передаточной функции sRGB вместо gamma 2.2 (для gamma 2.2 следует использовать отдельный профиль gamma22, который применяется по умолчанию).
- Запуск в системах с неподдерживаемыми GPU (например, при использовании проприетарных драйверов NVIDIA), теперь приводит к выводу предупреждения, а не к завершению работы с ошибкой. Предупреждение можно отключить при помощи флага "--unsupported-gpu" или переменной окружения SWAY_UNSUPPORTED_GPU.
- Добавлена официальная поддержка использования дисплейных менеджеров для запуска Sway.
- Задействованы новые возможности библиотеки wlroots 0.20. Среди изменений в новой версии wlroots: Поддержка определения цветового представления Wayland-поверхности, управления цветом и использования HDR при помощи протоколов color-representation-v1 и color-management-v1. Поддержка Wayland-протоколов cursor-shape-v1 для настройки внешнего вида курсора,
ext-workspace-v1 для использования концепции виртуальных рабочих столов и xdg-toplevel-tag-v1 для идентификации окон/поверхностей через привязку тегов.

|