Etter fire måneder med utvikling er den stabile utgivelsen av Wayland 1.26-protokollen, kommunikasjonsmekanismen mellom prosesser og biblioteker utgitt. 1.26-grenen er bakoverkompatibel på API- og ABI-nivå med 1.x-utgivelsene og inneholder hovedsakelig feilrettinger og mindre protokolloppdateringer. Prosjektets arbeid distribueres under MIT-lisensen. Referansekompositt serveren Weston, som tilbyr kode og fungerende eksempler for bruk av Wayland i skrivebords- og innebygde miljøer, er utviklet i en egen utviklingssyklus.
Store endringer i protokollen:
- La til wl_pointer.warp-hendelsen, som lar deg motta varsler om pekerens nye posisjon uten å håndtere wl_pointer.motion-hendelsen generert av brukeraktivitet.
- La til forespørselen wl_fixes.ack_global_remove, som er utformet for å sende en bekreftelse til den sammensatte administratoren om at klienten har sluttet å behandle hendelsen, for å forhindre kappløpsbetingelser når globale hendelser fjernes. Etter å ha mottatt bekreftelse fra alle klienter, kan den sammensatte administratoren fjerne behandleren som er knyttet til hendelsen på sin side.
- La til wl_display_remove_socket_fd()-funksjonen for å fjerne sokkeler som tidligere ble lagt til via wl_display_add_socket_fd()-kall.
- I feilsøkingsmodusen WAYLAND_DEBUG logges tiden i formatet «HH:MM:ss.xxxxxx», noe som forenkler loggparsing og sammenligning.
Protokollutvidelser lagt til siden forrige utgivelse av Wayland som utfyller den grunnleggende Wayland-protokollen og leveres i et separat Wayland-Protocols-sett:
- xx-fraksjonell-skala — for skalering av et logisk koordinatsystem, der verdier er spesifisert som heltall, for å forbedre posisjoneringsnøyaktigheten og øke oppløsningen til logiske koordinater ned til individuelle piksler. Denne funksjonen løser problemet med den begrensede oppløsningen til det logiske koordinatsystemet, som er utilstrekkelig for posisjonering på individuelt pikselnivå, noe som er nødvendig for full implementering av fraksjonell skalering.
- xx-utklipp – for å få informasjon om utklipp på skjermen (for eksempel området under frontkameraet på smarttelefonskjermen).
- xx-soner – for å opprette og legge til vinduer på toppnivå i «soner» – miljøer med sitt eget koordinatrom. Protokollen tillater en logisk ordning av vinduer, der hvert vindu er plassert i forhold til alle andre vinduer.
- xx-keyboard-filter — for at klienten skal kunne fange opp utvalgte tastaturhendelser, endre inndatahendelser eller blokkere visse hendelser fra å bli sendt til den fokuserte Wayland-overflaten.
- Protokollen xdg-session-management er lagt til i oppsamlingskategorien, og gir muligheten til å gjenopprette statusen og posisjonen til vinduer fra en avbrutt økt i miljøer basert på Wayland-protokollen, for eksempel etter et sammensatt krasj. server eller applikasjoner.
- Protokollen «linux-dmabuf» er oppdatert for å støtte systemer med flere GPU-er. På slike systemer kan klienten forhandle om kompositt server hvilket GPU som skal brukes.
- Color-management-v1-protokollen er oppdatert for å støtte BT.2100-bildemetadata for bruk i komposittformat server spesifikke behandlere som tillater korrekt visning av HDR-innhold laget for Windows.
Viktige hendelser knyttet til Wayland siden forrige utgave ble utgitt:
- Cinnamon har full støtte for Wayland.
- I ANGLE-biblioteket som brukes i Chrome og Android, Wayland-støtte lagt til.
- KDE implementerer støtte for gjenoppretting av økter og Wayland-protokollen xx-fractional-scale-v2 for fraksjonell skalering når Wayland brukes.
- En portering av Synaptics X.Org-driveren er opprettet for Wayland-baserte miljøer.
- En klargjøringssjekk for VFX- og animasjonsplattformer for å erstatte X11 med Wayland er igangsatt.
- Testingen av den sammensatte Xfwl4-serveren fra Xfce-prosjektet har begynt.
- Unitys brukergrensesnitt er gjenskapt ved hjelp av Wayfire og Libadwaita.
- Oppdaterte komposittservere og skrivebordsmiljø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.
La oss huske at Wayland er en protokoll for samhandling mellom en komposisjonsserver og applikasjoner som kjører på den. Klienter gjengir vinduene sine i en separat buffer, og sender oppdateringsinformasjon til komposisjonsserveren. server, som kombinerer innholdet i individuelle applikasjonsbuffere for å generere det endelige resultatet, med tanke på mulige nyanser som vindusoverlapping og gjennomsiktighet. Med andre ord tilbyr ikke den sammensatte serveren et API for gjengivelse av individuelle elementer, men opererer bare på forhåndsformaterte vinduer, noe som eliminerer dobbel bufring når man bruker biblioteker på høyt nivå som GTK og Qt, som håndterer arbeidet med å komponere vindusinnhold.
Wayland løser mange av X11-sikkerhetsproblemene i X.Org Server, siden den, i motsetning til sistnevnte, isolerer input og output for hvert vindu, ikke tillater en klient tilgang til innholdet i andre klienters vinduer, og ikke tillater avlytting av input-hendelser relatert til andre vinduer (XLibre XServer implementerer X11-utvidelsen Xnamespace, som gir klientisolering gjennom separasjon på navneromsnivå). Støtte for direkte arbeid med Wayland er implementert for de fleste plattformene som brukes i Linux grafikkbiblioteker inkludert GTK, Qt, SDL, FLTK, wxWidgets, Clutter og EFL (Enlightenment Foundation Library).
Samhandling med maskinvare i Wayland/Weston, som initialisering, bytte av videomodus (DRM-modusinnstilling) og minnehåndtering (GEM for i915 og TTM for Radeon og Nouveau) for grafikkort, kan utføres direkte gjennom en kjernemodul, noe som eliminerer behovet for superbrukerrettigheter. For å sikre kjøring av standard X11-applikasjoner i et Wayland-basert miljø brukes XWayland (Device-Dependent X) DDX-komponenten, som ligner i drift på Xwin og Xquartz for Win32 og ... macOS.
Kilde: opennet.ru
