Композитор Wayland для Xfce: в версии 4.21.1 доработали окна и ввод

2026-08-11 60 комментарии
Второй предварительный выпуск композитора Wayland для рабочего окружения Xfce вышел 10 августа 2026 года, менее чем через два месяца после первого. В 4.21.1 появились развёртывание окна по осям и переключение между окнами одного приложения, а также большой набор правок в передаче фокуса и обработке ввода

Второй предварительный выпуск xfwl4, композитора Wayland для рабочего окружения Xfce, вышел – менее чем через два месяца после первого. В версии 4.21.1 появились развёртывание окна по горизонтали и вертикали, переключение между окнами одного приложения и обработка зависших программ с трёхсекундным ожиданием ответа. Отдельный пласт правок пришёлся на передачу фокуса, порядок наложения окон и совместимость с X11. В ветке 4.21.1 закрыто 27 задач, причём в анонсе оговорено, что изменений в выпуске больше, чем отражено в трекере.

Развёртывание по осям и переключение между окнами одного приложения

После первого выпуска, вышедшего , композитор стал доступен широкому кругу тестировщиков, однако нескольких привычных по Xfce возможностей в нём не было. Часть из них закрыта в 4.21.1.

Композитор Wayland – программа, совмещающая функции дисплейного сервера и оконного менеджера. Приложения сами отрисовывают свои окна в отдельные буферы, а композитор объединяет их содержимое в итоговое изображение с учётом перекрытий и прозрачности.

Наиболее заметное дополнение – развёртывание окна по горизонтали и по вертикали. Появилось и переключение между окнами одного приложения либо окна-лидера приложения (application leader), для которого предусмотрены отдельные сочетания клавиш. В июньском выпуске работал только циклический перебор всех окон, перебора в пределах приложения не было.

Пишется xfwl4 с нуля на Rust поверх библиотеки Smithay, код xfwm4 при этом не используется. Работу над композитором проект Xfce оплачивает из пожертвований.

Сенсорный экран на выбранном мониторе и автоповтор клавиш

Сенсорный экран теперь привязывается к конкретному монитору, а для указательных устройств появились поворот и отражение. В перемещении и изменении размера окна с клавиатуры заработал автоповтор: при удержании клавиши операция повторяется, а не выполняется однократно.

Фокус, порядок окон и собственные декорации приложений

Основной объём исправлений пришёлся на управление окнами. Устранены проблемы, затрагивавшие:

  • передачу фокуса после сворачивания окна и после переключения рабочего места;
  • режим, в котором фокус переходит к окну под указателем мыши;
  • захват ввода всплывающими окнами;
  • поведение модальных диалогов;
  • порядок наложения окон;
  • связи между родительским и дочерним окнами;
  • возврат фокуса после закрытия меню окна.

Строже стали и правила, по которым определяется, какие окна допускают сворачивание и получение фокуса, а при изменении подсказок (hints) со стороны приложения набор доступных для окна операций пересчитывается. Точнее обрабатываются окна, рисующие декорации самостоятельно: кнопки серверных декораций скрываются там, где они неприменимы.

Декорации на стороне клиента (client-side decorations, CSD) – заголовок, рамка и кнопки окна, которые рисует само приложение. При декорациях на стороне сервера (SSD) их отрисовкой занимается композитор или оконный менеджер.

Совместимость с X11: WM_HINTS, подсказки Motif и override-redirect

Значки окон X11 читаются из WM_HINTS, учитываются также подсказки оконного менеджера Motif. Реализована обработка запросов X11 на восстановление окна из свёрнутого состояния. Ещё несколько исправлений затронули окна с флагом override-redirect, изменение порядка окон, обработку фокуса и удаление окон.

override-redirect – флаг окна X11, при котором оконный менеджер не оформляет окно и не управляет его размещением. Флаг применяется для выпадающих меню, всплывающих подсказок и подобных элементов интерфейса.

Сворачивание окон и три секунды на ответ зависшей программе

Окна, закреплённые на всех рабочих местах, сворачиваются и восстанавливаются одинаково на любом из них. Свёрнутое окно сохраняет сведения о том, на каком выводе оно находилось, а при восстановлении вместе с ним возвращаются дочерние окна – там, где это уместно.

Отдельно переработана реакция на зависшие программы. При запросе на закрытие окна XDG-клиенту отправляется ping, и, если ответа нет в течение трёх секунд, пользователю предлагается завершить приложение принудительно. Диалог о неотвечающем окне выводится только тогда, когда приложение всё ещё запущено.

Захват экрана через wlr-screencopy, значки и миниатюры окон

В реализации протокола захвата экрана wlr-screencopy исправлены отрисовка курсора, события damage, метки времени, смещения и переворот изображения, добавлена поддержка пиксельных форматов BGR.

Значки и миниатюры окон передаются в корректном размере, улучшено их масштабирование, исправлен разбор данных X11 из свойства _NET_WM_ICON. Внутри композитора используется единый формат ARGB32 с предумноженным альфа-каналом.

Параметр --session и сессионная шина D-Bus

Появился параметр --session, задающий команду, которая запускается при старте композитора. Если сессионная шина D-Bus в системе отсутствует, она поднимается автоматически и останавливается при завершении работы – но только в том случае, когда была запущена самим xfwl4.

Прочие правки затронули:

  • протокол блокировки сеанса Wayland и отрисовку экрана блокировки;
  • подавление сочетаний клавиш;
  • фокус и размещение всплывающих подсказок в layer-shell;
  • состояние серверных декораций;
  • восстановление состояния Num Lock;
  • состояние активации рабочего места.

Заключение

В 4.21.1 закрыта часть того, чего не хватало в июньской сборке: развёртывание по осям, переключение внутри приложения, предсказуемое поведение фокуса, реакция на зависшие окна. Статус проекта при этом не изменился – xfwl4 по-прежнему предварительный выпуск, и заменять им xfwm4 в повседневной работе в Xfce пока не предлагают.

Тем, кто собирает исходный код самостоятельно, стоит свериться с README: список зависимостей времени выполнения обновлён по сравнению с первым предварительным выпуском, и при более старых компонентах Xfce часть функций работать не будет.

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте