Dostępny Wayland 1.23

Po ponad roku prac programistycznych zaprezentowano stabilną wersję protokołu, mechanizmu komunikacji między procesami oraz bibliotek Wayland 1.23. Gałąź 1.23 jest w pełni kompatybilna w zakresie API i ABI z wydaniami 1.x i zawiera głównie poprawki błędów oraz drobne aktualizacje protokołu. Osiągnięcia projektu są udostępniane na licencji MIT. Referencyjny serwer kompozycyjny Weston, który dostarcza kod oraz przykłady do użycia Wayland w środowiskach desktopowych i rozwiązaniach wbudowanych, rozwija się w ramach odrębnego cyklu programistycznego.

Główne zmiany w protokole:

  • W libwayland zaimplementowano API, które pozwala klientowi określić maksymalny rozmiar wewnętrznego bufora połączeń po stronie serwera. Podstawowy maksymalny rozmiar bufora jest ustalany przez interfejs wl_display, a nowe API pozwala klientom dostosować go dla każdego połączenia klienta. Z praktycznego punktu widzenia zmiana ta umożliwia użycie większych buforów w specyficznych klientach Wayland, takich jak Xwayland, które charakteryzują się dużą intensywnością zdarzeń wejściowych.
  • Dla zapytań (request), zdarzeń (event) i enumeracji (enum) wprowadzono możliwość użycia atrybutu XML „deprecated-since” do oznaczania przestarzałych elementów. W terminologii Wayland zapytania to wiadomości wysyłane przez klienta do serwera; zdarzenia to wiadomości przesyłane od serwera do klienta; enumeracje to grupy wartości liczbowych związane z określoną nazwą, którymi zarządza protokół.
  • Do narzędzia wayland-scanner, służącego do generowania nagłówków i kodu w języku C na podstawie plików XML z opisem protokołu, dodano tryb „enum-header”, który obejmuje włączenie do plików nagłówkowych jedynie „enumeracji”.
  • W wayland-scanner zapewniono generację funkcji walidujących (validator) dla „enumeracji” po stronie serwera.
  • Dodano możliwość nadawania nazw kolejkom zdarzeń w celu uproszczenia debugowania.
  • Dodano funkcje wl_client_get_user_data() oraz wl_client_set_user_data(), które ułatwiają przypisanie dowolnych danych do klienta.
  • Dodano zapytanie wl_shm.release, które pozwala klientowi informować serwer o zakończeniu używania współdzielonego obiektu, co umożliwia serwerowi zwolnienie powiązanej pamięci.
  • Dodano wsparcie dla platformy OpenBSD.

Powiązane z Wayland zdarzenia, które miały miejsce od publikacji poprzedniego wydania:

  • Opublikowano XWayland 24.1.0 z obsługą technologii Explicit Sync oraz poprawioną obsługą architektur 2D-acceleration GLAMOR i EXA.
  • Aktualizacja serwera kompozytowego labwc (Lab Wayland Compositor) z funkcjami przypominającymi menedżera okien Openbox.
  • Projekt wprs, rozwijający dla Wayland menedżer sesji podobny do narzędzia screen, ale dla aplikacji graficznych.
  • Publikacja serwera kompozytowego Niri, korzystającego z Wayland i oferującego metodę mozaikowej (tiling) kompozycji z grupowaniem okien w nieskończoną przewijającą się taśmę na ekranie.
  • Aktualizacja zestawu protokołów i rozszerzeń Wayland-Protocols: 1.34, 1.33, 1.32, 1.35.
  • Rozwój biblioteki SDL3, która domyślnie wykorzystuje Wayland.
  • Wydanie środowiska graficznego LXQt 2.0.0 z obsługą Wayland w menedżerze plików PCManFM-Qt, systemie powiadomień, pulpitem, narzędziem do uruchamiania programów (Runner), panelu, interfejsie wylogowania, interfejsie ustawień LXQt oraz w większości aplikacji.
  • Wydanie środowiska użytkownika Sway 1.9, korzystającego z Wayland.
  • Nowy menedżer kompozytowy miracle-wm, oparty na Wayland i komponentach do budowy menedżerów kompozytowych Mir.
  • Louvre — nowa biblioteka do rozwoju kompozytowych. serwerów opartych na Wayland.
  • Prace nad wdrożeniem wsparcia dla Wayland w Xfce.
  • Wczesne wsparcie dla Wayland w środowisku graficznym Budgie.
  • Wczesne wsparcie dla Wayland w środowisku graficznym Cinnamon.
  • Prawie zakończono portowanie środowiska graficznego MATE dla Wayland.
  • Dystrybucja Lubuntu przechodzi na użycie Qt 6 i Wayland.
  • W KDE 6 domyślnie zaproponowano sesję korzystającą z protokołu Wayland. Zrealizowano wsparcie dla rozszerzeń Wayland do zarządzania kolorem.
  • W platformie Electron wprowadzono tryb dekoracji okien dla Wayland.
  • Aktualizacja serwera kompozytowego Wayfire, korzystającego z Wayland i pozwalającego na tworzenie interfejsów użytkownika z efektami 3D w stylu wtyczek 3D dla Compiz.
  • Wsparcie dla Wayland w IDE IntelliJ i OpenJDK.
  • Wsparcie dla Wayland w edytorze tekstowym GNU Emacs.
  • W GNOME w sesji opartej na Wayland wdrożono wsparcie dla programowego przełącznika KVM Input Leap, umożliwiającego używanie jednej klawiatury i myszy do zarządzania wieloma komputerami.
  • Edycja Fedora z pulpitem KDE zakończyła wsparcie dla sesji opartej na protokole X11 w podstawowej wersji.
  • Poprawiona obsługa środowisk opartych na Wayland w własnościowych sterownikach NVIDIA.
  • Zrealizowano sterownik umożliwiający korzystanie z Wine w środowiskach opartych na protokole Wayland bez użycia XWayland i komponentów X11.
  • Opracowano wydanie serwera kompozytowego Weston 13.0.
  • Aby testować działanie KDE, GNOME, Enlightenment, Wayfire, Mir, Xfce i Sway na Wayland, wydawany jest specjalny dystrybucyjny Live-dystrybucja Rebecca Black Linux.
  • W wersjach Firefoksa dla Linuxa domyślnie włączono użycie serwera kompozytowego Wayland zamiast XWayland. Udostępniono możliwość tworzenia wersji, które obsługują tylko Wayland.

