##[[Vorlage(Getestet, kinetic, jammy, focal, bionic)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor:einen Editor öffnen] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis()]] [[Bild(wayland.png, 72, align=left)]] [https://wayland.freedesktop.org/ Wayland] {en} ist ein Protokoll, welches die Kommunikation zwischen dem Display Server und Clients wie z.B. Fenstern einer grafischen Umgebung regelt. Wayland ist der designierte Nachfolger des [wikipedia:X_Window_System:X Window Systems] und wird explizit entwickelt, um dieses zu ersetzen. Der wichtige Unterschied ist, dass Wayland nur die Kommunikation festlegt, während X auch den [:XServer:] mitbringt, der sich zusammen mit dem [:Displaymanager:] dann um die Darstellung der Fenster und des Desktops kümmert. Da Wayland wesentlich neuer ist als der XServer und von Grund auf neu geschrieben wurde, gilt das Protokoll im Vergleich zu X als sicherer. So gibt es z.B. eine sehr strikte Trennungen zwischen den einzelnen Nutzer des Systems und den Clients innerhalb einer Wayland Sitzung. Des Weiteren hat Wayland eine schlankere Codebasis. Zur Kommunikation nutzt Wayland die Mechanismen der [https://tldp.org/LDP/tlk/ipc/ipc.html Interprozesskommunikation] {en} des Linux Kernels über [wikipedia:Unix_Domain_Socket:Unix Domain Sockets] und kein [wikipedia_en:X_Window_System_core_protocol:Netzwerkprotokoll] wie X. Für die Umsetzung des Wayland-Protokolls ist ein [wikipedia_en:Wayland_(protocol)#Wayland_compositors:Wayland Compositor] zuständig bzw. notwendig. Dieser kümmert sich um die Darstellung des Fensterinhalts und der Fensterdekoration. Es gibt eine Referenzimplementierung namens [https://wayland.pages.freedesktop.org/weston/ Weston] {en} des Wayland-Projekts. Unter Ubuntu kommen die [:Fenstermanager:] des GNOME-Projekts ([wikipedia:Mutter_(Software):Mutter]) sowie des KDE-Projeks ([wikipedia:KWin:]) als Wayland Compositor zum Einsatz. Wayland ist standardmäßig ab [:22.04:Ubuntu 22.04 Jammy Jellyfish] aktiv, sofern ein Wayland Compositor aktiv ist und die Treiber für die Grafikhardware mit Wayland zusammenarbeiten. = Benutzung = Ist Wayland aktiv, nutzt man es automatisch, wenn man die grafische Oberfläche nutzt. == Prüfen, ob Wayland verwendet wird == Möchte man prüfen, ob Wayland aktiv ist, führt man im Terminal[1] folgenden Befehl aus: {{{#!vorlage Befehl echo $XDG_SESSION_TYPE }}} Die Ausgabe ist dann entweder `wayland` oder `x11`. Alternativ kann man auch den folgenden Befehl nutzen: {{{#!vorlage Befehl echo $WAYLAND_DISPLAY }}} Erhält man eine Ausgabe wie {{{ wayland-0 }}} ist Wayland als Display-Server-Protokoll aktiv. Erhält man keine Ausgabe, dann nutzt man den XServer. == Xwayland == WWayland bringt standardmäßig mit Xwayland auch eine Implementierung eines XServers mit. Der Wayland Compositor startet Programme, die nicht mit Wayland zusammenarbeiten können, automatisch in einer X-Session unter Verwendung von Xwayland. Dies geschieht z.B., wenn man – unsicher arbeitend! – mittels [:sudo:] eine grafische Anwendung mit [:Root-Rechte:Root-Rechten] startet. Unter Wayland selbst wäre dies nicht möglich, da dies einen Benutzerwechsel in der laufenden Sitzung bedeutet, was die Sicherheitsrichtlinien des Wayland Protokolls nicht zulassen. Um zu sehen, welche Programme in einer X Session laufen, führt man den folgenden Befehl im Terminal[1] aus: {{{#!vorlage Befehl xlsclients }}} Die Ausgabe sieht dann z.B. so aus: {{{ thinkbook15 gsd-xsettings thinkbook15 ibus-x11 thinkbook15 gnome-shell thinkbook15 firefox }}} Die erste Spalte zeigt den Rechnernamen, die zweite Spalte den Namen des Programms, welches unter Xwayland läuft. == X statt Wayland verwenden == Möchte man statt Wayland für eine Sitzung X als Displayserver verwenden, klickt man im Anmeldedialog (Login) des GNOME Desktops erst auf den eigenen Benutzername, dann rechts unten auf das Zahnradsymbol und wählt dort ''"Ubuntu auf Xorg"'' aus. Bei Kubuntu klickt man im Anmeldedialog von [:SDDM:] auf aus Auswahlmenü und wählt dort ''"Plasma (X11)"'' aus. Um Wayland unter Ubuntu dauerhaft zu deaktivieren, muss man die Konfigurationsdatei '''/etc/gdm3/custom.conf''' von [:GDM:] editieren. Man öffnet die Datei mit einem Editor mit Root-Rechten[2][3] und fügt im Abschnitt `[daemon]` die folgenden zwei Zeilen ein: {{{ WaylandEnable=false DefaultSession=gnome-xorg.desktop }}} Danach muss man das System neu starten. = Links = * [https://wayland.freedesktop.org/ Homepage des Wayland Projekts] {en} bei freedesktop.org * [https://wayland.freedesktop.org/docs/html/ch01.html Startseite der Dokumentation] {en} von Wayland. Enthält auch Skizzen / Diagramme zur Funktionsweise und zum Signalfluss * [https://wayland.freedesktop.org/xserver.html Dokumentation von Xwayland] {en} * [wikipedia_en:Wayland_(protocol):englischsprachige Seite bei Wikipedia zu Wayland], enthält viele weiterführende technische Hintergründe und Schaubilder zu Kommunikation / zum Aufbau * [https://wayland-book.com/introduction.html Wayland Book] {en} - ausführliches Online Buch zu Wayland #tag: Grafik, System