Dostępny Wayland 1.24

Po 13 miesiącach prac przedstawiono stabilną wersję protokołu, mechanizmu międzyprocesowej komunikacji oraz bibliotek Wayland 1.24. Gałąź 1.24 jest wstecznie kompatybilna na poziomie API i ABI z wydaniami 1.x i zawiera głównie poprawki błędów oraz drobne aktualizacje protokołu. Zasoby projektu są rozpowszechniane na licencji MIT. Referencyjny serwer kompozytowy Weston, który zapewnia kod i działające przykłady do wykorzystania Wayland w środowiskach desktopowych oraz wbudowanych, jest rozwijany w ramach oddzielnego cyklu rozwoju.

Główne zmiany w protokole:

  • Zrealizowano interfejs wl_fixes, który pozwala rozwiązywać problemy związane z innymi interfejsami programowymi podstawowych protokołów, których nie można rozwiązać za pomocą własnych możliwości tych interfejsów. Na przykład, żądanie „wl_fixes::destroy_registry” pozwala na usunięcie obiektu wl_registry, po czym klient nie będzie mógł z niego korzystać, a serwer kompozytowy zaprzestanie przesyłania przez niego zdarzeń.
  • W interfejsie programowym wl_keyboard::key zaimplementowano pseudo-stan „repeated”, oznaczający, że klawisz jest wciśnięty. Klawisz może zostać przekształcony w stan „repeated” tylko po przejściu do stanu „pressed”, ale przed osiągnięciem stanu „released”. Związane z nowym stanem zdarzenia mogą generować wielokrotnie, dopóki klawisz jest wciśnięty. Ta zmiana pozwala serwerom kompozytowym traktować powtórne naciśnięcia przytrzymywanych klawiszy jako oddzielne stany, a nie tylko jako strumień powtarzających się zdarzeń naciśnięcia („pressed”), co może być pomocne w organizacji pracy z zdalnym pulpitem.
  • Dodano funkcje wl_display_dispatch_queue_timeout() i wl_display_dispatch_timeout() do zarządzania zdarzeniami w kolejce z uwzględnieniem limitu czasu (funkcje wl_display_dispatch i wl_display_dispatch_queue zwracają 0 tylko w przypadku braku zdarzeń, podczas gdy warianty *_timeout zwracają także, gdy wystąpi limit czasu).
  • Dodano funkcje wl_shm_buffer_ref() i wl_shm_buffer_unref() do uzyskiwania dostępu do pamięci współdzielonej związanej z buforem wl_shm_buffer, po jego usunięciu (na przykład, gdy klient kończy pracę). Funkcje te pozwalają na odłączenie bufora wl_shm_buffer od czasu życia głównego zasobu wl_buffer, kiedy serwer kompozytowy musi opóźnić przejście do nowego stanu.
  • Dodano funkcje wl_proxy_get_interface() i wl_resource_get_interface(), które zwracają wl_interface dla danego zasobu, co jest pożądane w powiązaniach dla języków z dynamicznym typowaniem.
  • Dodano funkcję wl_resource_post_error_vargs(), która jest alternatywą dla funkcji wl_resource_post_error() z możliwością przekazywania listy argumentów do formatowania napisu (va_list).

Najbardziej zauważalne wydarzenia związane z Wayland, które miały miejsce od publikacji ostatniego wydania:

  • Ulepszona obsługa Waylanda w zastrzeżonych sterownikach NVIDIA.
  • KDE planuje zachować tylko wsparcie dla Waylanda. Rozdzielenie kodu kwin_x11 i kwin_wayland.
  • Ubuntu i Kubuntu zachowają tylko obsługę sesji Wayland w GNOME i KDE.
  • W GDM domyślnie pozostało tylko wsparcie dla Waylanda.
  • GTK uznał backend dla X11 za przestarzały.
  • W Fedora 43 postanowiono usunąć z repozytorium pakiety używane w GNOME do pracy na X-serwerze. Wszyscy użytkownicy GNOME z X11 zostaną wymuszeni do przełączenia na sesję opartą na Waylandzie.
  • W środowisku graficznym Budgie pozostanie tylko wsparcie dla Waylanda.
  • W Xfce 4.20 wprowadzono częściowe wsparcie dla Waylanda.
  • MATE 1.28 z eksperymentalnym wsparciem dla Waylanda.
  • Wayback — serwer kompozytowy Wayland do uruchamiania pulpitów opartych na X11.
  • Firma Valve uruchomiła projekt Frog, aby przyspieszyć wdrażanie nowych protokołów Wayland.
  • Biblioteka do budowy interfejsów graficznych Cosmoe, wykorzystująca Wayland i API w stylu BeOS.
  • Domyślnie włączony driver Wayland w Wine.
  • Przejście Raspberry Pi OS na wykorzystanie Waylanda.
  • Wydanie graficznego zestawu narzędzi FLTK 1.4.0 z obsługą Waylanda.
  • Do zestawu Wayland-Protocols dodano dodatkową fazę promocji protokołów — „experimental”, mającą na celu obniżenie barier przy integracji protokołów, przyspieszenie dostarczania protokołów do programistów oraz stymulowanie wczesnej realizacji w istniejących projektach.
  • AMD rozwija swój własny serwer kompozytowy ACS, wykorzystujący Wayland.
  • Siedem wersji alfa środowiska graficznego COSMIC.
  • Aktualizacja serwerów kompozytowych: 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.

