Наличен е Wayland 1.26

След четири месеца разработка е представена стабилна версия на протокола, механизма за междупроцесно взаимодействие и библиотеките Wayland 1.26. Ветката 1.26 е обратно съвместима на ниво API и ABI с версиите 1.x и съдържа основно корекции на грешки и незначителни актуализации на протокола. Разработките на проекта се разпространяват под лицензия MIT. Референтен композитен сървър Weston, който предоставя код и работни примери за използване на Wayland в десктоп среди и вградени решения, се развива в рамките на отделен цикъл на разработка.

Основни промени в протокола:

  • Добавено е събитие wl_pointer.warp, чрез което могат да се получават уведомления за нова позиция на показалеца без обработка на събитието wl_pointer.motion, генерирано при активност от потребителя.
  • Добавен е запитване wl_fixes.ack_global_remove, предназначено за изпращане на композитния мениджър потвърждение, че клиентът е прекратил обработката на събитието, за да се избегне състезателно състояние при премахване на глобални събития. След получаване на потвърждението от всички клиенти, композитният мениджър може да премахне свързания с събитието обработчик от своя страна.
  • Добавена е функция wl_display_remove_socket_fd() за премахване на сокети, добавени преди това чрез извикване на wl_display_add_socket_fd().
  • В режим на отстраняване на грешки WAYLAND_DEBUG е осигурен лог с времето в формат «HH:MM:ss.xxxxxx», улесняващ разясняването и сравняването на логовете.

Добавените след последното издание на Wayland разширения на протоколите, допълващи основния протокол Wayland и предоставяни в отделен набор Wayland-Protocols:

  • xx-fractional-scale — за мащабиране на система от логични координати, стойностите на които са определени с цели числа, за повишаване на точността на позиционирането и увеличаване на разрешението на логичните координати до отделни пиксели. Тази възможност решава проблема с ограниченото разрешение на системата от логични координати, недостатъчно за позициониране на ниво отделни пиксели, необходимо за пълноценно реализиране на дробното мащабиране.
  • xx-cutouts — за получаване на информация за изрези на екрана (например, области под предната камера на екрана на смартфона).
  • xx-zones — за създаване и добавяне на прозорци отгоре в «зони» — среди със собствено пространство за координати. Протоколът позволява организирана логическа подредба на прозорците, при която всеки прозорец се разполага спрямо друг прозорец.
  • xx-keyboard-filter — за прихващане от клиента на избрани събития от клавиатурата, промяна на събитията за въвеждане или блокиране на предаване на определени събития в Wayland повърхността, на която е установлен фокусът за въвеждане.
  • В категорията «staging» е добавен протокол xdg-session-management, който предоставя възможности за възстановяване на състоянието и позицията на прозорците на прекратена сесия в среди, базирани на протокола Wayland, например след аварийно спиране на композитора. сървър или приложението.
  • В протокола «linux-dmabuf» е добавена поддръжка за работа на системи с множество GPU. На подобни системи клиентът може да се съгласи с композитните сървър кой от GPU следва да се използва.
  • В протокола color-management-v1 е добавена поддръжка за метаданни на изображения в формат BT.2100 за прилагане в композитен сървър специфични обработчици, позволяващи правилното показване на HDR съдържание, създадено за Windows.

Най-значимите събития, свързани с Wayland и настъпили след публикуването на предишното издание:

  • В Cinnamon е реализирана пълна поддръжка на Wayland.
  • В библиотеката ANGLE, използвана в Chrome и Android, е добавена поддръжка за Wayland.
  • В KDE при използване на Wayland е реализирана поддръжка за възстановяване на сесии и е реализираният Wayland-протокол xx-fractional-scale-v2 за дробно мащабиране.
  • Създаден е порт на X.Org драйвера Synaptics за среди, базирани на Wayland.
  • Инициирана е проверка на готовността на платформите за VFX и анимация за замяна на X11 с Wayland.
  • Започнало е тестването на композитния сървър Xfwl4 от проекта Xfce.
  • На база Wayfire и Libadwaita е възстановена потребителската обвивка Unity.
  • Актуализирани са композитните сървъри и десктоп средите: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.

Напомняме, че Wayland представлява протокол за взаимодействие между композитния сървър и работещите с него приложения. Клиентите самостоятелно извършват рисуването на своите прозорци в отделен буфер, предавайки информация за актуализации на композитора. сървъра, който комбинира съдържанието на буферите на отделните приложения за формиране на крайния изход с оглед на възможни нюанси, като припокриване на прозорци и прозрачност. С други думи, композитният сървър не предоставя API за рисуване на отделни елементи, а оперира само с вече формулирани прозорци, което позволява да се избегне двойната буферизация при използване на високоуровневи библиотеки, като GTK и Qt, които поемат работата по компоновка на съдържанието на прозорците.

Wayland решава много проблеми със сигурността на X11 в X.Org Server, тъй като в отличие от последния изолира входа и изхода за всеки прозорец, не позволява на клиента да получи достъп до съдържанието на прозорците на други клиенти, а също така не допуска прихващане на събития, свързани с други прозорци (в XLibre XServer е реализирано X11-расширение Xnamespace, осигуряващо изолация на клиентите чрез разделяне на ниво пространства имена). Поддръжката на пряка работа с Wayland е реализирана за повечето графични библиотеки, използвани в Linux, включително GTK, Qt, SDL, FLTK, wxWidgets, Clutter и EFL (Enlightenment Foundation Library).

Взаимодействието с хардуера в Wayland/Weston, например, извършване на инициализация, превключване на видео режими (drm modesetting) и управление на паметта (GEM за i915 и TTM за radeon и nouveau) на графични карти, може да се реализира директно чрез модул, работещ на ядрено ниво, което позволява да се избегне необходимостта от права на суперпотребител. За да се осигури изпълнението на стандартните X11 приложения в среда, базирана на Wayland, се използва DDX компонент XWayland (Device-Dependent X), подобен по организация на работа на Xwin и Xquartz за платформи Win32 и macOS.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster