Достъпен е Wayland 1.24

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

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

  • Реализиран е интерфейсът wl_fixes, който позволява решаване на проблеми с други софтуерни интерфейси на базовите протоколи, които не могат да бъдат отстранени с техните собствени възможности. Например, заявката „wl_fixes::destroy_registry“ позволява да се ликвидира обектът wl_registry, след което клиентът не може да го използва, а композитният сървър спира предаването на събития през него.
  • В софтуерния интерфейс wl_keyboard::key е реализирано псевдо-състояние „repeated“, означаващо, че клавишът е натиснат. Клавишът може да премине в състояние „repeated“ само след като бъде натиснат, но преди да достигне състояния „released“. Свързаните с новото състояние събития могат да се генерират няколко пъти, докато клавишът е натиснат. Промяната позволява на композитните сървъри да обработват повторни натискания при задържане на клавишите като отделни състояния, а не просто като поток от повторни събития на натиск („pressed“), което може да бъде полезно за организиране на работата с отдалечен работен плот.
  • Добавени са функциите wl_display_dispatch_queue_timeout() и wl_display_dispatch_timeout() за диспечеризация на събития в опашката с отчитане на тайм-аут (функциите wl_display_dispatch и wl_display_dispatch_queue връщат 0 само при отсъствие на събития, а вариантите *_timeout също и при изтичане на тайм-аут).
  • Добавени са функциите wl_shm_buffer_ref() и wl_shm_buffer_unref() за достъп до споделена памет, свързана с буфера wl_shm_buffer, след неговата ликвидация (например, когато клиентът приключи работа). Функциите позволяват отвързване на буфера wl_shm_buffer от жизнения цикъл на основния ресурс wl_buffer, когато композитният сървър трябва да отложи прехода към ново състояние.
  • Добавени функции wl_proxy_get_interface() и wl_resource_get_interface(), които връщат wl_interface за зададения ресурс, което е необходимо за обвивки за езици с динамично типизиране.
  • Добавена е функцията wl_resource_post_error_vargs(), която служи като алтернатива на функцията wl_resource_post_error() с възможност за предаване на списък от аргументи за форматиране на низ (va_list).

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

  • Подобряване на поддръжката на Wayland в затворени драйвери на NVIDIA.
  • KDE планира да запази само поддръжка на Wayland. Разделяне на кода kwin_x11 и kwin_wayland.
  • Ubuntu и Kubuntu ще запазят само поддръжка на сесия на Wayland в GNOME и KDE.
  • В GDM по подразбиране е оставена само поддръжка на Wayland.
  • GTK преведе бекенда за X11 в категорията на остарелите.
  • В Fedora 43 е решено да се премахнат от хранилището пакетите, използвани в GNOME за работа върху X-сервер. Всички потребители на GNOME с X11 ще бъдат принудително прехвърлени на сесия на базата на Wayland.
  • В средата на работния плот Budgie ще бъде оставена само поддръжка на Wayland.
  • В Xfce 4.20 е реализирана частична поддръжка на Wayland.
  • MATE 1.28 с експериментална поддръжка на Wayland.
  • Wayback — композитен сървър Wayland за стартиране на работни плотове на базата на X11.
  • Компанията Valve стартира проекта Frog за ускорено популяризиране на нови протоколи Wayland.
  • Библиотеката за изграждане на графични интерфейси Cosmoe, използваща Wayland и API в стил BeOS.
  • Включване по подразбиране на драйвера Wayland в Wine.
  • Преход на Raspberry Pi OS към използване на Wayland.
  • Публикуване на графичния инструмент FLTK 1.4.0 с поддръжка на Wayland.
  • В набора Wayland-Protocols е добавена допълнителна фаза за популяризиране на протоколите — „experimental“, насочена към намаляване на бариерата при интеграцията на протоколите, ускоряване на тяхното представяне на разработчиците и насърчаване на ранната реализация в съществуващи проекти.
  • AMD развива собствен композитен сървър ACS, използващ Wayland.
  • Седем алфа версии на средата на работния плот COSMIC.
  • Актуализация на композитните сървъри: Weston 14.0, Niri 25.05, Wayland Maker 0.5, miracle-wm 0.5, Hyprland 0.49, labwc 0.8.3, Cage 0.2, Wayfire 0.9, Sway 1.11.

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

  • color-management — възможности за управление на цвета и поддръжка на разширен динамичен диапазон на яркостта (HDR, High Dynamic Range).
  • color-representation-v1 — задача за цветово представяне на Wayland повърхност.
  • xdg-toplevel-tag — позволява на Wayland клиентите да прикачват тагове към повърхности на топ ниво, които композитният сървър може да използва за идентифициране на прозорци след повторно стартиране на приложението.
  • ext-background-effect — прилагане на ефекти към полупрозрачни части на Wayland повърхности, като размазване на фона.
  • pointer-warp — позволява на приложението моментално да премества курсора в зададена позиция.
  • xx-session-management — възстановяване на състоянието на прозорците за прекратени сесии (например, след аварийно завършване на композитен мениджър).
  • xx-input-method — развитие на нов протокол за използване на методи за въвеждане на текст. ext-data-control — позволява на привилегировани клиенти да управляват обработката на данни, например, за реализиране на мениджъри на clipboard.
  • ext-workspace — реализира концепцията виртуални работни桌логове и предлага събития с информация за състоянието на работните повърхности, както и възможности за активиране и деактивиране на работни повърхности.
  • xdg-system-bell — позволява извеждане на системен сигнал, който може да се използва, например, като предупреждение в емулацията на терминали.
  • xdg-toplevel-icon — за свързване на икона към прозорец на топ ниво.
  • ext-image-capture-source и ext-image-copy-capture — улавяне на съдържанието, изведено на екрана.
  • fifo — реализира FIFO механизъм (първи да дойде — първи да излезе) за обработка на опашката за обновяване на съдържанието на показваната повърхност.
  • commit-timing — позволява свързването на ограничение на времето с съдържанието на повърхността (композитният сървър трябва да преобразува промяната на съдържанието, когато е възможно, през указания период от време, но не по-рано).

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

Wayland решава много от проблемите със сигурността на X11, тъй като в отличие от последния изолира входа и изхода за всеки прозорец, не позволява на клиента да получава достъп до съдържанието на прозорците на други клиенти и също не допуска прихващането на свързани с други прозорци събития за вход. Поддръжката на директна работа с 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.

Достъпен е Wayland 1.24Достъпен е Wayland 1.24


Източник: opennet.ru
Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster