Представлен (https://drewdevault.com//2019/03/11/Sway-1.0-released.html) первый стабильный релиз композитного менеджера Sway 1.0 (https://swaywm.org/), построенного с использованием протокола Wayland и полностью совместимого с мозаичным оконным менеджером i3 (https://i3wm.org/) и панелью i3bar (https://i3wm.org/i3bar/). Код проекта написан на языке Си и распространяется (https://github.com/swaywm/sway) под лицензией 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 (https://github.com/swaywm/swayidle) - фоновый процесс с реализацией протокола KDE idle, применяемого для отслеживания активности пользователя и выполнения действий во время неактивности (например, установки статуса "отсутствует" в чате, отключения монитора, включения энергосберегающих режимов);
- swaylock (https://github.com/swaywm/swaylock) - хранитель экрана;
- mako (https://github.com/emersion/mako) - менеджер уведомлений;
- grim (https://github.com/emersion/grim) - инструмент для создания скриншотов;
- slurp (https://github.com/emersion/slurp) - инструмент для выделения области на экране;
- wf-recorder (https://github.com/ammen99/wf-recorder) - инструмент для захвата видео;
- waybar (https://github.com/Alexays/Waybar) - альтернативная панель приложений;
- virtboard (https://source.puri.sm/Librem5/virtboard) - экранная клавиатура;
- wl-clipboard (https://github.com/bugaevc/wl-clipboard) - замена xclip для работы с буфером обмена;
- wallutils (https://github.com/xyproto/wallutils) - менеджер обоев рабочего стола.
Sway развивается как модульный проект, построенный поверх библиотеки wlroots (https://github.com/swaywm/wlroots), в которую вынесены все базовые примитивы для организации работы композитного менеджера. В том числе wlroots включает бэкенды для
абстрагирования доступа к экрану, устройствам ввода, отрисовки без прямого обращения к OpenGL, взаимодействию с KMS/DRM, libinput, Wayland и X11 (предоставляется прослойка для запуска X11-приложений на базе Xwayland). Помимо Sway библиотека wlroots активно используется и в других проектах (https://github.com/swaywm/wlroots/wiki/Projects-which-use-wl...), включая Librem5 (https://developer.puri.sm/) и Cage (https://github.com/Hjdskes/cage). Кроме Си/С++ разработаны биндинги для Scheme, Common Lisp, Go, Haskell, OCaml, Python и Rust.
Среди планов по дальнейшему развитию Sway упоминается улучшение поддержки расширенных систем ввода, предоставление средств для людей с ограниченными возможностями (экранный ридер, контрастный режим, инструмент с лупой), поддержка протокола xdg-portal, использование мультимедийного сервера pipewire (https://www.opennet.me/opennews/art.shtml?num=47231) для захвата экрана, улучшение поддержки сенсорных экранов для использования на Librem 5 и postmarketOS, улучшение поддержки графических планшетов и дополнительного оборудования, поддержка изолированного запуска и расширенные функции для обеспечения безопасности.
URL: https://drewdevault.com//2019/03/11/Sway-1.0-released.html
Новость: https://www.opennet.me/opennews/art.shtml?num=50296