Wayland

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

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.

Notă: Multe jocuri proprietare vin la pachet cu versiuni vechi de SDL, care nu suportă Wayland și s-ar putea întrerupe complet dacă setați 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ă.

Notă:

  • Î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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.