Przypomnijmy, że Wayland jest protokołem interakcji serwera kompozytowego z aplikacjami z nim współpracującymi. Klienci samodzielnie wykonują renderowanie swoich okien w osobnym buforze, przekazując informacje o aktualizacjach do serwera kompozytowego, który łączy zawartość buforów poszczególnych aplikacji, aby uzyskać ostateczną wersję z uwzględnieniem możliwych niuansów, takich jak nakładanie się okien i przezroczystość. Innymi słowy, serwer kompozytowy nie udostępnia API do renderowania pojedynczych elementów, a operuje wyłącznie na już utworzonych oknach, co pozwala na wyeliminowanie podwójnego buforowania przy użyciu wysokopoziomowych bibliotek, takich jak GTK i Qt, które zajmują się składaniem zawartości okien.

Wayland rozwiązuje wiele problemów z bezpieczeństwem X11, ponieważ w przeciwieństwie do niego izoluje wejście i wyjście dla każdego okna, uniemożliwia klientowi dostęp do zawartości okien innych klientów, a także nie pozwala na przechwytywanie związanych z innymi oknami zdarzeń wejściowych. Obecnie wsparcie dla bezpośredniej pracy z Wayland zostało już zrealizowane dla bibliotek GTK, Qt, SDL (począwszy od wydania 2.0.2), Clutter i EFL (Enlightenment Foundation Library). Począwszy od Qt 5.4, skład wprowadzono moduł QtWayland z realizacją komponentów do uruchamiania aplikacji Qt w środowisku serwera kompozytowego Weston, rozwijanego przez projekt Wayland.

Interakcja z hardwarem w Wayland/Weston, na przykład, inicjalizacja, zmiana trybów wideo (ustawianie trybów drm) oraz zarządzanie pamięcią (GEM dla i915 i TTM dla radeon i nouveau) kart graficznych, może odbywać się bezpośrednio przez moduł działający na poziomie jądra, co pozwala na pominięcie przywilejów superużytkownika. Serwer kompozytowy Weston może działać nie tylko przy użyciu modułu DRM jądra Linux, ale również na X11, innym serwerze kompozytowym Wayland, framebufferze oraz RDP. Ponadto prowadzone są projekty mające na celu umożliwienie pracy nad stosami graficznymi platformy Android.

W ramach projektu Weston rozwijana jest jedna z implementacji serwera kompozytowego. Jako serwer kompozytowy może również działać inny produkt wspierający protokół Wayland. Na przykład, obecnie trwają prace nad wsparciem dla Wayland w KWin. W obecnej formie Weston już wykracza poza zestaw przykładów do testowania protokołu Wayland i może zyskiwać funkcjonalność poprzez wtyczki i rozszerzenia. Proponuje się realizację niestandardowych interfejsów i zaawansowanych funkcji zarządzania oknami w formie zewnętrznych backendów dla Weston. Aby umożliwić uruchamianie standardowych aplikacji X11 w środowisku opartym na Wayland, wykorzystywany jest komponent DDX XWayland (Device-Dependent X), działający podobnie jak Xwin i Xquartz dla platform Win32 i macOS.

Dostępny Wayland 1.23Dostępny Wayland 1.23


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster