Опубликован релиз композитного менеджера Sway 1.7, построенного с использованием протокола Wayland и полностью совместимого с мозаичным оконным менеджером i3 и панелью i3bar. Код проекта написан на языке Си и распространяется под лицензией MIT. Проект нацелен на использование в Linux и FreeBSD.
Совместимость с i3 обеспечена на уровне команд, файлов конфигурации и IPC, что позволяет использовать Sway в качестве прозрачной замены i3, использующей Wayland вместо X11. Sway позволяет размещать окна на экране не пространственно, а логически. Окна располагаются, образуя сетку, оптимально использующую экранное пространство и позволяющую быстро манипулировать окнами только при помощи клавиатуры.
Для обустройства полноценного пользовательского окружения предлагаются сопутствующие компоненты: swayidle (фоновый процесс с реализацией протокола KDE idle), swaylock (хранитель экрана), mako (менеджер уведомлений), grim (создание скриншотов), slurp (выделение области на экране), wf-recorder (захват видео), waybar (панель приложений), virtboard (экранная клавиатура), wl-clipboard (работа с буфером обмена), wallutils (управление обоями рабочего стола).
Sway развивается как модульный проект, построенный поверх библиотеки wlroots, в которую вынесены все базовые примитивы для организации работы композитного менеджера. Wlroots включает бэкенды для
абстрагирования доступа к экрану, устройствам ввода, отрисовки без прямого обращения к OpenGL, взаимодействию с KMS/DRM, libinput, Wayland и X11 (предоставляется прослойка для запуска X11-приложений на базе Xwayland). Помимо Sway библиотека wlroots активно используется и в других проектах, включая Librem5 и Cage. Кроме Си/С++ разработаны биндинги для Scheme, Common Lisp, Go, Haskell, OCaml, Python и Rust.
В новом выпуске:
- Предоставлена возможность перемещения вкладок мышью.
- Добавлена поддержка вывода на шлемы виртуальной реальности.
- Добавлена команда “output render_bit_depth” для включения для вывода режима композитинга с высокой глубиной цвета.
- Повышена надёжность и производительность вывода полноэкранных окон (при помощи dmabuf обеспечен прямой вывод без дополнительной буферизации).
- Задействован протокол xdg-activation-v1, позволяющий передать фокус между разными поверхностями первого уровня (например, при помощи xdg-activation одно приложение может переключить фокус на другое).
- Добавлена опция client.focused_tab_title для настройки цвета активной вкладки.
- Добавлена команда “output modeline” для вставления собственного режима DRM (Direct Rendering Manager).
- Добавлена команда “output dpms toggle” для упрощения гашения экрана из скриптов. Также добавлены команды “gaps toggle “, “smart_gaps inverse_outer” и “split none”.
- Удалена опция “–my-next-gpu-wont-be-nvidia”, вместо которой слудет использовать режим “–unsupported-gpu”. Проприетарные драйверы NVIDIA по-прежнему не поддерживаются.
- Определённый в настройках по умолчанию эмлуятор терминала заменён на foot.
- Предоставлена возможность отключения панели swaybar и диалогов swaynag во время сборки.
- Запрещено динамическое изменение высоты заголовка окна в зависимости от символов в тексте заголовка, заголовок теперь всегда имеет фиксированную высоту.