Wayland

Wayland è un protocollo display server. Ha lo scopo di diventare il successore di X Window System. Puoi trovare un confronto tra Wayland e Xorg su Wikipedia.

I display server che utilizzano il protocollo Wayland sono chiamati compositori perché agiscono anche come gestori di finestre di composizione. Qui sotto puoi trovare una lista di compositori Wayland.

Per la compatibilità all’indietro per eseguire senza problemi applicazioni X11 legacy, può essere utilizzato XWayland, che fornisce un server X in Wayland.

Requisiti

La maggior parte dei compositori Wayland funziona solo su sistemi che utilizzano l’impostazione della modalità Kernel. Wayland di per sé non fornisce un ambiente grafico; per questo è necessario anche un compositore (vedere la sezione seguente), o un ambiente desktop che include un compositore (ad esempio GNOME o KDE).

Perché il driver della GPU e il compositore Wayland siano compatibili devono supportare la stessa API del buffer. Ci sono due API principali: GBM e EGLStreams.

Buffer API Supporto driver GPU Supporto compositore Wayland
GBM Tutti tranne NVIDIA Tutti
EGLStreams NVIDIA GNOME, KDE, Weston (con una patch di terze parti)

Compositori

Vedi Window manager#Types per la differenza tra Tiling e Stacking.

Tiling

  • Cagebreak – Basato su cage, ispirato da ratpoison.

https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR

  • Cardboard – Compositore a scorrimento, ispirato da PaperWM, basato su wlroots.

https://gitlab.com/cardboardwm/cardboard || non confezionato? cerca in AUR

  • dwl – compositore Wayland simile a dwm basato su wlroots.

https://github.com/djpohly/dwl || dwlAUR

  • japokwm – Compositore dinamico wayland tiling basato sulla creazione di layout, basato su wlroots.

https://github.com/werererer/japokwm || non pacchettizzato? cerca in AUR

  • river – Compositore dinamico di piastrelle Wayland ispirato a dwm e bspwm.

https://github.com/ifreund/river || river-gitAUR

  • Sway – Compositore Wayland compatibile con i3 basato su wlroots.

https://github.com/swaywm/sway || sway

  • Velox – Semplice gestore di finestre basato su swc, ispirato da dwm e xmonad.

https://github.com/michaelforney/velox || veloxAUR

  • waymonad – Compositore Wayland ispirato da xmonad scritto in Haskell.

https://github.com/waymonad/waymonad ||non pacchettizzato? cerca in AUR

Stacking

  • Enlightenment – Vedere Enlightenment#Manually. Maggiori informazioni:

https://www.enlightenment.org/ || enlightenment

  • Greenfield – Viene eseguito in un browser web e può visualizzare applicazioni remote.

https://greenfield.app/ || non pacchettizzato? cerca in AUR

  • Grefsen – Compositore Qt/Wayland che fornisce un ambiente desktop minimo.

https://github.com/ec1oud/grefsen ||non pacchettizzato? cerca in AUR

  • hikari – compositore basato su wlroots ispirato a cwm che è attivamente sviluppato su FreeBSD ma supporta anche Linux.

https://hikari.acmelabs.space/ || hikariAUR

  • KDE KWin – Vedere KDE#Starting Plasma.

https://userbase.kde.org/KWin || kwin

  • Liri Shell – Parte di Liri, costruito utilizzando QtQuick e QtCompositor come compositore per Wayland.

https://github.com/lirios/shell || liri-shell-gitAUR

  • labwc – Compositore basato su wlroots ispirato a Openbox.

https://github.com/johanmalm/labwc || labwc-gitAUR

  • Mutter – Vedi GNOME#Starting.

https://gitlab.gnome.org/GNOME/mutter || mutter

  • wayfire – Compositore 3D ispirato da Compiz e basato su wlroots.

https://wayfire.org/ || wayfireAUR

  • Weston – implementazione di riferimento di un compositore Wayland.

https://gitlab.freedesktop.org/wayland/weston || weston

  • wio – compositore basato su wlroots che mira a replicare il look and feel del desktop Rio di Plan 9.

https://wio-project.org/ || non pacchettizzato? search in AUR

