Wayland er en skærmserverprotokol. Det er målet at blive efterfølgeren til X Window System. Du kan finde en sammenligning mellem Wayland og Xorg på Wikipedia.
Skærmservere, der bruger Wayland-protokollen, kaldes compositors, fordi de også fungerer som compositing window managers. Nedenfor kan du finde en liste over Wayland-kompositorer.
For bagudkompatibilitet for problemfrit at køre ældre X11-programmer kan XWayland bruges, som giver en X-server i Wayland.
- Krav
- Compositors
- Tiling
- Stacking
- Andre
- Avisningsmanagere
- GUI-biblioteker
- GTK
- Qt
- Clutter
- SDL2
- GLFW
- GLEW
- EFL
- winit
- XWayland
- Fejlfinding
- Farvekorrektion
- Langsom bevægelse, grafiske fejl og nedbrud
- Kan ikke åbne display: :0 med Electron-baserede programmer
- Fjernvisning
- Input grabbing in games, remote desktop and VM windows
- Se også
Krav
De fleste Wayland-kompositorer fungerer kun på systemer, der bruger Kernel-mode-indstilling. Wayland leverer ikke i sig selv et grafisk miljø; til dette har du også brug for en compositor (se følgende afsnit) eller et skrivebordsmiljø, der indeholder en compositor (f.eks. GNOME eller KDE).
For at GPU-driveren og Wayland-compositoren skal være kompatible, skal de understøtte den samme buffer-API. Der er to hoved-API’er: GBM og EGLStreams.
Buffer API | GPU-driverunderstøttelse | Wayland compositor-understøttelse |
---|---|---|
GBM | Alle undtagen NVIDIA | Alle |
EGLStreams | NVIDIA | GNOME, KDE, Weston (med en tredjepartspatch) |
Compositors
Se Window manager#Types for forskellen mellem Tiling og Stacking.
Tiling
- Cagebreak – Baseret på cage, inspireret af ratpoison.
https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
- Cardboard – Scrolling compositor, inspireret af PaperWM, baseret på wlroots.
https://gitlab.com/cardboardwm/cardboard || ikke pakket? søg i AUR
- dwl – dwm-lignende Wayland-kompositor baseret på wlroots.
https://github.com/djpohly/dwl || dwlAUR
- japokwm – Dynamisk wayland tiling compositor baseret omkring oprettelse af layouts, baseret på wlroots.
https://github.com/werererer/japokwm || ikke pakket? søg i AUR
- river – Dynamisk tiling Wayland-kompositor inspireret af dwm og bspwm.
https://github.com/ifreund/river || river-gitAUR
- Sway – i3-kompatibel Wayland-kompositor baseret på wlroots.
https://github.com/swaywm/sway || sway
- Velox – Simpel vindueshåndtering baseret på swc, inspireret af dwm og xmonad.
https://github.com/michaelforney/velox || veloxAUR
- waymonad – Wayland-compositor inspireret af xmonad skrevet i Haskell.
https://github.com/waymonad/waymonad ||ikke pakket? søg i AUR
Stacking
- Enlightenment – Se Enlightenment#Manuelt. Flere oplysninger:
https://www.enlightenment.org/ || enlightenment
- Greenfield – Kører i en webbrowser og kan vise fjernprogrammer.
https://greenfield.app/ || not packaged? søg i AUR
- Grefsen – Qt/Wayland-compositor, der giver et minimalt skrivebordsmiljø.
https://github.com/ec1oud/grefsen ||ikke pakket? søg i AUR
- hikari – wlroots-baseret compositor inspireret af cwm, som er aktivt udviklet på FreeBSD, men som også understøtter Linux.
https://hikari.acmelabs.space/ || hikariAUR
- KDE KWin – Se KDE#Starting Plasma.
https://userbase.kde.org/KWin || kwin
- Liri Shell – En del af Liri, bygget ved hjælp af QtQuick og QtCompositor som en compositor til Wayland.
https://github.com/lirios/shell || liri-shell-gitAUR
- labwc – wlroots-baseret compositor inspireret af Openbox.
https://github.com/johanmalm/labwc || labwc-gitAUR
- Mutter – Se GNOME#Starting.
https://gitlab.gnome.org/GNOME/mutter || mutter
- wayfire – 3D-kompositor inspireret af Compiz og baseret på wlroots.
https://wayfire.org/ || wayfireAUR
- Weston – referenceimplementering af en Wayland-kompositor.
https://gitlab.freedesktop.org/wayland/weston || weston
- wio – wlroots-baseret compositor, der har til formål at efterligne udseendet og fornemmelsen af Plan 9’s Rio-skrivebord.
https://wio-project.org/ || ikke pakket? søg i AUR
Andre
- Cage – Viser en enkelt fuldskærmsapplikation som en kiosk.
https://www.hjdskes.nl/projects/cage/ || cage
- Maze Compositor – Gengiver vinduer i en 3D-labyrint ved hjælp af Qt.
https://github.com/imbavirus/mazecompositor || ikke pakket? søg i AUR
- Motorcar – Wayland compositor til at udforske 3D-vinduer ved hjælp af virtual reality.
https://github.com/evil0sheep/motorcar ||ikke pakket? søg i AUR
Nogle af ovenstående understøtter muligvis display managers. Tjek /usr/share/wayland-sessions/compositor.desktop
for at se, hvordan de startes.
Avisningsmanagere
Avisningsmanagere, der er anført nedenfor, understøtter start af Wayland-kompositorer. Kolonnen “Type” angiver, om visningshåndteringen understøtter at køre sig selv på Wayland eller ej.
Navn | Type | Beskrivelse |
---|---|---|
GDM | Kører på Wayland | GNOME-visningshåndtering. |
greetd | Login-dæmon | Minimal og fleksibel login-dæmon. |
LightDM | Kører på X11 | Displaymanager på tværs af skriveborde. |
Ly | Kører i konsol | TUI-display manager skrevet i C |
SDDM | Kører på X11 | QML-baseret display manager. |
tbsm | Kører i konsol | Enkle CLI-sessionslancer skrevet i ren bash. |
GUI-biblioteker
Se detaljer på det officielle websted.
GTK
Pakkerne gtk3 og gtk4 har Wayland-backend aktiveret. GTK vil som standard bruge Wayland-baggrundsend, men det er muligt at tilsidesætte det til Xwayland ved at ændre en miljøvariabel: GDK_BACKEND=x11
.
Qt
For at aktivere Wayland-understøttelse i Qt 5 eller 6 skal du installere henholdsvis qt5-wayland- eller qt6-wayland-pakken.
For at køre et Qt-program med Wayland-plugin’et skal du bruge -platform wayland
eller QT_QPA_PLATFORM=wayland
miljøvariabel. Hvis du vil fremtvinge brugen af X11 på en Wayland-session, skal du bruge QT_QPA_PLATFORM=xcb
. Dette kan være nødvendigt for nogle proprietære programmer, der ikke bruger systemets implementering af Qt, f.eks. zoomAUR.
På nogle compositors, f.eks. sway, kan Qt-programmer, der køres nativt, have manglende funktionalitet. KeepassXC vil f.eks. ikke kunne minimere til bakken. Dette kan løses ved at installere qt5ct og indstille QT_QPA_PLATFORMTHEME=qt5ct
, før programmet køres.
Clutter
Clutter-værktøjssættet har en Wayland-bagkant, der gør det muligt at køre som en Wayland-klient. Backend’en er aktiveret i clutter-pakken.
For at køre et Clutter-program på Wayland skal du indstille CLUTTER_BACKEND=wayland
.
SDL2
For at køre et SDL2-program på Wayland skal du indstille SDL_VIDEODRIVER=wayland
.
SDL_VIDEODRIVER=wayland
. Hvis du vil tvinge programmet til at køre med XWayland, skal du indstille SDL_VIDEODRIVER=x11
.GLFW
For at bruge GLFW med Wayland-backend’en skal du installere pakken glfw-wayland (i stedet for glfw-x11).
GLEW
Pakken glew-waylandAUR fungerer i øjeblikket stadig ikke med mange GLEW-baserede programmer, så den eneste mulighed er at bruge glew med Xwayland. Se FS#62713.
EFL
EFL har fuldstændig Wayland-understøttelse. Hvis du vil køre et EFL-program på Wayland, skal du se Wayland-projektets side.
winit
Winit er et vinduehåndteringsbibliotek i Rust. Det vil som standard bruge Wayland-backend, men det er muligt at overstyre det til Xwayland ved at ændre en miljøvariabel: WINIT_UNIX_BACKEND=x11
.
XWayland
XWayland er en X-server, der kører under Wayland. Den giver bagudkompatibilitet for ældre X11-programmer.
For at bruge den skal du installere pakken xorg-xwayland.
XWayland startes via en compositor, så du bør tjekke for XWayland-kompatibilitet og instruktioner om, hvordan du starter XWayland, med en compositor efter eget valg.
- Med hensyn til sikkerhed: XWayland er en X Server, så den har ikke Waylands sikkerhedsfunktioner!
- For nu understøtter den proprietære Nvidia-driver ikke GPU-acceleration for XWayland. Se denne eller denne pull-anmodning for status for understøttelse af XWayland.
Fejlfinding
Farvekorrektion
Se Baggrundsbelysning#Farvekorrektion.
Langsom bevægelse, grafiske fejl og nedbrud
Gnome-shell-brugere kan opleve problemer med visningen, når de skifter til Wayland fra X. En af de grundlæggende årsager kan være den CLUTTER_PAINT=disable-clipped-redraws:disable-culling
, som du selv har indstillet for Xorg-baseret gnome-shell. Prøv blot at fjerne den fra /etc/environment
eller andre rc-filer for at se, om alt bliver normalt igen.
Kan ikke åbne display: :0 med Electron-baserede programmer
Sørg for, at du ikke har indstillet GDK_BACKEND=wayland. Indstilling af det globalt vil ødelægge Electron-applikationer.
Fjernvisning
- (20200206) wlroots (brugt af sway) tilbyder en VNC-backend via wayvncAUR siden version 0.10. RDP-backend er blevet fjernet. .
- (20180401) mutter har nu fjernskrivebord aktiveret på kompileringstidspunktet, se og gnome-remote-desktop for detaljer.
- Der var en sammenlægning af FreeRDP i Weston i 2013, aktiveret via et kompileringsflag. Weston-pakken har det aktiveret siden version 6.0.0.0.
- waypipe-gitAUR er en gennemsigtig proxy for Wayland-programmer, med en wrapper-kommando til at køre over SSH
Input grabbing in games, remote desktop and VM windows
I modsætning til Xorg tillader Wayland ikke eksklusiv input device grabbing, også kendt som active eller explicit grab (f.eks.f.eks. tastatur, mus), i stedet afhænger det af Wayland-kompositoren til at videregive tastaturgenveje og begrænse viserenheden til programvinduet.
Denne ændring i input grabbing bryder de nuværende applikationers adfærd, hvilket betyder:
- Hotkey-kombinationer og modifikatorer vil blive fanget af compositoren og vil ikke blive sendt til fjernskrivebord og virtuelle maskinvinduer.
- Musemarkøren vil ikke være begrænset til programmets vindue, hvilket kan medføre en parallakseffekt, hvor musemarkørens placering i vinduet på den virtuelle maskine eller fjernskrivebordet er forskudt i forhold til værtens musemarkør.
Wayland løser dette ved at tilføje protokoludvidelser for Wayland og XWayland. Det er nødvendigt at tilføje understøttelse af disse udvidelser til Wayland-kompositorerne. I tilfælde af native Wayland-klienter skal de anvendte widget-værktøjskasser (f.eks. GTK, Qt) understøtte disse udvidelser eller programmerne selv, hvis der ikke anvendes nogen widget-værktøjskasse. I tilfælde af Xorg-programmer er der ikke behov for ændringer i programmerne eller widget-værktøjssættene, da XWayland-understøttelsen er tilstrækkelig.
Disse udvidelser er allerede inkluderet i wayland-protocols og understøttes af xorg-xwayland.
De relaterede udvidelser er:
- XWayland keyboard grabbing protocol
- Compositor shortcuts inhibit protocol
- Relative pointer protocol
- Pointer constraints protocol
Supporting Wayland compositors:
- Mutter, GNOME’s compositor siden release 3.28
- wlroots understøtter relative-pointer og pointer-constraints
Understøtter widget-værktøjssæt:
- GTK siden udgivelse 3.22.18.
Se også
- Wayland-dokumentation online
- Official Wayland Git Repo
- Fedora:Sådan debugger du Wayland-problemer
- Awesome Wayland-projekter
- Cursor-temaer
- Arch Linux-forumdiskussion
- i3 Migration Guide – Common X11 apps used on i3 with Wayland alternatives