Wayland este un protocol de server de afișare. Acesta este menit să devină succesorul sistemului X Window System. Puteți găsi o comparație între Wayland și Xorg pe Wikipedia.
Serverele de afișare care utilizează protocolul Wayland se numesc compozitori deoarece acționează și ca manageri de ferestre de compoziție. Mai jos puteți găsi o listă de compozitori Wayland.
Pentru compatibilitate retroactivă pentru a rula fără probleme aplicațiile X11 moștenite, se poate utiliza XWayland, care oferă un server X în Wayland.
- Cerințe
- Compozitori
- Tiling
- Stacking
- Other
- Manageri de afișare
- Biblioteci GUI
- GTK
- Qt
- Clutter
- SDL2
- GLFW
- GLEW
- EFL
- winit
- XWayland
- Dezvoltare a problemelor
- Corecție de culoare
- Mișcări lente, erori grafice și blocări
- Cannot open display: :0 with Electron-based applications
- Afișare la distanță
- Input grabbing în jocuri, desktop la distanță și ferestre VM
- Vezi și
Cerințe
Majoritatea compozitorilor Wayland funcționează numai pe sisteme care utilizează setarea modului Kernel. Wayland în sine nu oferă un mediu grafic; pentru aceasta aveți nevoie și de un compozitor (a se vedea secțiunea următoare) sau de un mediu desktop care include un compozitor (de exemplu, GNOME sau KDE).
Pentru ca driverul GPU și compozitorul Wayland să fie compatibile, acestea trebuie să suporte același API de buffer. Există două API-uri principale: GBM și EGLStreams.
Buffer API | Suport pentru driverul GPU | Suport pentru compozitorul Wayland |
---|---|---|
GBM | Toate, cu excepția NVIDIA | Toate |
EGLStreams | NVIDIA | GNOME, KDE, Weston (cu un patch de la o terță parte) |
Compozitori
Vezi Window manager#Types pentru diferența dintre Tiling și Stacking.
Tiling
- Cagebreak – Bazat pe cage, inspirat de ratpoison.
https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
- Cardboard – Compozitor de defilare, inspirat de PaperWM, bazat pe wlroots.
https://gitlab.com/cardboardwm/cardboard || not packaged? search in AUR
- dwl – Compozitor Wayland asemănător cu dwm, bazat pe wlroots.
https://github.com/djpohly/dwl || dwlAUR
- japokwm – Compozitor dinamic Wayland tiling bazat în jurul creării de layout-uri, bazat pe wlroots.
https://github.com/werererer/japokwm || nu este împachetat? căutați în AUR
- river – Compozitor Wayland dinamic de tiling inspirat de dwm și bspwm.
https://github.com/ifreund/river || river-gitAUR
- Sway – Compozitor Wayland compatibil cu i3, bazat pe wlroots.
https://github.com/swaywm/sway || sway
- Velox – Manager de ferestre simplu bazat pe swc, inspirat de dwm și xmonad.
https://github.com/michaelforney/velox || veloxAUR
- waymonad – Compozitor Wayland inspirat de xmonad scris în Haskell.
https://github.com/waymonad/waymonad || not packaged? search in AUR
Stacking
- Enlightenment – Vezi Enlightenment#Manually. Mai multe informații:
https://www.enlightenment.org/ || enlightenment
- Greenfield – Rulează într-un browser web și poate afișa aplicații la distanță.
https://greenfield.app/ || not packaged? search in AUR
- Grefsen – Compozitor Qt/Wayland care oferă un mediu desktop minimalist.
https://github.com/ec1oud/grefsen || not packaged? search in AUR
- hikari – compozitor bazat pe wlroots, inspirat de cwm, care este dezvoltat în mod activ pe FreeBSD, dar suportă și Linux.
https://hikari.acmelabs.space/ || hikariAUR
- KDE KWin – Vezi KDE#Starting Plasma.
https://userbase.kde.org/KWin || kwin
- Liri Shell – Parte din Liri, construit folosind QtQuick și QtCompositor ca un compozitor pentru Wayland.
https://github.com/lirios/shell || liri-shell-gitAUR
- labwc – Compozitor bazat pe wlroots inspirat de Openbox.
https://github.com/johanmalm/labwc || labwc-gitAUR
- Mutter – Vezi GNOME#Starting.
https://gitlab.gnome.org/GNOME/mutter || mutter
- wayfire – Compozitor 3D inspirat de Compiz și bazat pe wlroots.
https://wayfire.org/ || wayfireAUR
- Weston – implementare de referință a unui compozitor Wayland.
https://gitlab.freedesktop.org/wayland/weston || weston
- wio – compozitor bazat pe wlroots care urmărește să reproducă aspectul și senzația desktopului Rio din Plan 9.
https://wio-project.org/ || not packaged? search in AUR
Other
- Cage – Afișează o singură aplicație fullscreen ca un chioșc.
https://www.hjdskes.nl/projects/cage/ || cage
- Maze Compositor – Redă ferestrele într-un labirint 3D folosind Qt.
https://github.com/imbavirus/mazecompositor || not packaged? search in AUR
- Motorcar – Compozitor Wayland pentru explorarea ferestrelor 3D folosind realitatea virtuală.
https://github.com/evil0sheep/motorcar || not packaged? search in AUR
Câteva dintre cele de mai sus pot suporta manageri de afișare. Verificați /usr/share/wayland-sessions/compositor.desktop
pentru a vedea cum sunt pornite.
Manageri de afișare
Managerii de afișare enumerați mai jos suportă lansarea compozitorilor Wayland. Coloana „Tip” indică dacă managerul de afișare suportă sau nu rularea pe Wayland.
Nume | Tip | Descriere |
---|---|---|
GDM | Se execută pe Wayland | Manager de afișare GNOME. |
greetd | Demon de logare | Demon de logare minimalist și flexibil. |
LightDM | Se execută pe X11 | Manager de afișare trans-desktop. |
Ly | Se execută în consolă | Manager de afișareTUI scris în C |
SDDM | Se execută pe X11 | Manager de afișare bazat pe QML. |
tbsm | Se execută în consolă | Simplu lansator de sesiuni CLI scris în bash pur. |
Biblioteci GUI
Vezi detalii pe site-ul oficial.
GTK
Pachetele gtk3 și gtk4 au backend-ul Wayland activat. GTK va folosi în mod implicit backend-ul Wayland, dar este posibil să îl suprascrieți la Xwayland prin modificarea unei variabile de mediu: GDK_BACKEND=x11
.
Qt
Pentru a activa suportul Wayland în Qt 5 sau 6, instalați pachetul qt5-wayland, respectiv qt6-wayland.
Pentru a rula o aplicație Qt cu extensia Wayland , utilizați variabila de mediu -platform wayland
sau QT_QPA_PLATFORM=wayland
. Pentru a forța utilizarea X11 pe o sesiune Wayland, utilizați QT_QPA_PLATFORM=xcb
. Acest lucru ar putea fi necesar pentru unele aplicații proprietare care nu utilizează implementarea Qt a sistemului, cum ar fi zoomAUR.
Pe unele compozitoare, de exemplu sway, aplicațiile Qt care rulează nativ ar putea avea funcționalități lipsă. De exemplu, KeepassXC nu va putea minimiza în tavă. Acest lucru poate fi rezolvat prin instalarea qt5ct și setarea QT_QPA_PLATFORMTHEME=qt5ct
înainte de a rula aplicația.
Clutter
Kit-ul de instrumente Clutter are un backend Wayland care îi permite să ruleze ca un client Wayland. Backend-ul este activat în pachetul clutter.
Pentru a rula o aplicație Clutter pe Wayland, setați CLUTTER_BACKEND=wayland
.
SDL2
Pentru a rula o aplicație SDL2 pe Wayland, setați SDL_VIDEODRIVER=wayland
.
SDL_VIDEODRIVER=wayland
. Pentru a forța aplicația să ruleze cu XWayland, setați SDL_VIDEODRIVER=x11
.GLFW
Pentru a utiliza GLFW cu backend-ul Wayland, instalați pachetul glfw-wayland (în loc de glfw-x11).
GLEW
Pachetul gllew-waylandAUR încă nu funcționează în prezent cu o mulțime de aplicații bazate pe GLEW, astfel încât singura opțiune este să utilizați glew cu Xwayland. A se vedea FS#62713.
EFL
EFL are suport complet pentru Wayland. Pentru a rula o aplicație EFL pe Wayland, consultați pagina proiectului Wayland.
winit
Winit este biblioteca de manipulare a ferestrelor în Rust. Aceasta va folosi în mod implicit backend-ul Wayland, dar este posibil să o suprascrieți la Xwayland prin modificarea unei variabile de mediu: WINIT_UNIX_BACKEND=x11
.
XWayland
XWayland este un server X care rulează sub Wayland. Acesta oferă compatibilitate retroactivă pentru aplicațiile X11 vechi.
Pentru a-l utiliza, instalați pachetul xorg-xwayland.
XWayland este pornit prin intermediul unui compozitor, așa că ar trebui să verificați compatibilitatea XWayland și instrucțiunile privind modul de pornire a XWayland, cu compozitorul ales de dumneavoastră.
- În ceea ce privește securitatea: XWayland este un server X, deci nu are caracteristicile de securitate ale Wayland!
- Pentru moment, driverul proprietar Nvidia nu suportă accelerarea GPU pentru XWayland. Consultați acest lucru sau această cerere de extragere pentru starea suportului pentru XWayland.
Dezvoltare a problemelor
Corecție de culoare
Vezi Backlight#Corecție de culoare.
Mișcări lente, erori grafice și blocări
Utilizatorii de gnome-shell pot întâmpina probleme de afișare atunci când trec de la X la Wayland. Una dintre cauzele principale ar putea fi CLUTTER_PAINT=disable-clipped-redraws:disable-culling
setată de dvs. pentru gnome-shell bazat pe Xorg. Încercați să o eliminați din /etc/environment
sau din alte fișiere rc pentru a vedea dacă totul revine la normal.
Cannot open display: :0 with Electron-based applications
Asigurați-vă că nu ați setat GDK_BACKEND=wayland. Setarea acestuia la nivel global va întrerupe aplicațiile Electron.
Afișare la distanță
- (20200206) wlroots (folosit de sway) oferă un backend VNC prin wayvncAUR începând cu versiunea 0.10. Backend-ul RDP a fost eliminat. .
- (20180401) mutter are acum desktop la distanță activat la compilare, vezi și gnome-remote-desktop pentru detalii.
- A existat o fuziune a FreeRDP în Weston în 2013, activată prin intermediul unui indicator de compilare. Pachetul weston îl are activat începând cu versiunea 6.0.0.
- waypipe-gitAUR este un proxy transparent pentru aplicațiile Wayland, cu o comandă wrapper pentru a fi rulată prin SSH
Input grabbing în jocuri, desktop la distanță și ferestre VM
În contrast cu Xorg, Wayland nu permite exclusiv input grabbing-ul dispozitivelor de intrare, cunoscut și sub numele de active sau explicit grab (de ex.g. tastatură, mouse), în schimb, depinde de compozitorul Wayland pentru a transmite comenzi rapide de tastatură și a limita dispozitivul de indicare la fereastra aplicației.
Această modificare în ceea ce privește preluarea intrărilor întrerupe comportamentul aplicațiilor actuale, ceea ce înseamnă că:
- Combinațiile și modificatorii Hotkey vor fi prinși de compozitor și nu vor fi trimiși către ferestrele desktop-ului la distanță și ale mașinilor virtuale.
- Pointerul mouse-ului nu va fi restricționat la fereastra aplicației, ceea ce ar putea cauza un efect de paralaxă în care locația indicatorului mouse-ului în interiorul ferestrei mașinii virtuale sau a desktop-ului la distanță este deplasată față de indicatorul mouse-ului gazdei.
Wayland rezolvă acest lucru prin adăugarea de extensii de protocol pentru Wayland și XWayland. Suportul pentru aceste extensii este necesar pentru a fi adăugat la compozitorii Wayland. În cazul clienților nativi Wayland, seturile de instrumente widget utilizate (de exemplu, GTK, Qt) trebuie să suporte aceste extensii sau aplicațiile însele dacă nu se utilizează niciun set de instrumente widget. În cazul aplicațiilor Xorg, nu este necesară nicio modificare a aplicațiilor sau a seturilor de instrumente de widget-uri, deoarece suportul XWayland este suficient.
Aceste extensii sunt deja incluse în wayland-protocols și sunt suportate de xorg-xwayland.
Extensiile aferente sunt:
- Protocolul XWayland de apucare de la tastatură
- Protocolul de inhibare a comenzilor rapide din compozitor
- Protocolul de pointer relativ
- Protocolul de constrângere a pointerilor
Compozitori Wayland care suportă:
- Mutter, compozitorul GNOME începând cu versiunea 3.28
- wlroots suportă relative-pointer și pointer-constraints
Suportă seturi de instrumente widget:
- GTK de la versiunea 3.22.18.
Vezi și
- Documentația Wayland online
- Official Wayland Git Repo
- Fedora:Cum să depanați problemele Wayland
- Proiecte Wayland interesante
- Teme de cursor
- Discuție pe forumul Arch Linux
- Ghid de migrare i3 – Aplicații X11 comune folosite pe i3 cu alternative Wayland
.