Dodane w ciągu ostatniego roku rozszerzenia protokołów, uzupełniające podstawowy protokół Wayland i dostarczane w oddzielnym zestawie Wayland-Protocols:

  • color-management — możliwości dla zarządzania kolorem i wsparcia rozszerzonego dynamicznego zakresu jasności (HDR, High Dynamic Range).
  • color-representation-v1 — definicja reprezentacji koloru powierzchni Wayland.
  • xdg-toplevel-tag — umożliwia klientom Wayland przypisywanie tagów do powierzchni najwyższego poziomu, które serwer kompozycji może wykorzystać do identyfikacji okien po ponownym uruchomieniu aplikacji.
  • ext-background-effect — stosowanie efektów do przezroczystych części powierzchni Wayland, takich jak rozmycie tła.
  • pointer-warp — pozwala aplikacji na natychmiastowe przeniesienie wskaźnika do określonej pozycji.
  • xx-session-management — przywracanie stanu okien dla przerwanych sesji (na przykład po awaryjnym zakończeniu menedżera kompozytowego).
  • xx-input-method — rozwój nowego protokołu do użycia metod wprowadzania tekstu. ext-data-control — pozwala uprzywilejowanym klientom zarządzać przetwarzaniem danych, np. do wdrożenia menedżerów schowka.
  • ext-workspace — wdraża koncepcję wirtualnych pulpitów i oferuje zdarzenia z informacjami o stanie pulpitów, a także możliwości aktywacji i deaktywacji pulpitów.
  • xdg-system-bell — umożliwia wyświetlanie sygnału systemowego, który może być używany, na przykład, jako ostrzeżenie w emulatorach terminali.
  • xdg-toplevel-icon — do przypisania ikony do okna najwyższego poziomu.
  • ext-image-capture-source i ext-image-copy-capture — przechwytywanie treści wyświetlanej na ekranie.
  • fifo — wdraża mechanizm FIFO (pierwszy przybył — pierwszy wyszedł) do przetwarzania kolejki aktualizacji zawartości wyświetlanej powierzchni.
  • commit-timing — umożliwia powiązanie ograniczenia czasowego z zawartością powierzchni (serwer kompozycji powinien wyświetlić zmianę zawartości w możliwie najkrótszym czasie, ale nie wcześniej).

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 związanych z bezpieczeństwem X11, ponieważ w przeciwieństwie do ostatniego izoluje wejścia i wyjścia dla każdego okna, uniemożliwia klientowi dostęp do zawartości okien innych klientów oraz nie pozwala na przechwytywanie zdarzeń wejściowych związanych z innymi oknami. Wsparcie dla bezpośredniej pracy z Wayland jest realizowane dla większości stosowanych w systemie Linux bibliotek graficznych, w tym GTK, Qt, SDL, FLTK, wxWidgets, Clutter i EFL (Enlightenment Foundation Library).

Interakcja z urządzeniami w Wayland/Weston, na przykład inicjalizacja, zmiana trybów wideo (drm modesetting) i 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 ominąć wymagania superużytkownika. Aby zapewnić działanie standardowych aplikacji X11 w środowisku opartym na Wayland, używany jest komponent DDX XWayland (Device-Dependent X), który jest podobny pod względem funkcjonowania do Xwin i Xquartz dla platform Win32 i macOS.

Dostępny Wayland 1.24Dostępny Wayland 1.24


Ź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