Wayland 1.24 disponibile

Dopo 13 mesi di sviluppo, è stata rilasciata la versione stabile del protocollo Wayland 1.24, del meccanismo di comunicazione interprocesso e delle librerie. La versione 1.24 è retrocompatibile a livello di API e ABI con le versioni 1.x e contiene principalmente correzioni di bug e aggiornamenti minori del protocollo. Gli sviluppi del progetto sono distribuiti con licenza MIT. Il server composito di riferimento Weston, che fornisce codice ed esempi funzionanti per l'utilizzo di Wayland in ambienti desktop e soluzioni embedded, è in fase di sviluppo nell'ambito di un ciclo di sviluppo separato.

Principali modifiche al protocollo:

  • L'interfaccia wl_fixes è stata implementata per risolvere problemi con altre API del protocollo di base che non possono essere risolti dalle funzionalità native di tali interfacce. Ad esempio, la richiesta "wl_fixes::destroy_registry" consente di eliminare l'oggetto wl_registry, dopodiché il client non sarà più in grado di utilizzarlo e il server composito smetterà di inviare eventi tramite esso.
  • L'API wl_keyboard::key implementa uno pseudo-stato "ripetuto", che indica se un tasto è premuto. Un tasto può essere portato nello stato "ripetuto" solo dopo essere entrato nello stato "premuto", ma prima di entrare nello stato "rilasciato". Gli eventi associati al nuovo stato possono essere generati più volte mentre il tasto è premuto. Questa modifica consente ai server compositi di gestire le pressioni ripetute dei tasti come stati separati, anziché semplicemente come un flusso di eventi "premuti" ripetuti, il che può essere utile per la gestione delle pressioni dei tasti. desktop remoto.
  • Sono state aggiunte le funzioni wl_display_dispatch_queue_timeout() e wl_display_dispatch_timeout() per l'invio di eventi in una coda tenendo conto del timeout (le funzioni wl_display_dispatch e wl_display_dispatch_queue restituiscono 0 solo se non ci sono eventi e anche le varianti *_timeiout restituiscono XNUMX quando si verifica un timeout).
  • Aggiunte le funzioni wl_shm_buffer_ref() e wl_shm_buffer_unref() per accedere alla memoria condivisa associata al buffer wl_shm_buffer dopo che è stato distrutto (ad esempio, quando il client termina). Le funzioni consentono di scollegare il buffer wl_shm_buffer dal ciclo di vita della risorsa wl_buffer sottostante quando il server composito deve ritardare la transizione a un nuovo stato.
  • Sono state aggiunte le funzioni wl_proxy_get_interface() e wl_resource_get_interface(), che restituiscono wl_interface per la risorsa specificata, richiesta nei binding per i linguaggi con tipizzazione dinamica.
  • Aggiunta la funzione wl_resource_post_error_vargs(), che funge da alternativa alla funzione wl_resource_post_error() con la possibilità di passare un elenco di argomenti per la formattazione della stringa (va_list).

Gli eventi più importanti legati a Wayland accaduti dalla pubblicazione dell'ultimo numero:

  • Supporto Wayland migliorato nei driver proprietari NVIDIA.
  • KDE prevede di mantenere solo il supporto per Wayland. Separazione del codice kwin_x11 e kwin_wayland.
  • Ubuntu e Kubuntu manterranno il supporto alle sessioni Wayland solo in GNOME e KDE.
  • Per impostazione predefinita, GDM supporta solo Wayland.
  • GTK ha deprecato il backend X11.
  • Fedora 43 rimuoverà dal repository i pacchetti utilizzati da GNOME per l'esecuzione sul server X. Tutti gli utenti GNOME che utilizzano X11 saranno costretti a passare a una sessione basata su Wayland.
  • L'ambiente desktop Budgie manterrà solo il supporto Wayland.
  • Xfce 4.20 introduce il supporto parziale per Wayland.
  • MATE 1.28 con supporto sperimentale Wayland.
  • Wayback - Un server composito Wayland per l'esecuzione di desktop basati su X11
  • Valve ha lanciato il Progetto Frog per accelerare l'avanzamento dei nuovi protocolli Wayland.
  • Cosmoe è una libreria GUI che utilizza Wayland e un'API in stile BeOS.
  • Abilita il driver Wayland per impostazione predefinita in Wine.
  • Passaggio da Raspberry Pi OS a Wayland.
  • Rilascio del toolkit grafico FLTK 1.4.0 con supporto Wayland.
  • La suite Wayland-Protocols è stata ampliata con un'ulteriore fase di promozione del protocollo, "sperimentale", volta ad abbassare la barriera all'integrazione del protocollo, accelerare la distribuzione dei protocolli agli sviluppatori e incoraggiare l'implementazione anticipata nei progetti esistenti.
  • AMD sta sviluppando il proprio server composito ACS utilizzando Wayland.
  • Sette versioni alpha dell'ambiente desktop COSMIC.
  • Server compositi aggiornati: 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.

