Wayland is een display server protocol. Het is bedoeld om de opvolger van het X Window System te worden. Een vergelijking tussen Wayland en Xorg is te vinden op Wikipedia.
Weergaveservers die gebruik maken van het Wayland-protocol worden compositors genoemd, omdat ze ook fungeren als samenstellende windowmanagers. Hieronder vindt u een lijst van Wayland compositors.
Voor achterwaartse compatibiliteit om legacy X11 applicaties naadloos te kunnen draaien, kan XWayland gebruikt worden, die een X Server in Wayland levert.
- Eisen
- Compositors
- Tiling
- Stacking
- Other
- Display managers
- GUI bibliotheken
- GTK
- Qt
- Clutter
- SDL2
- GLFW
- GLEW
- EFL
- winit
- XWayland
- Troubleshooting
- Kleurcorrectie
- Traagzame beweging, grafische glitches, en crashes
- Kan display niet openen: :0 met Electron-gebaseerde applicaties
- Remote display
- Invoer grijpen in spellen, remote desktop en VM-vensters
- Zie ook
Eisen
De meeste Wayland compositors werken alleen op systemen die Kernel modus instellen. Wayland zelf biedt geen grafische omgeving; hiervoor heeft u ook een compositor nodig (zie de volgende sectie), of een desktop omgeving die een compositor bevat (b.v. GNOME of KDE).
Om de GPU driver en Wayland compositor compatibel te laten zijn, moeten ze dezelfde buffer API ondersteunen. Er zijn twee hoofd APIs: GBM en EGLStreams.
Buffer-API | GPU-stuurprogramma-ondersteuning | Wayland-compositor-ondersteuning |
---|---|---|
GBM | Alle behalve NVIDIA | Alle |
EGLStreams | NVIDIA | GNOME, KDE, Weston (met een patch van derden) |
Compositors
Zie Window manager#Types voor het verschil tussen Tiling en Stacking.
Tiling
- Cagebreak – Gebaseerd op cage, geïnspireerd door ratpoison.
https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
- Cardboard – Scrolling compositor, geïnspireerd door PaperWM, gebaseerd op wlroots.
https://gitlab.com/cardboardwm/cardboard || not packaged? zoek in AUR
- dwl – dwm-achtige Wayland-compositor, gebaseerd op wlroots.
https://github.com/djpohly/dwl || dwlAUR
- japokwm – Dynamische wayland tiling compositor gebaseerd op het maken van layouts, gebaseerd op wlroots.
https://github.com/werererer/japokwm || not packaged? zoek in AUR
- river – Dynamische Wayland compositor met tegels, geïnspireerd door dwm en bspwm.
https://github.com/ifreund/river || river-gitAUR
- Sway – i3-compatibele Wayland compositor gebaseerd op wlroots.
https://github.com/swaywm/sway || sway
- Velox – Eenvoudige window manager gebaseerd op swc, geïnspireerd door dwm en xmonad.
https://github.com/michaelforney/velox || veloxAUR
- waymonad – Wayland compositor geïnspireerd door xmonad geschreven in Haskell.
https://github.com/waymonad/waymonad || not packaged? zoek in AUR
Stacking
- Enlightenment – Zie Enlightenment#Manually. Meer informatie:
https://www.enlightenment.org/ || enlightenment
- Greenfield – Draait in een webbrowser en kan toepassingen op afstand weergeven.
https://greenfield.app/ || not packaged? search in AUR
- Grefsen – Qt/Wayland compositor die een minimale desktopomgeving biedt.
https://github.com/ec1oud/grefsen || not packaged? search in AUR
- hikari – wlroots-gebaseerde compositor geïnspireerd door cwm die actief wordt ontwikkeld op FreeBSD maar ook Linux ondersteunt.
https://hikari.acmelabs.space/ || hikariAUR
- KDE KWin – Zie KDE#Starting Plasma.
https://userbase.kde.org/KWin || kwin
- Liri Shell – Onderdeel van Liri, gebouwd met behulp van QtQuick en QtCompositor als een compositor voor Wayland.
https://github.com/lirios/shell || liri-shell-gitAUR
- labwc – een op wlroots gebaseerde compositor, geïnspireerd door Openbox.
https://github.com/johanmalm/labwc || labwc-gitAUR
- Mutter – Zie GNOME#Starting.
https://gitlab.gnome.org/GNOME/mutter || mutter
- wayfire – 3D-compositor geïnspireerd door Compiz en gebaseerd op wlroots.
https://wayfire.org/ || wayfireAUR
- Weston – referentie-implementatie van een Wayland-compositor.
https://gitlab.freedesktop.org/wayland/weston || weston
- wio – op wlroots gebaseerde compositor die tot doel heeft het uiterlijk en het gevoel van Plan 9’s Rio desktop te repliceren.
https://wio-project.org/ || niet verpakt? zoeken in AUR
Other
- Cage – Geeft een enkele fullscreen applicatie weer zoals een kiosk.
https://www.hjdskes.nl/projects/cage/ || cage
- Maze Compositor – rendert vensters in een 3D-doolhof met behulp van Qt.
https://github.com/imbavirus/mazecompositor || not packaged? search in AUR
- Motorcar – Wayland compositor om 3D windowing te verkennen met behulp van virtual reality.
https://github.com/evil0sheep/motorcar || not packaged? search in AUR
Sommige van de bovenstaande kunnen display managers ondersteunen. Controleer /usr/share/wayland-sessions/compositor.desktop
om te zien hoe ze worden gestart.
Display managers
De hieronder genoemde display managers ondersteunen het starten van Wayland compositors. De kolom “Type” geeft aan of de display manager het starten op Wayland ondersteunt of niet.
Naam | Type | Beschrijving |
---|---|---|
GDM | Draait op Wayland | GNOME display manager. |
greetd | Login daemon | Minimale en flexibele login daemon. |
LightDM | Runs on X11 | Cross-desktop display manager. |
Ly | Runs in console | TUI display manager geschreven in C |
SDDM | Runs on X11 | QML-based display manager. |
tbsm | Uitgevoerd in console | Eenvoudige CLI sessie launcher geschreven in pure bash. |
GUI bibliotheken
Zie details op de officiële website.
GTK
De gtk3 en gtk4 pakketten hebben de Wayland backend ingeschakeld. GTK zal standaard het Wayland backend gebruiken, maar het is mogelijk om dit te veranderen naar Xwayland door een omgevingsvariabele aan te passen: GDK_BACKEND=x11
.
Qt
Om Wayland ondersteuning in Qt 5 of 6 aan te zetten, installeer het qt5-wayland of qt6-wayland pakket, respectievelijk.
Om een Qt applicatie met de Wayland plugin te draaien, gebruik -platform wayland
of QT_QPA_PLATFORM=wayland
omgevingsvariabele. Om het gebruik van X11 op een Wayland sessie te forceren, gebruikt u QT_QPA_PLATFORM=xcb
. Dit kan nodig zijn voor sommige propriëtaire applicaties die geen gebruik maken van de systeemimplementatie van Qt, zoals zoomAUR.
Op sommige compositors, bijvoorbeeld sway, kunnen Qt applicaties die in eigen beheer draaien ontbrekende functionaliteit hebben. Bijvoorbeeld, KeepassXC zal niet in staat zijn om te minimaliseren naar de tray. Dit kan worden opgelost door qt5ct te installeren en QT_QPA_PLATFORMTHEME=qt5ct
in te stellen voordat de applicatie wordt uitgevoerd.
Clutter
De Clutter toolkit heeft een Wayland backend die het mogelijk maakt om als een Wayland client te draaien. De backend is ingeschakeld in het clutter pakket.
Om een Clutter applicatie op Wayland te draaien, stel CLUTTER_BACKEND=wayland
.
SDL2
Om een SDL2 applicatie op Wayland te draaien, stel SDL_VIDEODRIVER=wayland
.
SDL_VIDEODRIVER=wayland
instelt. Om de applicatie te forceren om met XWayland te draaien, stelt u SDL_VIDEODRIVER=x11
in.GLFW
Om GLFW met de Wayland backend te gebruiken, installeert u het glfw-wayland pakket (in plaats van glfw-x11).
GLEW
Het glew-waylandAUR pakket werkt momenteel nog niet met veel op GLEW gebaseerde applicaties, dus de enige optie is om glew met Xwayland te gebruiken. Zie FS#62713.
EFL
EFL heeft volledige Wayland ondersteuning. Om een EFL applicatie op Wayland te draaien, zie Wayland project pagina.
winit
Winit is een venster afhandel bibliotheek in Rust. Het zal standaard het Wayland backend gebruiken, maar het is mogelijk om het naar Xwayland te veranderen door een omgevingsvariabele aan te passen: WINIT_UNIX_BACKEND=x11
.
XWayland
XWayland is een X Server die draait onder Wayland. Het biedt achterwaartse compatibiliteit voor oudere X11 applicaties.
Om het te gebruiken, installeer het xorg-xwayland pakket.
XWayland wordt gestart via een compositor, dus u zou moeten controleren op XWayland compatibiliteit en instructies over hoe XWayland te starten, met de compositor van uw keuze.
- Met betrekking tot beveiliging: XWayland is een X Server, dus het heeft niet de beveiligingsmogelijkheden van Wayland!
- Voorlopig ondersteunt het Nvidia eigen stuurprogramma geen GPU versnelling voor XWayland. Zie deze of deze pull request voor de status van XWayland ondersteuning.
Troubleshooting
Kleurcorrectie
Zie Backlight#Color correction.
Traagzame beweging, grafische glitches, en crashes
Gnome-shell gebruikers kunnen weergave problemen ondervinden wanneer ze van X naar Wayland overschakelen. Een van de hoofdoorzaken kan de CLUTTER_PAINT=disable-clipped-redraws:disable-culling
zijn die door uzelf is ingesteld voor Xorg-gebaseerde gnome-shell. Probeer deze te verwijderen uit /etc/environment
of andere rc bestanden om te zien of alles weer normaal wordt.
Kan display niet openen: :0 met Electron-gebaseerde applicaties
Zorg ervoor dat u GDK_BACKEND=wayland niet heeft ingesteld. Als u dit globaal instelt, zullen Electron-toepassingen kapot gaan.
Remote display
- (20200206) wlroots (gebruikt door sway) biedt een VNC backend via wayvncAUR sinds versie 0.10. RDP backend is verwijderd.
- (20180401) mutter heeft nu remote desktop ingeschakeld bij compileertijd, zie en gnome-remote-desktop voor details.
- Er was een samenvoeging van FreeRDP in Weston in 2013, ingeschakeld via een compileervlag. Het weston-pakket heeft het ingeschakeld sinds versie 6.0.0.
- waypipe-gitAUR is een transparante proxy voor Wayland-toepassingen, met een wrapper-commando om over SSH uit te voeren
Invoer grijpen in spellen, remote desktop en VM-vensters
In tegenstelling tot Xorg staat Wayland het exclusief grijpen van invoerapparaten niet toe, ook bekend als actief of expliciet grijpen (bijv.b.v. toetsenbord, muis), in plaats daarvan is het afhankelijk van de Wayland compositor om sneltoetsen door te geven en het aanwijsapparaat te beperken tot het toepassingsvenster.
Deze verandering in het grijpen van invoer breekt het gedrag van de huidige toepassingen, wat betekent:
- Hotkey combinaties en modifiers zullen worden opgevangen door de compositor en zullen niet worden verzonden naar externe desktop en virtuele machine vensters.
- De muisaanwijzer wordt niet beperkt tot het venster van de toepassing, wat een parallax-effect kan veroorzaken waarbij de locatie van de muisaanwijzer binnen het venster van de virtuele machine of het externe bureaublad wordt verplaatst van de muisaanwijzer van de host.
Wayland lost dit op door protocoluitbreidingen voor Wayland en XWayland toe te voegen. Ondersteuning voor deze extensies is nodig om te worden toegevoegd aan de Wayland compositors. In het geval van native Wayland clients, moeten de gebruikte widget toolkits (b.v. GTK, Qt) deze extensies ondersteunen of de applicaties zelf als er geen widget toolkit wordt gebruikt. In het geval van Xorg applicaties zijn geen veranderingen in de applicaties of widget toolkits nodig omdat de XWayland ondersteuning voldoende is.
Deze extensies zijn al opgenomen in wayland-protocols, en worden ondersteund door xorg-xwayland.
De gerelateerde extensies zijn:
- XWayland keyboard grabbing protocol
- Compositor shortcuts inhibit protocol
- Relative pointer protocol
- Pointer constraints protocol
Ondersteunende Wayland compositors:
- Mutter, GNOME’s compositor sinds versie 3.28
- wlroots ondersteunt relative-pointer en pointer-constraints
Ondersteunende widget-toolkits:
- GTK sinds versie 3.22.18.
Zie ook
- Wayland-documentatie online
- Officiële Wayland Git Repo
- Fedora:Hoe Wayland problemen te debuggen
- Geweldige Wayland projecten
- Cursor thema’s
- Arch Linux forum discussie
- i3 Migratie Gids – Gebruikelijke X11 apps gebruikt op i3 met Wayland alternatieven