После почти года разработки опубликован релиз композитного менеджера Sway 1.12, построенного с использованием протокола Wayland и совместимого с мозаичным оконным менеджером i3 и панелью i3bar. Код проекта написан на языке Си и распространяется под лицензией MIT. Проект нацелен на использование в Linux e FreeBSD.
Sway позволяет использовать логическое размещение окон (оконный менеджер динамически выбирает позицию и размер окна, учитывая другие открытые окна и не допуская перекрытия окон), вместо традиционного пространственного позицинирования (пользователь выбирает произвольное место и размер окна с возможным перекрытием окон). Окна располагаются, образуя сетку, оптимально использующую экранное пространство и позволяющую быстро манипулировать окнами только при помощи клавиатуры. Совместимость с i3 обеспечена на уровне команд, файлов конфигурации и IPC, что позволяет использовать Sway в качестве прозрачной замены i3, использующей Wayland вместо X11.
Para criar um ambiente de usuário completo, são oferecidos os seguintes componentes de acompanhamento: swayidle (processo em segundo plano com a implementação de um modo de espera), swaylock (protetor de tela), mako (gerenciador de notificação), grim (criação de capturas de tela), slurp (seleção uma área na tela), wf-recorder (captura de vídeo), waybar (barra de aplicativos), virtboard (teclado na tela), wl-clipboard (trabalhar com a área de transferência), wallutils (gerenciar papel de parede da área de trabalho).
Sway развивается как модульный проект, построенный поверх библиотеки wlroots, в которую вынесены все базовые примитивы для организации работы композитного менеджера. Wlroots включает бэкенды для
абстрагирования доступа к экрану, устройствам ввода, отрисовки без прямого обращения к OpenGL, взаимодействию с KMS/DRM, libinput, Wayland и X11 (предоставляется прослойка для запуска X11-приложений на базе Xwayland). Помимо Sway библиотека wlroots активно используется и в других проектах. Кроме поддержки языков Си/С++, предоставляются обвязки для языков Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python и Rust.
Na nova versão:
- Добавлена возможность захвата отдельных окон.
- Реализована поддержка вывода в расширенном динамическом диапазоне яркости 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 для идентификации окон/поверхностей через привязку тегов.

Fonte: opennet.ru
