Выпуск пользовательского окружения Sway 1.0, использующего Wayland
Представлен первый стабильный релиз композитного менеджера Sway 1.0, построенного с использованием протокола Wayland и полностью совместимого с мозаичным оконным менеджером i3 и панелью i3bar. Код проекта написан на языке Си и распространяется под лицензией MIT. Проект нацелен на использование в Linux и FreeBSD.
Совместимость с i3 обеспечена как на уровне команд, файлов конфигурации и IPC, что позволяет использовать Sway в качестве прозрачной замены i3, использующей Wayland вместо X11. Sway позволяет размещать окна на экране не пространственно, а логически. Окна располагаются, образуя сетку, оптимально использующую экранное пространство и позволяющую быстро манипулировать окнами только при помощи клавиатуры.
Среди расширенных возможностей, появившихся в новой версии отмечается поддержка Drag&drop, протокола xdg-shell, протоколов для захвата содержимого экрана и протокола для работы с буфером обмена (GTK primary selection). Имеется возможность копирования через буфер обмена сложного содержимого, такого как изображения, между Xwayland и Wayland. Для интеграции сторонних панелей, систем блокировки экрана и систем вывода уведомлений реализована поддержка протокола layer-shell. Стандартизированы методы декорирования окон на стороне клиента и сервера. Из ограничений упоминается отсутствие поддержки проприетарных драйверов NVIDIA - для работу следует использовать свободный драйвер Nouveau.
В качестве сопутствующих компонентов, которые могут применяться вместе с Sway для обустройства полноценного пользовательского окружения, называются:
- swayidle - фоновый процесс с реализацией протокола KDE idle, применяемого для отслеживания активности пользователя и выполнения действий во время неактивности (например, установки статуса "отсутствует" в чате, отключения монитора, включения энергосберегающих режимов);
- swaylock - хранитель экрана;
- mako - менеджер уведомлений;
- grim - инструмент для создания скриншотов;
- slurp - инструмент для выделения области на экране;
- wf-recorder - инструмент для захвата видео;
- waybar - альтернативная панель приложений;
- virtboard - экранная клавиатура;
- wl-clipboard - замена xclip для работы с буфером обмена;
- wallutils - менеджер обоев рабочего стола.
Sway развивается как модульный проект, построенный поверх библиотеки wlroots, в которую вынесены все базовые примитивы для организации работы композитного менеджера. В том числе wlroots включает бэкенды для абстрагирования доступа к экрану, устройствам ввода, рендеринга без прямого обращения к OpenGL, взаимодействию с KMS/DRM, libinput, Wayland и X11 (предоставляется прослойка для запуска X11-приложений на базе Xwayland). Помимо Sway библиотека wlroots активно используется и в других проектах, включая Librem5 и Cage. Кроме Си/С++ разработаны биндинги для Scheme, Common Lisp, Go, Haskell, OCaml, Python и Rust.
Среди планов на будущее упоминается улучшение поддержки расширенных система ввода, предоставление средств для людей с ограниченными возможностями (экранный ридер, контрастный режим, инструмент с лупой), поддержка протокола xdg-portal, использование мультимедийного сервера pipewire для захвата экрана, улучшение поддержки сенсорных экранов для использования на Librem 5 и postmarketOS, улучшенная поддержка графических планшетов и дополнительного оборудования, поддержка изолированного запуска и расширенных функций для обеспечения безопасности.