Pas 13 muajsh zhvillimi, është prezantuar një version i qëndrueshëm i protokollit, mekanizmit të ndërveprimit midis proceseve dhe bibliotekave Wayland 1.24. Degë 1.24 është prapa e pajtueshme në nivelin API dhe ABI me daljet 1.x dhe përmban kryesisht korrigjime gabimesh dhe përditësime të vogla të protokollit. Përparimet e projektit shpërndahen nën licencën MIT. Serveri referencë i përbërjes Weston, që ofron kodin dhe shembujt funksionalë për përdorimin e Wayland në mjediset desktop dhe zgjidhjet e integruara, zhvillohet në kuadër të një cikli të veçantë zhvillimi.
Ndryshimet kryesore në protokoll:
- ĂshtĂ« zbatuar ndĂ«rfaqja wl_fixes, e cila lejon zgjidhjen e problemeve me ndĂ«rfaqet e tjera programore tĂ« protokollit bazĂ« qĂ« nuk mund tĂ« zgjidhen me aftĂ«sitĂ« e tyre. PĂ«r shembull, kĂ«rkesa «wl_fixes::destroy_registry» lejon tĂ« eliminojĂ« objektin wl_registry, pas sĂ« cilĂ«s klienti nuk do tĂ« mund ta pĂ«rdorĂ« atĂ«, dhe serveri pĂ«rbĂ«rĂ«s do tĂ« ndalojĂ« dĂ«rgimin e ngjarjeve pĂ«rmes tij.
- NĂ« ndĂ«rfaqen programore wl_keyboard::key Ă«shtĂ« implementuar njĂ« pseudo-gjendje «repeated», qĂ« do tĂ« thotĂ« se çelĂ«si Ă«shtĂ« nĂ« gjendjen e shtypur. ĂelĂ«si mund tĂ« kalojĂ« nĂ« gjendjen «repeated» vetĂ«m pas kalimit nĂ« gjendjen «pressed», por para se tĂ« arrijĂ« gjendjen «released». Ngjarjet e lidhura me kĂ«tĂ« gjendje tĂ« re mund tĂ« gjenerohen disa herĂ«, sa kohĂ« qĂ« çelĂ«si Ă«shtĂ« i shtypur. Kjo ndryshim lejon serverĂ«t pĂ«rbĂ«rĂ«s tĂ« trajtojnĂ« shtypjet e pĂ«rsĂ«ritura gjatĂ« mbajtjes sĂ« çelĂ«sve si gjendje tĂ« veçantĂ«, e jo thjesht si njĂ« rrjedhĂ« ngjarjesh tĂ« pĂ«rsĂ«ritura tĂ« shtypjes («pressed»), qĂ« mund tĂ« jetĂ« e dobishme pĂ«r organizimin e punĂ«s me desktop tĂ« largĂ«t.
- Janë shtuar funksionet wl_display_dispatch_queue_timeout() dhe wl_display_dispatch_timeout() për të menaxhuar ngjarjet në radhë duke marrë parasysh kohëzgjatjen (funksionet wl_display_dispatch dhe wl_display_dispatch_queue kthejnë 0 vetëm kur nuk ka ngjarje, ndërsa variantet *_timeiout gjithashtu kur arrin koha e caktuar).
- Janë shtuar funksionet wl_shm_buffer_ref() dhe wl_shm_buffer_unref() për të aksesuar memorien e ndarë të lidhur me tamponin wl_shm_buffer, pas eliminimit të tij (për shembull, kur klienti përfundon punën). Funksionet lejojnë të shkëputet tampona wl_shm_buffer nga jeta e burimit kryesor wl_buffer, kur serveri përbërës ka nevojë të shtyjë kalimin në një gjendje të re.
- Shtohen funksionet wl_proxy_get_interface() dhe wl_resource_get_interface(), që kthejnë wl_interface për burimin e specifikuar, të cilat janë të kërkuara në lidhjet për gjuhët me tipizim dinamik.
- Shtohet funksioni wl_resource_post_error_vargs(), i cili vepron si një alternativë për funksionin wl_resource_post_error() me mundësinë për të dërguar një listë argumentesh për formatimin e vargjeve (va_list).
Ngjarjet më të dukshme, të lidhura me Wayland dhe që ndodhen që nga botimi i versionit të kaluar:
- Përmirësimi i mbështetjes Wayland në drivere të pronarit NVIDIA.
- KDE planifikon të mbajë vetëm mbështetje për Wayland. Ndara e kodit kwin_x11 dhe kwin_wayland.
- Ubuntu dhe Kubuntu do të mbajnë vetëm mbështetje për sesionin Wayland në GNOME dhe KDE.
- Në GDM, është lënë si mbështetje vetëm Wayland nga default.
- GTK ka transferuar backend për X11 në statusin e vjetër.
- Në Fedora 43 është vendosur që të hiqen nga repositorët paketat e përdorura në GNOME për të punuar përmbi serverin X. Të gjithë përdoruesit e GNOME me X11 do të kalojnë detyrimisht në një sesion të bazuar në Wayland.
- Në mjedisin e punës Budgie do të mbetet vetëm mbështetje për Wayland.
- Në Xfce 4.20 është realizuar mbështetje e pjesshme për Wayland.
- MATE 1.28 me mbështetje eksperimentale për Wayland.
- Wayback - një server kompozimi Wayland për të nënshtruar mjediset e punës të bazuara në X11.
- Kompania Valve ka nisur projektin Frog për të acceleruar avancimin e protokolleve të reja Wayland.
- Biblioteka për ndërtimin e ndërfaqeve grafike Cosmoe, që përdor Wayland dhe API në stilin BeOS.
- Aktivizimi nga default i driverit Wayland në Wine.
- Kalimi i Raspberry Pi OS në përdorimin e Wayland.
- Lëshimi i toolkit-it grafik FLTK 1.4.0 me mbështetje për Wayland.
- Në paketën Wayland-Protocols është shtuar një fazë e re promovimi protokollesh - «experimental», e cila synon të ulë barrierat në integrimin e protokolleve, të përshpejtojë dërgimin e protokolleve te zhvilluesit dhe të stimulojë implementimin e hershëm në projektet ekzistuese.
- AMD po zhvillon serverin e vet kompozitor ACS, që përdor Wayland.
- Shtatë lëshime alfa të mjedisit të punës COSMIC.
- Përditësimi i serverëve kompozitorë: 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.
Zgjerimet e shtuar gjatë vitit të fundit që plotësojnë protokollin bazë Wayland dhe ofrohen në një paketë të veçantë Wayland-Protocols:
- color-management - mundësi për menaxhimin e ngjyrave dhe mbështetje për gamën dinamike të zgjeruar të ndriçimit (HDR, High Dynamic Range).
- color-representation-v1 â detyra e pĂ«rfaqĂ«simit tĂ« ngjyrave tĂ« sipĂ«rfaqes Wayland.
- xdg-toplevel-tag â lejon klientĂ«t Wayland tĂ« bashkĂ«ngjisin etiketa nĂ« sipĂ«rfaqet e nivelit tĂ« lartĂ«, tĂ« cilat serveri kompozues mund t'i pĂ«rdorĂ« pĂ«r tĂ« identifikuar dritaret pas rivendosjes sĂ« aplikacionit.
- ext-background-effect â aplikimi i efekteve nĂ« pjesĂ«t gjysmĂ«transparente tĂ« sipĂ«rfaqes Wayland, si p.sh. turbullimi i sfondit.
- pointer-warp â i lejon aplikacionit ta zhvendosĂ« menjĂ«herĂ« treguesin nĂ« pozicionin e caktuar.
- xx-session-management â rikthimi i gjendjes sĂ« dritareve pĂ«r sesione tĂ« ndĂ«rprera (pĂ«r shembull, pas mbylljes emergjente tĂ« menaxherit kompozitor).
- xx-input-method â zhvillimi i njĂ« protokoli tĂ« ri pĂ«r pĂ«rdorimin e metodave tĂ« futjes sĂ« tekstit. ext-data-control â lejon klientĂ«t me privilegje tĂ« menaxhojnĂ« pĂ«rpunimin e tĂ« dhĂ«nave, pĂ«r shembull, pĂ«r realizimin e menaxherĂ«ve tĂ« ndĂ«rmjetĂ«simit.
- ext-workspace â implementon konceptin e skripteve virtuale dhe ofron ngjarje me informacione rreth gjendjes sĂ« tryezave, si dhe mundĂ«si pĂ«r aktivizimin dhe çaktivizimin e tryezave.
- xdg-system-bell â lejon tĂ« prodhohet njĂ« sinjal sistemik, i cili mund tĂ« pĂ«rdoret, pĂ«r shembull, si njĂ« paralajmĂ«rim nĂ« emulatorĂ«t e terminaleve.
- xdg-toplevel-icon â pĂ«r lidhjen e njĂ« ikone me njĂ« dritare tĂ« nivelit tĂ« lartĂ«.
- ext-image-capture-source dhe ext-image-copy-capture â kapja e pĂ«rmbajtjes qĂ« paraqitet nĂ« ekran.
- fifo â implementon mekanizmin FIFO (i pari qĂ« vjen â i pari qĂ« del) pĂ«r menaxhimin e radhĂ«s sĂ« pĂ«rditĂ«simit tĂ« pĂ«rmbajtjes sĂ« sipĂ«rfaqes sĂ« shfaqjes.
- commit-timing â lejon lidhjen e njĂ« kufizimi kohor me pĂ«rmbajtjen e sipĂ«rfaqes (serveri i kompozitit duhet tĂ« shfaqĂ« ndryshimin e pĂ«rmbajtjes sa mĂ« shpejt tĂ« jetĂ« e mundur brenda kohĂ«s sĂ« caktuar, por jo mĂ« herĂ«t).
Të kujtojmë se Wayland është një protokoll për ndërveprimin e serverit kompozit me aplikacionet që punojnë me të. Klientët e realizojnë vetë vizatimin e okove të tyre në një bufer të veçantë, duke kaluar informacionin mbi përditësimet te serveri kompozit, i cili kombinon përmbajtjen e buferave të aplikacioneve të veçanta për të formuar rezultatin përfundimtar duke marrë parasysh aspektet e mundshme si mbivendosja e okove dhe transparenca. Në fjalë të tjera, serveri kompozit nuk ofron API për vizatimin e elementeve të veçanta, por operon vetëm me oket që janë formuar tashmë, gjë që lejon eliminimin e dyfishimit të buferimit gjatë përdorimit të bibliotekave me nivel të lartë si GTK dhe Qt, të cilat marrin përsipër punën e kompozimit të përmbajtjes së okove.
Wayland zgjidh shumë probleme me sigurinë e X11, pasi, ndryshe nga i fundit, izolon futjen dhe daljen për çdo dritare, nuk lejon klientin të aksesojë përmbajtjen e dritareve të tjera, si dhe nuk lejon kapjen e ngjarjeve të futjes të lidhura me dritaret e tjera. Mbështetje e punës direkte me Wayland është realizuar për shumicën e bibliotekave grafike që përdoren në Linux, duke përfshirë GTK, Qt, SDL, FLTK, wxWidgets, Clutter dhe EFL (Enlightenment Foundation Library).
Ndërveprimi me pajisjet në Wayland/Weston, për shembull, kryerja e inicializimeve, kalimi në modet video (drm modesetting) dhe menaxhimi i memories (GEM për i915 dhe TTM për radeon dhe nouveau) të kartave grafike, mund të realizohet drejtpërdrejt përmes një moduli që punon në nivelin e bërthamës, duke lejuar kështu evitimin e privilegjeve të superpërdoruesit. Për të siguruar ekzekutimin e aplikacioneve të zakonshme X11 në një mjedis të bazuar në Wayland, përdoret komponenti DDX XWayland (Device-Dependent X), i ngjashëm në organizimin e punës me Xwin dhe Xquartz për platformat Win32 dhe macOS.


Burimi: opennet.ru
