Efter fyra mÄnaders utveckling har den stabila versionen av Wayland 1.26-protokollet, kommunikationsmekanismen mellan processer och bibliotek slÀppts. 1.26-grenen Àr bakÄtkompatibel pÄ API- och ABI-nivÄ med 1.x-versionerna och innehÄller frÀmst buggfixar och mindre protokolluppdateringar. Projektets arbete distribueras under MIT-licensen. Referenskomposit server Weston, som tillhandahÄller kod och fungerande exempel för att anvÀnda Wayland i skrivbords- och inbÀddade miljöer, utvecklas i en separat utvecklingscykel.
Stora Àndringar i protokollet:
- Lade till hÀndelsen wl_pointer.warp, som lÄter dig ta emot meddelanden om pekarens nya position utan att hantera hÀndelsen wl_pointer.motion som genereras av anvÀndaraktivitet.
- Lade till begÀran wl_fixes.ack_global_remove, som Àr utformad för att skicka en bekrÀftelse till den sammansatta hanteraren att klienten har slutat bearbeta hÀndelsen, för att förhindra kapplöpningsförhÄllanden vid borttagning av globala hÀndelser. Efter att ha mottagit bekrÀftelse frÄn alla klienter kan den sammansatta hanteraren ta bort hanteraren som Àr associerad med hÀndelsen pÄ sin sida.
- Lade till funktionen wl_display_remove_socket_fd() för att ta bort sockets som tidigare lagts till via anropet wl_display_add_socket_fd().
- I felsökningslÀget WAYLAND_DEBUG loggas tiden i formatet "HH:MM:ss.xxxxxx", vilket förenklar logganalys och jÀmförelse.
ProtokolltillÀgg som har lagts till sedan den föregÄende versionen av Wayland och som kompletterar Wayland-protokollet och som tillhandahÄlls i en separat Wayland-Protocols-uppsÀttning:
- xx-fraktionell-skala â för skalning av ett logiskt koordinatsystem, dĂ€r vĂ€rden anges som heltal, för att förbĂ€ttra positioneringsnoggrannheten och öka upplösningen av logiska koordinater ner till enskilda pixlar. Denna funktion löser problemet med den begrĂ€nsade upplösningen i det logiska koordinatsystemet, vilket Ă€r otillrĂ€ckligt för positionering pĂ„ individuell pixelnivĂ„, vilket Ă€r nödvĂ€ndigt för fullstĂ€ndig implementering av fraktionell skalning.
- xx-utskĂ€rningar â för att fĂ„ information om utskĂ€rningar pĂ„ skĂ€rmen (till exempel omrĂ„det under den frĂ€mre kameran pĂ„ smarttelefonens skĂ€rm).
- xx-zoner â för att skapa och lĂ€gga till fönster pĂ„ toppnivĂ„ till "zoner" â miljöer med eget koordinatutrymme. Protokollet möjliggör en logisk anordning av fönster, dĂ€r varje fönster Ă€r placerat i förhĂ„llande till alla andra fönster.
- xx-keyboard-filter â för att klienten ska kunna fĂ„nga upp valda tangentbordshĂ€ndelser, modifiera inmatningshĂ€ndelser eller blockera vissa hĂ€ndelser frĂ„n att skickas till den fokuserade Wayland-ytan.
- Protokollet xdg-session-management har lagts till i mellanlagringskategorin, vilket ger möjlighet att ÄterstÀlla tillstÄnd och position för fönster frÄn en avbruten session i miljöer baserade pÄ Wayland-protokollet, till exempel efter en sammansatt krasch. server eller tillÀgg.
- Protokollet "linux-dmabuf" har uppdaterats för att stödja system med flera grafikkort. PÄ sÄdana system kan klienten förhandla om kompositgrÀnssnitt. server vilken GPU som ska anvÀndas.
- Protokollet color-management-v1 har uppdaterats för att stödja BT.2100-bildmetadata för anvÀndning i kompositbilder server specifika hanterare som möjliggör korrekt visning av HDR-innehÄll skapat för Windows.
AnmÀrkningsvÀrda hÀndelser relaterade till Wayland sedan det senaste numret publicerades:
- Cinnamon har fullt stöd för Wayland.
- I ANGLE-biblioteket som anvÀnds i Chrome och Android, Wayland-stöd tillagt.
- KDE, nÀr Wayland anvÀnds, implementerar stöd för sessionsÄterstÀllning och Wayland-protokollet xx-fractional-scale-v2 för fraktionerad skalning.
- En portering av Synaptics X.Org-drivrutinen har skapats för Wayland-baserade miljöer.
- En beredskapskontroll för VFX- och animationsplattformar för att ersÀtta X11 med Wayland har inletts.
- Testning av den sammansatta Xfwl4-servern frÄn Xfce-projektet har pÄbörjats.
- Unitys anvÀndargrÀnssnitt har Äterskapats med hjÀlp av Wayfire och Libadwaita.
- Uppdaterade kompositservrar och skrivbordsmiljöer: 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.
LÄt oss komma ihÄg att Wayland Àr ett protokoll för interaktion mellan en compositing-server och applikationer som körs pÄ den. Klienter renderar sina fönster oberoende i en separat buffert och skickar uppdateringsinformation till compositing-servern. server, som kombinerar innehÄllet i individuella applikationsbuffertar för att generera den slutliga utdata, med hÀnsyn till eventuella nyanser som fönsteröverlappning och transparens. Med andra ord tillhandahÄller den sammansatta servern inte ett API för att rendera enskilda element, utan fungerar endast pÄ förrenderade fönster, vilket eliminerar dubbelbuffring nÀr man anvÀnder högnivÄbibliotek som GTK och Qt, som hanterar arbetet med att komponera fönsterinnehÄll.
Wayland löser mÄnga av X11-sÀkerhetsproblemen i X.Org Server, eftersom det, till skillnad frÄn det senare, isolerar in- och utdata för varje fönster, inte tillÄter en klient att komma Ät innehÄllet i andra klienters fönster och inte tillÄter avlyssning av inmatningshÀndelser relaterade till andra fönster (XLibre XServer implementerar X11-tillÀgget Xnamespace, vilket ger klientisolering genom separation pÄ namnrymdsnivÄ). Stöd för direkt arbete med Wayland Àr implementerat för de flesta plattformar som anvÀnds i Linux grafikbibliotek inklusive GTK, Qt, SDL, FLTK, wxWidgets, Clutter och EFL (Enlightenment Foundation Library).
Interaktion med hÄrdvara i Wayland/Weston, sÄsom initialisering, vÀxling av videolÀge (DRM-lÀgesinstÀllning) och minneshantering (GEM för i915 och TTM för Radeon och Nouveau) för grafikkort, kan utföras direkt via en modul pÄ kÀrnnivÄ, vilket eliminerar behovet av superanvÀndarbehörigheter. För att sÀkerstÀlla körning av standard X11-applikationer i en Wayland-baserad miljö anvÀnds XWayland (Device-Dependent X) DDX-komponenten, som liknar Xwin och Xquartz för Win32 och ... macOS.
KĂ€lla: opennet.ru
