Выпуск пользовательского окружения Sway 1.8, использующего Wayland

После 11 месяцев разработки опубликован релиз композитного менеджера Sway 1.8, построенного с использованием протокола 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.


В новом выпуске:

  • Реализована новая команда “bindgesture” для прикрепления действий к жестам на тачпаде.
  • Процесс блокировки экрана (swaylock) переведён на использование
    Wayland-протокола ext-session-lock-v1, позволившего увеличить надёжность и безопасность блокировки сеанса.
  • Добавлена новая команда “output unplug” для удаления виртуальных устройств вывода.
  • Добавлена поддержка событий прокрутки колеса мыши с высоким разрешением.
  • Обеспечена поддержка настройки “disable while trackpointing” в библиотеке libinput для управления отключением трекпада во время использования тензометрического джойстика (трекпоинт на ноутбуках Thinkpad).
  • Для повышения надёжности определения рабочей области при запуске новых клиентских приложений задействован протокол xdg-activation-v1.
  • В библиотеке wlroots улучшена реализация системы рендеринга при помощи графического API Vulkan.
  • Для оптимизации процесса планирования запуска задач на платформе Linux реализована возможность выставления полномочий CAP_SYS_NICE.
  • Прекращена поддержка работы с флагом SUID root.
  • Объявлена устаревшей команда “output dpms”, вместо которой теперь используется команда “output power”
  • Для работы с регулярными выражениями вместо библиотеке pcre теперь используется pcre2.

Release. Ссылка here.