Wayland on näyttöpalvelinprotokolla. Siitä on tarkoitus tulla X Window Systemin seuraaja. Waylandin ja Xorgin vertailu löytyy Wikipediasta.
Wayland-protokollaa käyttäviä näyttöpalvelimia kutsutaan komposiittoreiksi, koska ne toimivat myös komposiitti-ikkunanhallintaohjelmina. Alla on luettelo Wayland-komposiittoreista.
Takaisinkompatibiliteetin takaamiseksi, jotta vanhoja X11-sovelluksia voidaan ajaa saumattomasti, voidaan käyttää XWaylandia, joka tarjoaa X-palvelimen Waylandissa.
- Tarpeet
- Compositorit
- Tiling
- Stacking
- Muut
- Näytönhallinta
- GUI-kirjastot
- GTK
- Qt
- Clutter
- SDL2
- GLFW
- GLEW
- EFL
- winit
- XWayland
- Vianmääritys
- Värinkorjaus
- Hitaat liikkeet, graafiset häiriöt ja kaatumiset
- Cannot open display: :0 with Electron-based applications
- Remote display
- Syötteen tarttuminen peleissä, etätyöpöydässä ja VM-ikkunoissa
- Katso myös
Tarpeet
Vähäisimmät Wayland-komposiittorit toimivat vain järjestelmissä, joissa käytetään Kernel-tila-asetusta. Wayland ei itsessään tarjoa graafista ympäristöä; sitä varten tarvitaan myös kompositori (ks. seuraava kappale) tai työpöytäympäristö, joka sisältää kompositorin (esim. GNOME tai KDE).
Jotta näytönohjainajuri ja Wayland-kompositori olisivat yhteensopivia, niiden on tuettava samaa puskuri-API:tä. Pääasiallisia API:ita on kaksi: GBM ja EGLStreams.
Puskuri-API | GPU-ohjaimen tuki | Wayland-kompositorin tuki |
---|---|---|
GBM | Kaikki paitsi NVIDIA | Kaikki |
EGLStreams | NVIDIA | GNOME, KDE, Weston (kolmannen osapuolen korjauksella) |
Compositorit
Katso Ikkunanhallinta#Tyypit Tilingin ja Stackingin välinen ero.
Tiling
- Cagebreak – Perustuu häkkiin, innoittamana rotanmyrkky.
https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
- Cardboard – Vierivä kompositori, innoittamana PaperWM, perustuen wlroots.
https://gitlab.com/cardboardwm/cardboard || ei pakattu? hae AUR:sta
- dwl – dwm:n kaltainen Wayland-sompositori, joka perustuu wlrootsiin.
https://github.com/djpohly/dwl || dwlAUR
- japokwm – Dynaaminen wayland-laatoituskompositori, joka perustuu layoutin luomiseen, perustuu wlrootsiin.
https://github.com/werererer/japokwm || ei pakattu? search in AUR
- river – Dynaaminen laatoitus Wayland-sompositori, joka on saanut vaikutteita dwm:stä ja bspwm:stä.
https://github.com/ifreund/river || river-gitAUR
- Sway – i3-yhteensopiva Wayland-sompositori, joka perustuu wlrootsiin.
https://github.com/swaywm/sway || sway
- Velox – Yksinkertainen swc:hen perustuva ikkunanhallinta, joka on saanut inspiraationsa dwm:stä ja xmonadista.
https://github.com/michaelforney/velox || veloxAUR
- waymonad – Haskell-kielellä kirjoitettu xmonadin inspiroima Wayland-kompositori.
https://github.com/waymonad/waymonad || not packaged? search in AUR
Stacking
- Enlightenment – Katso Enlightenment#Manually. Lisätietoja:
https://www.enlightenment.org/ || enlightenment
- Greenfield – Toimii selaimessa ja voi näyttää etäsovelluksia.
https://greenfield.app/ || not packaged? search in AUR
- Grefsen – Qt/Wayland compositor, joka tarjoaa minimaalisen työpöytäympäristön.
https://github.com/ec1oud/grefsen || not packaged? search in AUR
- hikari – cwm:n innoittama wlroots-pohjainen compositor, jota kehitetään aktiivisesti FreeBSD:llä mutta joka tukee myös Linuxia.
https://hikari.acmelabs.space/ || hikariAUR
- KDE KWin – Katso KDE#Starting Plasma.
https://userbase.kde.org/KWin || kwin
- Liri Shell – Osa Liriä, joka on rakennettu QtQuickin ja QtCompositorin avulla säveltäjäksi Waylandille.
https://github.com/lirios/shell || liri-shell-gitAUR
- labwc – Openboxin innoittama wlroots-pohjainen compositor.
https://github.com/johanmalm/labwc || labwc-gitAUR
- Mutter – Katso GNOME#Starting.
https://gitlab.gnome.org/GNOME/mutter || mutter
- wayfire – Compizin innoittama ja wlroots-pohjainen 3D-sompositori.
https://wayfire.org/ || wayfireAUR
- Weston – Wayland-sompositorin referenssitoteutus.
https://gitlab.freedesktop.org/wayland/weston || weston
- wio – wlroots-pohjainen compositor, jonka tavoitteena on jäljitellä Plan 9:n Rio-työpöydän ulkoasua.
https://wio-project.org/ || not packaged? Etsi AUR:sta
Muut
- Cage – Näyttää yhden koko ruudun sovelluksen kioskin tapaan.
https://www.hjdskes.nl/projects/cage/ || cage
- Maze Compositor – Renderöi ikkunoita 3D-labyrintissa Qt:n avulla.
https://github.com/imbavirus/mazecompositor || ei pakattu? search in AUR
- Motorcar – Wayland-kompositori, joka tutkii 3D-ikkunoiden muodostamista virtuaalitodellisuuden avulla.
https://github.com/evil0sheep/motorcar || not packaged? search in AUR
Joissakin edellä mainituissa voi olla tuki näytönhallintaan. Tarkista /usr/share/wayland-sessions/compositor.desktop
, miten ne käynnistetään.
Näytönhallinta
Alhaalla luetellut näytönhallintaohjelmat tukevat Wayland-kompositoreiden käynnistämistä. ”Tyyppi”-sarakkeessa ilmoitetaan, tukeeko näytönhallinta itsensä käynnistämistä Waylandissa vai ei.
Nimi | Tyyppi | Kuvaus |
---|---|---|
GDM | Käynnistyy Waylandissa | GNOME-näytönhallinta. |
greetd | Login daemon | Minimaalinen ja joustava login daemon. |
LightDM | Käytetään X11:ssä | Työpöydän rajat ylittävä näytönhallinta. |
Ly | Ajuu konsolissa | TUI-näytönhallinta, joka on kirjoitettu C:llä |
SDDM | Ajuu X11:llä | QML-pohjainen näytönhallinta. |
tbsm | Ajuu konsolissa | Yksinkertainen CLI-istunnon käynnistäjä, joka on kirjoitettu puhtaalla bashilla. |
GUI-kirjastot
Katso yksityiskohdat virallisilta sivuilta.
GTK
Gtk3- ja gtk4-paketeissa on Wayland-backend käytössä. GTK käyttää oletusarvoisesti Waylandin backendiä, mutta se on mahdollista ohittaa Xwaylandiin muuttamalla ympäristömuuttujaa: GDK_BACKEND=x11
.
Qt
Voidaksesi ottaa Wayland-tuen käyttöön Qt 5:ssä tai 6:ssa, asenna qt5-wayland- tai qt6-wayland-paketti vastaavasti.
Voidaksesi ajaa Qt-sovellusta Wayland-liitännäisen kanssa, käytä ympäristömuuttujaa -platform wayland
tai QT_QPA_PLATFORM=wayland
. Jos haluat pakottaa X11:n käytön Wayland-istunnossa, käytä QT_QPA_PLATFORM=xcb
. Tämä saattaa olla tarpeen joillekin omille sovelluksille, jotka eivät käytä järjestelmän Qt-toteutusta, kuten zoomAUR.
Joissain komposiittoreissa, esimerkiksi swayssä, natiivisti ajettavilta Qt-sovelluksilta saattaa puuttua toimintoja. Esimerkiksi KeepassXC ei pysty minimoimaan lokeroon. Tämä voidaan ratkaista asentamalla qt5ct ja asettamalla QT_QPA_PLATFORMTHEME=qt5ct
ennen sovelluksen ajamista.
Clutter
Clutter-työkalupakissa on Wayland-backend, jonka avulla sitä voidaan ajaa Wayland-asiakkaana. Backend on otettu käyttöön clutter-paketissa.
Jos haluat ajaa Clutter-sovellusta Waylandissa, aseta CLUTTER_BACKEND=wayland
.
SDL2
Jos haluat ajaa SDL2-sovellusta Waylandissa, aseta SDL_VIDEODRIVER=wayland
.
SDL_VIDEODRIVER=wayland
. Jos haluat pakottaa sovelluksen toimimaan XWaylandin kanssa, aseta SDL_VIDEODRIVER=x11
.GLFW
Käyttääksesi GLFW:tä Waylandin backendin kanssa, asenna glfw-wayland-paketti (glfw-x11:n sijasta).
GLEW
Glew-waylandAUR-paketti ei tällä hetkellä vielä toimi monien GLEW:iin perustuvien sovellusten kanssa, joten ainoa vaihtoehto on käyttää glew:tä Xwaylandin kanssa. Katso FS#62713.
EFL
EFL:llä on täydellinen Wayland-tuki. Jos haluat ajaa EFL-sovelluksen Waylandilla, katso Wayland-projektisivu.
winit
Winit on ikkunankäsittelykirjasto Rustissa. Se käyttää oletusarvoisesti Waylandin backendiä, mutta se on mahdollista ohittaa Xwaylandiin muuttamalla ympäristömuuttujaa: WINIT_UNIX_BACKEND=x11
.
XWayland
XWayland on X-palvelin, joka toimii Waylandin alla. Se tarjoaa taaksepäin yhteensopivuuden vanhoille X11-sovelluksille.
Käyttääksesi sitä asenna xorg-xwayland-paketti.
XWayland käynnistetään compositorin kautta, joten sinun kannattaa tarkistaa XWayland-yhteensopivuus ja ohjeet XWaylandin käynnistämiseen, valitsemallasi compositorilla.
- Turvan osalta: XWayland on X-palvelin, joten siinä ei ole Waylandin tietoturvaominaisuuksia!
- Nvidian oma ajuri ei toistaiseksi tue GPU-kiihdytystä XWaylandille. Katso tästä tai tästä pull requestista XWayland-tuen tila.
Vianmääritys
Värinkorjaus
Katso Backlight#Värinkorjaus.
Hitaat liikkeet, graafiset häiriöt ja kaatumiset
Gnome-shellin käyttäjillä saattaa esiintyä näyttöongelmia, kun he vaihtavat Waylandiin X:stä. Yksi perimmäinen syy saattaa olla Xorg-pohjaiselle gnome-shellille itse asetettu CLUTTER_PAINT=disable-clipped-redraws:disable-culling
. Kokeile poistaa se /etc/environment
:stä tai muista rc-tiedostoista nähdäksesi, palautuuko kaikki ennalleen.
Cannot open display: :0 with Electron-based applications
Varmista, että et ole asettanut GDK_BACKEND=wayland. Sen asettaminen globaalisti rikkoo Electron-sovellukset.
Remote display
- (20200206) wlroots (jota sway käyttää) tarjoaa VNC-backendiä wayvncAURin kautta versiosta 0.10 lähtien. RDP-backend on poistettu. .
- (20180401) mutterissa on nyt etätyöpöytä käytössä kääntämisaikana, katso ja gnome-remote-desktop lisätietoja.
- FreeRDP:n sulauttaminen Westoniin tapahtui vuonna 2013, ja se otettiin käyttöön kääntämislippukkeella. Weston-paketissa se on otettu käyttöön versiosta 6.0.0 lähtien.
- waypipe-gitAUR on läpinäkyvä välityspalvelin Wayland-sovelluksille, jossa on wrapper-komento SSH:n kautta ajettavaksi
Syötteen tarttuminen peleissä, etätyöpöydässä ja VM-ikkunoissa
Vastoin kuin Xorg, Wayland ei salli yksinoikeudella tapahtuvaa syöttölaitteiden tarttumista, joka tunnetaan myös nimellä aktiivinen tai eksplisiittinen tarttuminen (esim.esim. näppäimistö, hiiri), sen sijaan se on riippuvainen Wayland-komposiittorista, joka välittää näppäimistön pikanäppäimet ja rajoittaa osoitinlaitteen sovellusikkunaan.
Tämä muutos syötteen tarttumisessa rikkoo nykyisten sovellusten käyttäytymisen, mikä tarkoittaa, että:
- Komennonäppäinyhdistelmät ja -muunnokset jäävät compositorin vangiksi, eikä niitä lähetetä etätyöpöydän ja virtuaalikoneen ikkunoihin.
- Hiiren osoitinta ei rajoiteta sovelluksen ikkunaan, mikä saattaa aiheuttaa parallaksi-ilmiön, jossa virtuaalikoneen tai etätyöpöydän ikkunan sisällä olevan hiiren osoittimen sijainti siirtyy isännän hiiren osoittimesta.
Wayland ratkaisee tämän lisäämällä protokollalaajennuksia Waylandille ja XWaylandille. Tuki näille laajennuksille on lisättävä Wayland-sovittimiin. Natiivien Wayland-asiakkaiden tapauksessa käytettyjen widget-työkalupakettien (esim. GTK, Qt) on tuettava näitä laajennuksia tai sovellusten itsensä, jos widget-työkalupakettia ei käytetä. Xorg-sovellusten tapauksessa sovelluksiin tai widget-työkalupaketteihin ei tarvita muutoksia, koska XWayland-tuki riittää.
Nämä laajennukset ovat jo mukana wayland-protocolsissa, ja niitä tukee xorg-xwayland.
Suhteessa olevat laajennukset ovat:
- XWaylandin näppäimistökaappausprotokolla
- Compositorin pikanäppäinten estoprotokolla
- Relatiivisen osoittimen protokolla
- Osoitinrajoitusprotokolla
Tukevia Waylandin kompositoreja ovat:
- Mutteri, GNOME:n kompositori versiosta 3 lähtien.28
- wlroots tukee relative-pointer ja pointer-constraints
Tukee widget-työkalupaketteja:
- GTK julkaisusta 3.22.18 lähtien.
Katso myös
- Waylandin dokumentaatio verkossa
- Official Wayland Git Repo
- Fedora:Wayland-ongelmien vianmääritys
- Hienoja Wayland-projekteja
- Cursor-teemoja
- Arch Linux -foorumikeskustelua
- i3-migraatio-opas – Yleiset i3:lla käytetyt X11-sovellukset ja Wayland-vaihtoehdot