Estensioni del protocollo aggiunte nel corso dell'ultimo anno che completano il protocollo base Wayland e sono fornite in un set Wayland-Protocols separato:

  • gestione del colore: funzionalità per la gestione del colore e supporto per una gamma dinamica estesa di luminosità (HDR, High Dynamic Range).
  • color-representation-v1 — specifica la rappresentazione del colore della superficie Wayland.
  • xdg-toplevel-tag - Consente ai client Wayland di associare tag alle superfici di primo livello che il server di compositing può utilizzare per identificare le finestre dopo il riavvio dell'applicazione.
  • ext-background-effect - applica effetti alle parti semitrasparenti di una superficie Wayland, come la sfocatura dello sfondo.
  • pointer-warp - Consente a un'applicazione di spostare istantaneamente il puntatore in una posizione specificata.
  • xx-session-management: ripristina lo stato delle finestre per le sessioni interrotte (ad esempio, dopo un arresto anomalo del gestore composito).
  • xx-input-method — sviluppo di un nuovo protocollo per l'utilizzo di metodi di immissione di testo. ext-data-control — consente ai client privilegiati di controllare la gestione dei dati, ad esempio per implementare i gestori degli appunti.
  • ext-workspace — implementa il concetto desktop virtuali e offre eventi con informazioni sullo stato dei desktop, nonché la possibilità di attivare e disattivare i desktop.
  • xdg-system-bell - consente di emettere un segnale di sistema che può essere utilizzato, ad esempio, come avviso in un emulatore di terminale.
  • xdg-toplevel-icon - per associare un'icona a una finestra di primo livello.
  • ext-image-capture-source e ext-image-copy-capture: catturano il contenuto visualizzato sullo schermo.
  • fifo — implementa un meccanismo FIFO (first in, first out) per l'elaborazione della coda di aggiornamento del contenuto della superficie visualizzata.
  • commit-timing: consente di vincolare un limite di tempo al contenuto di superficie (il server composito dovrebbe riflettere la modifica del contenuto, se possibile, dopo il tempo specificato, ma non prima).

Ricordiamo che Wayland è un protocollo per l'interazione tra un server composito e le applicazioni che lavorano con esso. I client eseguono il rendering delle proprie finestre in un buffer separato, passando gli aggiornamenti al server composito, che combina il contenuto dei singoli buffer dell'applicazione per produrre un output finale che tiene conto delle possibili sfumature come la sovrapposizione e la trasparenza delle finestre. In altre parole, il server composito non fornisce un'API per il rendering di singoli elementi, ma opera solo su finestre già formate, il che consente di eliminare il doppio buffering quando si utilizzano librerie di alto livello come GTK e Qt, che assumono il ruolo di lavoro di composizione del contenuto delle finestre.

Wayland risolve molti dei problemi di sicurezza di X11, poiché, a differenza di quest'ultimo, isola input e output per ogni finestra, non consente a un client di accedere al contenuto delle finestre di altri client e non consente l'intercettazione di eventi di input associati ad altre finestre. Il supporto per il lavoro diretto con Wayland è implementato per la maggior parte delle librerie grafiche utilizzate in Linux, tra cui GTK, Qt, SDL, FLTK, wxWidgets, Clutter ed EFL (Enlightenment Foundation Library).

L'interazione con l'hardware in Wayland/Weston, come l'inizializzazione, la commutazione delle modalità video (impostazione delle modalità DRM) e la gestione della memoria (GEM per i915 e TTM per Radeon e Nouveau) delle schede grafiche, può essere eseguita direttamente tramite un modulo eseguito a livello di kernel, che consente di fare a meno dei privilegi di superutente. Per garantire l'esecuzione delle normali applicazioni X11 in un ambiente basato su Wayland, viene utilizzato il componente DDX XWayland (Device-Dependent X), simile nella sua organizzazione a Xwin e Xquartz per le piattaforme Win32 e macOS.

 Wayland 1.24 disponibile  Wayland 1.24 disponibile


Fonte: opennet.ru

Aggiungi un commento