Wayland

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

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.

Bemærk: Mange proprietære spil leveres sammen med gamle versioner af SDL, som ikke understøtter Wayland og måske går helt i stykker, hvis du indstiller 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.

Bemærk:

  • 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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.