IT-словарь › Программирование › xdg-shell

xdg-shell

Программирование Svenska → Обновлено: 2026-10-18

Протокол Wayland, превращающий поверхность в настоящее окно — с заголовком, разворачиванием, полноэкранным режимом, согласованием размера и всплывающими меню — вместо скудного wl_shell из ядра протокола.

Ядро Wayland знает лишь, что такое поверхность: буфер пикселей. Будет ли у неё заголовок, можно ли её свернуть и где она окажется на экране, решает расширение, а первая попытка, wl_shell в Wayland 1.0 (2012), едва покрывала нужды самого Weston. Когда около 2013 года GNOME и KDE начали строить поддержку Wayland, xdg_shell спроектировали заново; среди авторов были Jasper St. Pierre, Rafael Antognolli и Kristian Høgsberg. Он прошёл через серию нестабильных версий и стал стабильным в wayland-protocols в конце 2017 года. Имя несёт привычный префикс xdg от freedesktop.org, а «shell» означает оболочку рабочего стола, а не командную строку.

Протокол предлагает три объекта. xdg_wm_base — глобальная точка входа композитора, xdg_surface — общая основа, а затем клиент выбирает роль: xdg_toplevel для окна приложения с app_id, заголовком, минимальным и максимальным размером, разворачиванием, полноэкранным режимом, сворачиванием и интерактивным перемещением или изменением размера, либо xdg_popup для меню и подсказок, позиционируемых относительно родителя через xdg_positioner. Ключевая идея — рукопожатие: композитор предлагает размер и состояние событием configure, клиент отвечает ack_configure и фиксирует подходящий буфер, так что окно никогда не рисуется в наполовину применённом состоянии. Аналог в X — ICCCM плюс EWMH: разбросанные по свойствам окна и вовсе без рукопожатия.

← Назад к словарю