Disponibile Wayland 1.26

Dopo quattro mesi di sviluppo, è stata presentata la versione stabile del protocollo, del meccanismo di interazione tra processi e delle librerie Wayland 1.26. Il ramo 1.26 è retrocompatibile a livello di API e ABI con le versioni 1.x e contiene principalmente bug fix e aggiornamenti minori del protocollo. I risultati del progetto sono distribuiti sotto licenza MIT. Composito di riferimento server Weston, che fornisce codice e esempi pratici per l'uso di Wayland negli ambienti desktop e nelle soluzioni incorporate, è in fase di sviluppo all'interno di un ciclo di sviluppo separato.

Principali modifiche al protocollo:

  • È stato aggiunto l'evento wl_pointer.warp, tramite il quale è possibile ricevere notifiche sulla nuova posizione del puntatore senza elaborare l'evento wl_pointer.motion, generato dall'attività dell'utente.
  • È stata aggiunta la richiesta wl_fixes.ack_global_remove, destinata a inviare al gestore del composito una conferma che il client ha smesso di elaborare l'evento per escludere condizioni di race nella rimozione degli eventi globali. Dopo aver ricevuto la conferma da tutti i client, il gestore del composito può rimuovere il gestore associato all'evento dalla sua parte.
  • È stata aggiunta la funzione wl_display_remove_socket_fd() per rimuovere i socket precedentemente aggiunti tramite la chiamata wl_display_add_socket_fd().
  • In modalità di debug WAYLAND_DEBUG è stato reso disponibile un output di log del tempo nel formato 'HH:MM:ss.xxxxxx', semplificando l'analisi e il confronto dei log.

Le estensioni del protocollo aggiunte dopo l'ultima versione di Wayland, che completano il protocollo di base di Wayland e vengono fornite in un pacchetto separato Wayland-Protocols:

  • xx-fractional-scale — per scalare il sistema delle coordinate logiche, i cui valori sono definiti da numeri interi, per migliorare la precisione del posizionamento e aumentare la risoluzione delle coordinate logiche fino ai singoli pixel. Tale possibilità risolve il problema della risoluzione limitata del sistema delle coordinate logiche, insufficiente per il posizionamento a livello di singoli pixel, necessario per una piena implementazione dello scaling frazionale.
  • xx-cutouts — per ottenere informazioni sui ritagli dello schermo (ad esempio, le aree sotto la fotocamera frontale dello schermo dello smartphone).
  • xx-zones — per creare e aggiungere finestre di livello superiore in "zone" — ambienti con il proprio spazio di coordinate. Il protocollo consente di organizzare una disposizione logica delle finestre, in cui ogni finestra è posizionata rispetto a un'altra finestra.
  • xx-keyboard-filter — per l'intercettazione degli eventi di tastiera selezionati dal client, la modifica degli eventi di input o la bloccatura della trasmissione di determinati eventi nella superficie Wayland su cui è impostato il focus di input.
  • Nella categoria «staging» è stato aggiunto il protocollo xdg-session-management, che offre funzionalità per il ripristino dello stato e della posizione delle finestre di una sessione interrotta in ambienti basati sul protocollo Wayland, ad esempio dopo un arresto anomalo del compositore server o dell'applicazione.
  • Nel protocollo «linux-dmabuf» è stato aggiunto il supporto per il funzionamento su sistemi con più GPU. Su tali sistemi, il client può negoziare con i compositi server quale GPU dovrebbe essere utilizzata.
  • Nel protocollo color-management-v1 è stato aggiunto il supporto per i metadati delle immagini nel formato BT.2100, da utilizzare nei compositi server nel gestore specifico, per consentire una corretta visualizzazione dei contenuti HDR, creati per Windows.

Gli eventi più significativi legati a Wayland avvenuti dopo la pubblicazione dell'ultimo rilascio:

  • In Cinnamon è stata implementata una piena supporto per Wayland.
  • Nella libreria ANGLE, utilizzata in Chrome e Android, è stato aggiunto il supporto per Wayland.
  • In KDE, utilizzando Wayland, è stato implementato il supporto per il ripristino delle sessioni e il protocollo Wayland xx-fractional-scale-v2 per il ridimensionamento frazionale.
  • È stato creato un porting del driver X.Org Synaptics per ambienti basati su Wayland.
  • È stata avviata una verifica della prontezza delle piattaforme VFX e animazione per la sostituzione di X11 con Wayland.
  • È iniziato il test del server compositivo Xfwl4 del progetto Xfce.
  • Sulla base di Wayfire e Libadwaita è stata ricreata un'interfaccia utente Unity.
  • Aggiornati i server compositivi e gli ambienti desktop: 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.

Ricordiamo che Wayland è un protocollo di interazione tra il server compositivo e le applicazioni che vi lavorano. I client eseguono autonomamente il rendering delle proprie finestre in un buffer separato, trasmettendo le informazioni sugli aggiornamenti al compositore server, che combina il contenuto dei buffer delle singole applicazioni per formare l'output finale tenendo conto di particolari come la sovrapposizione delle finestre e la trasparenza. In altre parole, il server compositivo non fornisce un'API per il rendering di singoli elementi, ma opera solo con finestre già formate, il che consente di evitare il doppio buffering quando si utilizzano librerie di alto livello, come GTK e Qt, che si occupano della composizione del contenuto delle finestre.

Wayland risolve molti problemi di sicurezza di X11 in X.Org Server, poiché a differenza di quest'ultimo isola l'input e l'output per ogni finestra, impedendo al client di accedere al contenuto delle finestre di altri client e non consentendo la cattura di eventi di input legati ad altre finestre (in XLibre XServer è implementata l'estensione X11 Xnamespace, che garantisce l'isolamento dei client tramite divisione a livello di spazi dei nomi). Il supporto per la modalità di lavoro diretta con Wayland è stato 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, per esempio, l'inizializzazione, il cambio delle modalità video (drm modesetting) e la gestione della memoria (GEM per i915 e TTM per radeon e nouveau) delle schede grafiche, può avvenire direttamente tramite un modulo che opera a livello di kernel, il che consente di evitare i privilegi di superutente. Per garantire il funzionamento delle comuni applicazioni X11 in un ambiente basato su Wayland, viene utilizzato il componente DDX XWayland (Device-Dependent X), la cui organizzazione lavorativa è simile a Xwin e Xquartz per le piattaforme Win32 e macOS.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster