Wayland

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

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.

Huomaa: Monien omien pelien mukana toimitetaan vanhoja SDL-versioita, jotka eivät tue Waylandia ja saattavat rikkoutua kokonaan, jos asetat 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.

Huomioitavaa:

  • 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

Vastaa

Sähköpostiosoitettasi ei julkaista.