Other

  • Cage – Visualizza una singola applicazione a schermo intero come un chiosco.

https://www.hjdskes.nl/projects/cage/ || cage

  • Maze Compositor – Visualizza le finestre in un labirinto 3D utilizzando Qt.

https://github.com/imbavirus/mazecompositor || not packaged? cerca in AUR

  • Motorcar – Compositore Wayland per esplorare le finestre 3D usando la realtà virtuale.

https://github.com/evil0sheep/motorcar ||non confezionato? cerca in AUR

Alcuni di questi possono supportare i display manager. Controllare /usr/share/wayland-sessions/compositor.desktop per vedere come vengono avviati.

Display manager

I display manager elencati di seguito supportano il lancio dei compositori Wayland. La colonna “Tipo” indica se il display manager supporta o meno l’esecuzione su Wayland.

Nome Tipo Descrizione
GDM Esegue su Wayland Gestore display GNOME.
greetd Demone di login Demone di login minimale e flessibile.
LightDM Esegue su X11 Gestore display cross-desktop.
Ly Esegue in console Gestore displayTUI scritto in C
SDDM Esegue su X11 Gestore display basato su QML.
tbsm Esegue in console Semplice lanciatore di sessioni CLI scritto in puro bash.

GUI librerie

Vedi i dettagli sul sito ufficiale.

GTK

I pacchetti gtk3 e gtk4 hanno il backend Wayland attivato. GTK sarà predefinito al backend Wayland, ma è possibile sovrascriverlo a Xwayland modificando una variabile d’ambiente: GDK_BACKEND=x11.

Qt

Per abilitare il supporto Wayland in Qt 5 o 6, installare il pacchetto qt5-wayland o qt6-wayland, rispettivamente.

Per eseguire un’applicazione Qt con il plugin Wayland, usare -platform wayland o QT_QPA_PLATFORM=wayland variabile di ambiente. Per forzare l’uso di X11 in una sessione Wayland, usate QT_QPA_PLATFORM=xcb. Questo potrebbe essere necessario per alcune applicazioni proprietarie che non usano l’implementazione di sistema di Qt, come zoomAUR.

Su alcuni compositori, per esempio sway, le applicazioni Qt in esecuzione nativa potrebbero avere funzionalità mancanti. Per esempio, KeepassXC non sarà in grado di ridurre a icona. Questo può essere risolto installando qt5ct e impostando QT_QPA_PLATFORMTHEME=qt5ct prima di eseguire l’applicazione.

Clutter

Il toolkit Clutter ha un backend Wayland che gli permette di funzionare come un client Wayland. Il backend è abilitato nel pacchetto clutter.

Per eseguire un’applicazione Clutter su Wayland, imposta CLUTTER_BACKEND=wayland.

SDL2

Per eseguire un’applicazione SDL2 su Wayland, imposta SDL_VIDEODRIVER=wayland.

Nota: Molti giochi proprietari vengono forniti con vecchie versioni di SDL, che non supportano Wayland e potrebbero rompersi completamente se si imposta SDL_VIDEODRIVER=wayland. Per forzare l’applicazione a girare con XWayland, imposta SDL_VIDEODRIVER=x11.

GLFW

Per usare GLFW con il backend Wayland, installa il pacchetto glfw-wayland (invece di glfw-x11).

GLEW

Il pacchetto glew-waylandAUR attualmente non funziona ancora con molte applicazioni basate su GLEW, quindi l’unica opzione è usare glew con Xwayland. Vedi FS#62713.

EFL

EFL ha un supporto completo per Wayland. Per eseguire un’applicazione EFL su Wayland, vedi la pagina del progetto Wayland.

winit

Winit è una libreria di gestione delle finestre in Rust. Di default utilizza il backend Wayland, ma è possibile sovrascriverlo a Xwayland modificando una variabile d’ambiente: WINIT_UNIX_BACKEND=x11.

XWayland

XWayland è un server X che gira sotto Wayland. Fornisce compatibilità all’indietro per le applicazioni X11 legacy.

Per usarlo, installare il pacchetto xorg-xwayland.

