Efter 13 mÄnaders utveckling har den stabila versionen av Wayland 1.24, protokollet, mekanismen för interprocesskommunikation och biblioteken presenterats. Version 1.24 Àr bakÄtkompatibel pÄ API- och ABI-nivÄ med versioner 1.x och innehÄller frÀmst buggfixar och mindre protokolldatouppdateringar. Projektets arbete sprids under MIT-licens. Referenskompositservern Weston, som tillhandahÄller kod och arbetsprover för anvÀndning av Wayland i skrivbordsmiljöer och inbÀddade lösningar, utvecklas inom en separat utvecklingscykel.
Huvudsakliga förÀndringar i protokollet:
- GrÀnssnittet wl_fixes har implementerats för att kunna lösa problem med andra programgrÀnssnitt för grundprotokollen som inte kan ÄtgÀrdas med dessa grÀnssnitts egna funktioner. Till exempel tillÄter begÀran "wl_fixes::destroy_registry" att ta bort objektet wl_registry, vilket gör att klienten inte lÀngre kan anvÀnda det och kompositservern slutar att överföra hÀndelser genom det.
- I programgrÀnssnittet wl_keyboard::key har det pseudotillstÄnd "repeated" implementerats, vilket innebÀr att tangenten Àr nedtryckt. En tangent kan endast vÀxlas till tillstÄndet "repeated" efter att den har vÀxlats till "pressed", men innan den nÄr "released". Relaterade hÀndelser kan genereras flera gÄnger sÄ lÀnge tangenten hÄlls nedtryckt. Denna Àndring gör att kompositservrar kan hantera upprepade nedtryckningar som separata tillstÄnd istÀllet för bara som en ström av upprepade nedtryckningshÀndelser ("pressed"), vilket kan vara anvÀndbart för att organisera arbetet med fjÀrrskrivbord.
- Funktionerna wl_display_dispatch_queue_timeout() och wl_display_dispatch_timeout() har lagts till för att hantera hÀndelser i kön med hÀnsyn till tidsgrÀnsen (funktionerna wl_display_dispatch och wl_display_dispatch_queue returnerar 0 endast nÀr det inte finns nÄgra hÀndelser, medan varianterna *_timeout ocksÄ returnerar 0 om tidsgrÀnsen intrÀffar).
- Funktionerna wl_shm_buffer_ref() och wl_shm_buffer_unref() har lagts till för att fÄ tillgÄng till delat minne kopplat till wl_shm_buffer efter dess borttagning (till exempel nÀr klienten avslutar). Dessa funktioner möjliggör att koppla bort wl_shm_buffer frÄn livstiden av huvudresursen wl_buffer nÀr kompositservern behöver skjuta upp övergÄngen till ett nytt tillstÄnd.
- Funktioner wl_proxy_get_interface() och wl_resource_get_interface() har lagts till, vilket returnerar wl_interface för den angivna resursen, ett önskemÄl i bindningar för dynamiskt typade sprÄk.
- Funktionen wl_resource_post_error_vargs() har lagts till som ett alternativ till funktionen wl_resource_post_error() med möjlighet att överföra en lista med argument för formatering av strÀng (va_list).
De mest anmÀrkningsvÀrda hÀndelserna relaterade till Wayland som intrÀffat sedan publiceringen av den senaste versionen:
- FörbÀttrad Wayland-stöd i proprietÀra NVIDIA-drivrutiner.
- KDE planerar att behÄlla endast stöd för Wayland. Separation av koden kwin_x11 och kwin_wayland.
- Ubuntu och Kubuntu kommer endast att behÄlla stöd för Wayland-sessionen i GNOME och KDE.
- I GDM lÀmnas endast stöd för Wayland som standard.
- GTK har avstÀngt back-end för X11 som förÄldrad.
- I Fedora 43 har det beslutats att ta bort paket som anvÀnds i GNOME för att köra ovanpÄ X-servern frÄn lagret. Alla GNOME-anvÀndare med X11 kommer att tvingas vÀxla till en Wayland-baserad session.
- I Budgie-skrivbordsmiljön kommer endast stöd för Wayland att finnas kvar.
- Delvis stöd för Wayland har införts i Xfce 4.20.
- MATE 1.28 med experimentellt stöd för Wayland.
- Wayback â en Wayland-kompositserver för att köra skrivbord baserat pĂ„ X11.
- Valve har startat projektet Frog för att pÄskynda införandet av nya Wayland-protokoll.
- Cosmoe-grafikgrÀnssnittsbiblioteket anvÀnder Wayland och ett API i BeOS-stil.
- Wayland-drivrutinen i Wine Àr aktiverad som standard.
- Raspberry Pi OS övergÄr till att anvÀnda Wayland.
- Utgivningen av grafikverktygssatsen FLTK 1.4.0 med Wayland-stöd.
- Wayland-Protocols har fĂ„tt en ytterligare fas för att frĂ€mja protokoll â 'experimental', avsedd för att sĂ€nka tröskeln för att integrera protokoll, pĂ„skynda utvecklingen av protokoll till utvecklare och uppmuntra tidig implementation i befintliga projekt.
- AMD utvecklar sin egen kompositserver, ACS, som anvÀnder Wayland.
- Sju alfa-versioner av COSMIC-skrivbordsmiljön.
- Uppdateringar av kompositservrar: 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.
TillÀgg av protokoll som lagts till det senaste Äret, som kompletterar grundprotokollet Wayland och som ingÄr i en separat uppsÀttning Wayland-Protocols:
- color-management â möjligheter för fĂ€rghantering och stöd för utökat dynamiskt omfĂ„ng av ljusstyrka (HDR, High Dynamic Range).
- color-representation-v1 â definierar fĂ€rgrepresentationen för Wayland-yta.
- xdg-toplevel-tag â gör det möjligt för Wayland-klienter att koppla taggar till ytor pĂ„ översta nivĂ„n, som kompositservern kan anvĂ€nda för att identifiera fönster efter att applikationen har startats om.
- ext-background-effect â tillĂ€mpning av effekter pĂ„ genomskinliga delar av Wayland-yta, sĂ„som oskĂ€rpa av bakgrunden.
- pointer-warp â gör att applikationen omedelbart kan flytta pekaren till en angiven position.
- xx-session-management â Ă„terstĂ€llning av fönsterstatus för avbrutna sessioner (till exempel efter en crash av komposithanteraren).
- xx-input-method â utvecklingen av ett nytt protokoll för att anvĂ€nda textinmatningsmetoder. ext-data-control â gör det möjligt för privilegierade klienter att hantera databehandling, till exempel för att implementera urklippshanterare.
- ext-workspace â realiserar konceptet virtuella skrivbord och erbjuder hĂ€ndelser med information om skrivbordsstatus samt möjligheter att aktivera och avaktivera skrivbord.
- xdg-system-bell â gör det möjligt att avge ett systemljud, som kan anvĂ€ndas, till exempel, som en varning i terminalemulatorer.
- xdg-toplevel-icon â för att koppla en ikon till ett fönster pĂ„ översta nivĂ„n.
- ext-image-capture-source och ext-image-copy-capture â fĂ„nga innehĂ„llet som visas pĂ„ skĂ€rmen.
- fifo â implementerar en FIFO-mekanism (först in, först ut) för att hantera kön av uppdatering av innehĂ„llet pĂ„ den visade ytan.
- commit-timing â möjliggör att knyta en tidsgrĂ€ns till innehĂ„llet pĂ„ ytan (kompositservern ska visa förĂ€ndringen av innehĂ„llet inom angiven tid, men inte tidigare).
Wayland Àr ett protokoll för interaktionen mellan kompositservern och de applikationer som arbetar med den. Kunderna renderar sjÀlva sina fönster i en separat buffert och skickar information om uppdateringar till kompositservern, som kombinerar innehÄllet i buffertarna frÄn de olika applikationerna för att skapa den slutliga utgÄngen med hÀnsyn till eventuella detaljer, sÄsom fönsteröverlagring och transparens. Med andra ord tillhandahÄller inte kompositservern ett API för att rendera enskilda element, utan arbetar endast med redan skapade fönster, vilket gör det möjligt att eliminera dubbel buffring vid anvÀndning av högre nivÄer av bibliotek som GTK och Qt, som tar hand om sammanstÀllningen av fönsterinnehÄllet.
Wayland löser mÄnga sÀkerhetsproblem med X11, eftersom den isolerar in- och utdata för varje fönster, hindrar klienter frÄn att fÄ tillgÄng till innehÄllet i andra kunders fönster och förhindrar fÄngst av inmatningsevent kopplade till andra fönster. Stöd för direkt arbete med Wayland har implementerats för de flesta grafiska bibliotek som anvÀnds i Linux, inklusive GTK, Qt, SDL, FLTK, wxWidgets, Clutter och EFL (Enlightenment Foundation Library).
Interaktionen med hÄrdvaran i Wayland/Weston, till exempel initiering, videolÀgesvÀxling (drm modesetting) och minneshantering (GEM för i915 och TTM för radeon och nouveau) av grafikkort kan ske direkt genom en modul som arbetar pÄ kÀrnnivÄ, vilket gör det möjligt att undvika superanvÀndarbehörighet. För att möjliggöra körning av vanliga X11-applikationer i en Wayland-baserad miljö anvÀnds DDX-komponenten XWayland (Device-Dependent X), som liknar hur Xwin och Xquartz fungerar för plattformar som Win32 och macOS.


KĂ€lla: opennet.ru
