A Wayland egy kijelzőszerver protokoll. Célja, hogy az X Window System utódja legyen. A Wayland és az Xorg összehasonlítása megtalálható a Wikipédián.
A Wayland protokollt használó kijelzőszervereket kompozitoroknak nevezik, mivel kompozit ablakkezelőként is működnek. Az alábbiakban a Wayland kompozitorok listáját találja.
A visszamenőleges kompatibilitás érdekében a régebbi X11 alkalmazások zökkenőmentes futtatásához használható az XWayland, amely X-kiszolgálót biztosít a Waylandben.
- Követelmények
- Compositors
- Tiling
- Stacking
- Más
- Kijelzőkezelők
- GUI könyvtárak
- GTK
- Qt
- Clutter
- SDL2
- GLFW
- GLEW
- EFL
- winit
- XWayland
- Hibaelhárítás
- Színkorrekció
- Lassú mozgás, grafikai zavarok és összeomlások
- Cannot open display: :0 with Electron-based applications
- Remote display
- Input grabbing in games, remote desktop and VM windows
- Lásd még
Követelmények
A legtöbb Wayland kompozitor csak a Kernel mód beállítását használó rendszereken működik. A Wayland önmagában nem biztosít grafikus környezetet; ehhez szükség van egy kompozitorra is (lásd a következő részt), vagy egy olyan asztali környezetre, amely tartalmaz kompozitort (pl. GNOME vagy KDE).
A GPU-illesztőprogram és a Wayland kompozitor kompatibilitásához ugyanazt a puffer API-t kell támogatniuk. Két fő API létezik: GBM és EGLStreams.
Puffer API | GPU driver támogatása | Wayland compositor támogatása |
---|---|---|
GBM | Minden, kivéve NVIDIA | Minden |
EGLStreams | NVIDIA | GNOME, KDE, Weston (harmadik féltől származó javítással) |
Compositors
A Tiling és Stacking közötti különbségről lásd: Window manager#Types.
Tiling
- Cagebreak – A cage alapján, a ratpoison ihlette.
https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
- Cardboard – Gördülő kompozitor, a PaperWM ihlette, a wlroots alapján.
https://gitlab.com/cardboardwm/cardboard || nincs csomagolva? keresés az AUR-ban
- dwl – dwm-szerű Wayland kompozitor a wlroots alapján.
https://github.com/djpohly/dwl || dwlAUR
- japokwm – Dinamikus wayland csempekompozitor, amely az elrendezések létrehozása köré épül, wlroots alapján.
https://github.com/werererer/japokwm || nem csomagolva? search in AUR
- river – Dynamic tiling Wayland compositor inspired by dwm and bspwm.
https://github.com/ifreund/river || river-gitAUR
- Sway – i3-kompatibilis Wayland compositor based on wlroots.
https://github.com/swaywm/sway || sway
- Velox – swc alapú egyszerű ablakkezelő, amelyet a dwm és az xmonad ihletett.
https://github.com/michaelforney/velox || veloxAUR
- waymonad – Haskell nyelven írt Wayland compositor, amelyet az xmonad ihletett.
https://github.com/waymonad/waymonad || nincs csomagolva? keresd az AUR-ban
Stacking
- Enlightenment – Lásd Enlightenment#Manually. További információk:
https://www.enlightenment.org/ || enlightenment
- Greenfield – Webböngészőben fut és képes távoli alkalmazások megjelenítésére.
https://greenfield.app/ || not packaged? search in AUR
- Grefsen – Qt/Wayland kompozitor, amely minimális asztali környezetet biztosít.
https://github.com/ec1oud/grefsen || not packaged? search in AUR
- hikari – a cwm által inspirált wlroots-alapú compositor, amelyet FreeBSD-n aktívan fejlesztenek, de Linuxot is támogat.
https://hikari.acmelabs.space/ || hikariAUR
- KDE KWin – Lásd KDE#Starting Plasma.
https://userbase.kde.org/KWin || kwin
- Liri Shell – A Liri része, a QtQuick és a QtCompositor segítségével készült kompozitor a Waylandhez.
https://github.com/lirios/shell || liri-shell-gitAUR
- labwc – wlroots alapú kompozitor, melyet az Openbox ihletett.
https://github.com/johanmalm/labwc || labwc-gitAUR
- Mutter – Lásd GNOME#Starting.
https://gitlab.gnome.org/GNOME/mutter || mutter
- wayfire – Compiz által inspirált és wlroots alapú 3D kompozitor.
https://wayfire.org/ || wayfireAUR
- Weston – egy Wayland kompozitor referencia implementációja.
https://gitlab.freedesktop.org/wayland/weston || weston
- wio – wlroots-alapú kompozitor, amelynek célja a Plan 9 Rio desktop kinézetének és hangulatának másolása.
https://wio-project.org/ || nem csomagolva? Keresés az AUR-ban
Más
- Cage – Egyetlen teljes képernyős alkalmazást jelenít meg, mint egy kioszk.
https://www.hjdskes.nl/projects/cage/ || cage
- Maze Compositor – Ablakokat jelenít meg egy 3D labirintusban a Qt segítségével.
https://github.com/imbavirus/mazecompositor || nem csomagolt? search in AUR
- Motorcar – Wayland compositor a 3D ablakozás felfedezéséhez a virtuális valóság segítségével.
https://github.com/evil0sheep/motorcar || not packaged? search in AUR
A fentiek közül néhány támogathatja a display managereket. Ellenőrizze /usr/share/wayland-sessions/compositor.desktop
, hogyan indulnak el.
Kijelzőkezelők
Az alább felsorolt kijelzőkezelők támogatják a Wayland kompozitorok indítását. A “Típus” oszlop jelzi, hogy a kijelzőkezelő támogatja-e saját maga futtatását Waylanden vagy sem.
Név | Típus | leírás |
---|---|---|
GDM | Fut Waylanden | GNOME kijelzőkezelő. |
greetd | Login daemon | Minimális és rugalmas login daemon. |
LightDM | Fut az X11-en | Cross-desktop display manager. |
Ly | Fut konzolon | C nyelven írt TUI display manager |
SDDM | Fut X11-en | QML alapú display manager. |
tbsm | Konzolon fut | Egyszerű, tiszta bash-ben írt CLI munkamenet indító. |
GUI könyvtárak
A részleteket lásd a hivatalos weboldalon.
GTK
A gtk3 és gtk4 csomagokban engedélyezve van a Wayland backend. A GTK alapértelmezés szerint a Wayland backendet használja, de egy környezeti változó módosításával felülbírálható az Xwaylandre: GDK_BACKEND=x11
.
Qt
A Wayland támogatás engedélyezéséhez a Qt 5 vagy 6-ban telepítse a qt5-wayland, illetve qt6-wayland csomagot.
A Qt alkalmazás futtatásához a Wayland bővítménnyel , használja a -platform wayland
vagy QT_QPA_PLATFORM=wayland
környezeti változót. Az X11 használatának kikényszerítéséhez egy Wayland munkamenetben használja a QT_QPA_PLATFORM=xcb
. Erre néhány olyan saját fejlesztésű alkalmazásnál lehet szükség, amelyek nem használják a rendszer Qt implementációját, mint például a zoomAUR.
Egyes kompozitorokon, például a swayen, a natívan futó Qt alkalmazásoknak hiányozhat a funkcionalitása. Például a KeepassXC nem lesz képes minimalizálni a tálcára. Ez megoldható a qt5ct telepítésével és az alkalmazás futtatása előtt a QT_QPA_PLATFORMTHEME=qt5ct
beállításával.
Clutter
A Clutter eszköztár rendelkezik Wayland backenddel, amely lehetővé teszi, hogy Wayland kliensként fusson. A backend a clutter csomagban van engedélyezve.
A Clutter alkalmazás Waylanden való futtatásához állítsa be a CLUTTER_BACKEND=wayland
.
SDL2
A SDL2 alkalmazás Waylanden való futtatásához állítsa be a SDL_VIDEODRIVER=wayland
.
SDL_VIDEODRIVER=wayland
értéket. Az alkalmazás XWaylanddel való futtatásának kikényszerítéséhez állítsa be a SDL_VIDEODRIVER=x11
.GLFW
A GLFW használatához a Wayland backenddel telepítse a glfw-wayland csomagot (a glfw-x11 helyett).
GLEW
A glew-waylandAUR csomag jelenleg még nem működik sok GLEW-alapú alkalmazással, így az egyetlen lehetőség a glew használata az Xwaylanddel. Lásd FS#62713.
EFL
AzEFL teljes Wayland támogatással rendelkezik. EFL alkalmazás futtatásához Waylanden lásd a Wayland projekt oldalát.
winit
A Winit egy ablakkezelő könyvtár Rust nyelven. Alapértelmezés szerint a Wayland háttértárat használja, de egy környezeti változó módosításával felülbírálható az Xwaylandre: WINIT_UNIX_BACKEND=x11
.
XWayland
Az XWayland egy X Server, amely Wayland alatt fut. Visszafelé kompatibilitást biztosít a régebbi X11 alkalmazások számára.
A használatához telepítse az xorg-xwayland csomagot.
Az XWayland egy kompozitoron keresztül indul, ezért ellenőrizze az XWayland kompatibilitást és az XWayland indítására vonatkozó utasításokat, az Ön által választott kompozitorral.
- A biztonságra vonatkozóan:
- Az Nvidia saját fejlesztésű illesztőprogramja egyelőre nem támogatja az XWayland GPU-gyorsítást. Az XWayland támogatásának állapotáról lásd ezt vagy ezt a pull requestet.
Hibaelhárítás
Színkorrekció
Lásd Backlight#Színkorrekció.
Lassú mozgás, grafikai zavarok és összeomlások
A gnome-shell felhasználók megjelenítési problémákat tapasztalhatnak, amikor X-ről Waylandre váltanak. Az egyik kiváltó ok lehet a saját maga által beállított CLUTTER_PAINT=disable-clipped-redraws:disable-culling
az Xorg-alapú gnome-shellhez. Próbáld meg eltávolítani a /etc/environment
vagy más rc fájlokból, hátha minden visszatér a normális kerékvágásba.
Cannot open display: :0 with Electron-based applications
Győződj meg róla, hogy nem állítottad be a GDK_BACKEND=wayland értéket. Ennek globális beállítása tönkreteszi az Electron alkalmazásokat.
Remote display
- (20200206) wlroots (sway által használt) VNC backend-et kínál a wayvncAUR-on keresztül a 0.10-es verzió óta. Az RDP backend eltávolításra került. .
- (20180401) A mutter mostantól engedélyezi a távoli asztalt fordítási időben, lásd és gnome-remote-desktop a részletekért.
- A FreeRDP-t 2013-ban beolvasztották a Westonba, amit egy fordítási flag segítségével engedélyeztek. A weston csomagban a 6.0.0 verzió óta engedélyezve van.
- waypipe-gitAUR egy átlátható proxy a Wayland alkalmazásokhoz, egy SSH-n keresztül futtatható wrapper paranccsal
Input grabbing in games, remote desktop and VM windows
A Xorggal ellentétben a Wayland nem engedélyezi a kizárólagos input eszköz megragadást, más néven aktív vagy explicit grab (e.pl. billentyűzet, egér), ehelyett a Wayland kompozitortól függ, hogy átadja a billentyűkombinációkat, és a mutató eszközt az alkalmazás ablakára korlátozza.
Ez a változás a bemeneti megragadásban megtöri a jelenlegi alkalmazások viselkedését, ami azt jelenti, hogy:
- A billentyűkombinációkat és módosítókat a kompozitor fogja elkapni, és nem fogja elküldeni a távoli asztal és a virtuális gép ablakaira.
- Az egérmutató nem lesz az alkalmazás ablakára korlátozva, ami parallaxis-effektust okozhat, amikor az egérmutató helye a virtuális gép vagy a távoli asztal ablakán belül eltolódik a host egérmutatójától.
A Wayland ezt a Wayland és az XWayland protokollbővítésekkel oldja meg. Ezeknek a kiterjesztéseknek a támogatását a Wayland kompozitorokhoz kell hozzáadni. A natív Wayland kliensek esetében a használt widget toolkiteknek (pl. GTK, Qt) kell támogatniuk ezeket a kiterjesztéseket, vagy maguknak az alkalmazásoknak, ha nem használnak widget toolkitet. Xorg-alkalmazások esetében nincs szükség változtatásra az alkalmazásokban vagy a widget toolkitekben, mivel az XWayland-támogatás elegendő.
Ezek a kiterjesztések már szerepelnek a wayland-protocols-ban, és az xorg-xwayland támogatja őket.
A kapcsolódó kiterjesztések:
- XWayland billentyűzetmegragadási protokoll
- Compositor shortcuts inhibit protocol
- Relatív mutató protokoll
- Pointer constraints protocol
Támogatott Wayland kompozitorok:
- Mutter, a GNOME kompozitora a 3. kiadás óta.28
- wlroots támogatja a relative-pointer és pointer-constraints
Támogatja a widget toolkiteket:
- GTK a 3.22.18-as kiadás óta.
Lásd még
- Wayland dokumentáció online
- Official Wayland Git Repo
- Fedora:
- Félelmetes Wayland projektek
- Cursor témák
- Arch Linux fórum vita
- i3 Migration Guide – Common X11 apps used on i3 with Wayland alternatives