XWayland è avviato tramite un compositore, quindi si dovrebbe controllare la compatibilità di XWayland e le istruzioni su come avviare XWayland, con il compositore di tua scelta.

Nota:

  • Riguardo alla sicurezza: XWayland è un X Server, quindi non ha le caratteristiche di sicurezza di Wayland!
  • Per ora il driver proprietario Nvidia non supporta l’accelerazione GPU per XWayland. Vedi questo o questa richiesta di pull per lo stato del supporto di XWayland.

Risoluzione dei problemi

Correzione del colore

Vedi Retroilluminazione#Correzione del colore.

Rallentamento, glitch grafici e crash

Gli utenti di gnome-shell possono avere problemi di visualizzazione quando passano a Wayland da X. Una delle cause principali potrebbe essere il CLUTTER_PAINT=disable-clipped-redraws:disable-culling impostato da te per gnome-shell basato su Xorg. Provate a rimuoverlo da /etc/environment o da altri file rc per vedere se tutto torna alla normalità.

Non è possibile aprire display: :0 con applicazioni basate su Electron

Assicuratevi di non aver impostato GDK_BACKEND=wayland. Impostarlo globalmente romperà le applicazioni Electron.

Remote display

  • (20200206) wlroots (usato da sway) offre un backend VNC tramite wayvncAUR dalla versione 0.10. Il backend RDP è stato rimosso. .
  • (20180401) mutter ha ora il desktop remoto abilitato in fase di compilazione, vedi e gnome-remote-desktop per i dettagli.
  • C’è stata una fusione di FreeRDP in Weston nel 2013, abilitata tramite un flag di compilazione. Il pacchetto weston lo ha abilitato dalla versione 6.0.0.
  • waypipe-gitAUR è un proxy trasparente per le applicazioni Wayland, con un comando wrapper da eseguire su SSH

Input grabbing in giochi, desktop remoto e finestre VM

In contrasto con Xorg, Wayland non permette l’esclusivo grabbing dei dispositivi di input, noto anche come grab attivo o esplicito (es.Es. tastiera, mouse), invece, dipende dal compositore Wayland per passare le scorciatoie da tastiera e confinare il dispositivo di puntamento alla finestra dell’applicazione.

Questo cambiamento nell’input grabbing rompe il comportamento delle applicazioni attuali, il che significa:

  • Le combinazioni di tasti e i modificatori saranno catturati dal compositore e non saranno inviati alle finestre del desktop remoto e della macchina virtuale.
  • Il puntatore del mouse non sarà limitato alla finestra dell’applicazione che potrebbe causare un effetto di parallasse dove la posizione del puntatore del mouse all’interno della finestra della macchina virtuale o del desktop remoto è spostata dal puntatore del mouse dell’host.

Wayland risolve questo problema aggiungendo estensioni di protocollo per Wayland e XWayland. Il supporto per queste estensioni deve essere aggiunto ai compositori Wayland. Nel caso di client Wayland nativi, il toolkit di widget utilizzato (ad esempio GTK, Qt) deve supportare queste estensioni o le applicazioni stesse se non viene utilizzato un toolkit di widget. Nel caso di applicazioni Xorg, non sono necessari cambiamenti nelle applicazioni o nei toolkit dei widget poiché il supporto XWayland è sufficiente.

Queste estensioni sono già incluse in wayland-protocols, e supportate da xorg-xwayland.

Le estensioni correlate sono:

  • Protocollo XWayland keyboard grabbing
  • Protocollo inibizione scorciatoie compositore
  • Protocollo puntatore relativo
  • Protocollo vincoli puntatore

Supportano i compositori Wayland:

  • Mutter, il compositore di GNOME dal rilascio 3.28
  • wlroots supporta relative-pointer e pointer-constraints

Supporta i widget toolkit:

  • GTK dal rilascio 3.22.18.

Vedi anche

  • Documentazione Wayland online
  • Official Wayland Git Repo
  • Fedora:Come debuggare i problemi di Wayland
  • Progetti Wayland impressionanti
  • Temi del cursore
  • Discussione del forum Arch Linux
  • Guida alla migrazione di i3 – Applicazioni X11 comuni usate su i3 con alternative Wayland

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.