# Wechsel auf Wayland

## mike155

Ich habe schon länger vor, auf Wayland zu wechseln. Einerseits finde ich das Wayland Projekt klasse - und andererseits beunruhigen mich die Sicherheitsprobleme von X11 immer mehr. 

In den letzten Tagen habe ich beschlossen, mit dem Umstieg zu beginnen. Die Schritte, Ergebnisse und Erfahrungen möchte ich unter diesem Topic posten - vielleicht helfen sie dem einen oder anderen, der auch umsteigen will. Vielleicht hat auch jemand ein paar Verbesserungsvorschläge.

Da das Projekt nicht einfach wird - und gewiss einige Zeit dauern wird - möchte ich es in mehrere Schritte untergliedern:

A) Literatur- / Link-Verzeichnis

B) Grundlagen

C) Wayland / Weston zum Laufen bekommen - parallel zu meiner X11 Umgebung, so dass ich jederzeit wechseln kann

D) Weston kennenlernen

E) Welche Programme laufen bereits unter Wayland?

F) Test mehrerer Wayland Compositors

G) X11- und Wayland-Programme auf Remote-Systemen ausführen (Netzwerktransparenz)

H) Ergebnis

Die Ergebnisse zu den einzelnen Schritte werde ich in den nächsten Tagen / Wochen als follow-up Posts zu diesem Topic posten. Dabei werde ich die einzelnen Posts von Zeit zu Zeit ergänzen / erweitern, wenn neue Erkenntnisse vorliegen.Last edited by mike155 on Wed Oct 18, 2017 5:20 pm; edited 11 times in total

----------

## mike155

A) Literatur- / Link-Verzeichnis:

[1] Eine gute Übersicht über Wayland und Weston: http://en.wikipedia.org/wiki/Wayland_%28display_server_protocol%29

[2] Wayland Dokumentation: https://wayland.freedesktop.org

[3] Eine Anleitung zu Wayland auf dem Arch-Wiki: https://wiki.archlinux.org/index.php/wayland

[4] Gentoo Anleitung zu Wayland: https://wiki.gentoo.org/wiki/Wayland

[5] Übersicht über Wayland Compositors unter Gentoo: https://wiki.gentoo.org/wiki/Wayland_compositor

[6] Wie der X11 Graphics Stack funktioniert - und warum die Entwickler zu Wayland wechseln wollen: http://blog.mecheye.net/2012/06/the-linux-graphics-stack

[10] Gentoo Anleitung zu Weston: https://wiki.gentoo.org/wiki/Weston

[11] Anleitung zu Sway: https://github.com/SirCmpwn/sway/wiki

[12] Enlightenment Homepage: https://www.enlightenment.org

[13] Installationsanleitung für Enlightenment mit Wayland: https://www.enlightenment.org/about-wayland

[14] README für Enlightenment mit Wayland: https://git.enlightenment.org/core/enlightenment.git/tree/README.wayland

[15] Martin Flösers Blog mit vielen Details zu KWin: https://blog.martin-graesslin.com/blog/

[20] WOW - ein Demonstrationsprojekt für Netzwerktransparenz mit Wayland: https://blogs.s-osg.org/wow-wayland-over-wire/

B) Grundlagen:

Eine Übersicht zu Wayland findet man in [1]. Weitere Details stehen in [2]. Hier noch ein paar Grundlagen, die für diesen Thread wichtig sind:

Die beiden separaten X11 Module "Displayserver" und "Fenstermanager" werden unter Wayland zum "Wayland Compositor" zusammengefasst.

Es gibt zwei Methoden, wie man einen Wayland Compositor starten kann:

Man startet zuerst einen X11 Server und dann einen Wayland Compositor. Der Wayland Compistor läuft dann in einem X Fenster.

Man startet zuerst einen Wayland Compositor. Der Wayland Compositor startet dann (bei Bedarf und automatisch) einen X Server namens XWayland, damit man nicht nur Wayland Programme, sondern auch X11 Programme ausführen kann.

Bei beiden Varianten kann man sowohl Wayland- als auch X11-Programme ausführen - und das wird sicherlich auch noch lange Zeit lang (10 - 20 Jahre?) so bleiben - bis alle X11-Programme auf Wayland umgestellt sind...

In diesem Thread interessiert mich nur die zweite Variante - ich möchte ja von X11 wegkommen und die Security-Probleme von X11 loswerden. Wer bei X11 bleiben will und nur gelegentlich einzelne Wayland Programme ausführen will, ist möglicherweise mit der ersten Variante besser bedient. Die Entwickler einiger Wayland Compositors (z.B. KWin) empfehlen, den Compositor zuerst mit der ersten Variante zu konfigurieren und zu testen - und erst auf die zweite Variante zu wechseln, wenn alles läuft.

XWayland ist nicht Teil des Wayland-Pakets, sondern Teil des xorg-server Pakets. Es wird installiert, wenn man xorg-server mit dem "wayland" USE-Flag installiert.

Es gibt reine X11 Programme, die nur mit einem X11 Server über das X11 Protokoll sprechen. Ebenso gibt es reine Wayland Programme, die nur mit einem Wayland Compositor zusammen laufen. 

Es gibt aber auch Programme, die mehrere Backends unterstützen - und sowohl unter X11, als auch unter Wayland laufen. In diese Gruppe gehören beispielsweise GTK+3- und Qt5-Programme. Man wählt das Backend vor Aufruf des Programms über Umgebungsvariablen aus. Dies ist sehr praktisch, weil man dadurch schnell zwischen X11 und Wayland wechseln kann. Unglücklicherweise verwendet jede Plattform andere Umgebungsvariablen, ja zum Teil unterscheiden sich die Umgebungsvariablen sogar von Programm zu Programm. Man muss also Doku lesen. Hier eine Liste der gebräuchlichsten Umgebungsvariablen mit Werten für den Wayland-Modus:

Qt5-Programme: QT_QPA_PLATFORM="wayland-egl"

GTK3+-Programme: GDK_BACKEND="wayland"

SDL2-Programme: SDL_VIDEODRIVER="wayland"

Clutter-Programme: CLUTTER_BACKEND="wayland"

Ecore_Evas-Programme: ECORE_EVAS_ENGINE="wayland_shm" oder "wayland_egl" 

Elementary-Programme: ELM_DISPLAY="wl"

Wie findet man heraus, ob ein Programm gerade im X11- oder im Wayland-Modus läuft? Ich verwende zwei Verfahren: 

Ich starte das X11 Demo-Programm "xeyes". Die Augen bewegen sich immer dann, wenn ich die Maus über einem X11 Fenster bewege. Die Augen bewegen sich nicht, wenn ich die Maus über dem Desktop-Hintergrund oder über einem Wayland-Fenster bewege.

Ich starte "xwininfo -root -tree" in einem Terminal-Fenster. Das Programm zeigt alle X11 Fenster (und nur diese) an. Wenn sich die Ausgabe von xwininfo nach dem Start eines Programms verändert, weiß ich, dass es im X11-Modus läuft.

An dieser Stelle noch ein Tipp: ich würde jedem, der sich in Wayland einarbeitet, zunächst zum Wayland Compositor Weston raten. Dies hat mehrere Gründe: 

 Er ist recht klein, hat nur wenige Abhängigkeiten und nur eine Konfigurationsdatei - er lässt sich deshalb schnell installieren.

 Er lief bei mir auf Anhieb und zeigte keine Fehler oder Probleme. Beides kann man von den anderen Wayland Compositors nicht sagen (siehe Kapitel F).

 Die graphischen Effekte machen Spaß und zeigen das Potential eines Wayland Compositors.

Allerdings ist der Funktionsumfang von Weston sehr beschränkt. Deshalb werden sich die meisten später einen Wayland Compositor suchen, der mehr Möglichkeiten bietet.Last edited by mike155 on Wed Oct 18, 2017 2:36 pm; edited 16 times in total

----------

## mike155

C) Wayland / Weston zum Laufen bekommen

Die ersten Schritte mit Wayland / Weston sind eigentlich ganz einfach. Man kann Wayland / Weston parallel zu der bestehenden X11 Umgebung installieren, so dass man schnell zwischen Wayland / Weston und seiner alten X11 Umgebung wechseln kann.

C.1) Ausgangsbasis (mein bisheriges System)

Desktop Rechner 

CPU: Intel 64 Bit CPU von 2011

GPU: Intel(R) HD Graphics 4000 auf der CPU

16 GB Ram

Kernel 4.9.50

Xorg Server 1.19.3

Xorg Driver: xf86-video-intel

Bildschirm: LCD mit 1920x1200 Punkten, Ansteuerung über DVI

Eine Besonderheit bei meinem System ist, dass beim Booten der Kernel zwar in den Grafik-Modus (1920x1200 Punkte) schaltet, aber nicht X11 startet. Nach dem Booten habe ich also eine TTY-Konsole. Ich melde mich dann als User "mike" an und gebe "startx" ein, um X11 zu starten. Das ist vielleicht etwas altmodisch, aber für Wayland-Tests sehr hilfreich - man kann nämlich schnell zwischen Textmodus, X11 und Wayland/Weston wechseln.

Wichtig für alle folgenden Tests ist, dass der X11 Server sauber konfiguriert ist und einwandfrei funktioniert.

C.2) Gentoo für Wayland konfigurieren:

Alle Arbeiten in diesem Abschnitt erfolgen als User "root".

Folgende USE-Flags habe ich zusätzlich nach "/etc/portage/make.conf" aufgenommen:

```
wayland egl libinput
```

Folgende Zeilen habe ich an "/etc/portage/package.use" angehängt:

```
dev-libs/weston               examples wayland-compositor xwayland

media-libs/libsdl2            gles
```

Dann habe ich die erforderlichen Pakete re-installiert:

```
emerge --update --deep --newuse -av world
```

Als letztes habe ich Weston 3.0 installiert. Dazu habe ich folgende Zeilen zu "/etc/portage/package.kewords" hinzugefügt:

```
=dev-libs/weston-3.0.0 ~amd64

=dev-libs/wayland-protocols-1.10 ~amd64
```

und die Installation gestartet:

```
emerge weston
```

Weiterhin habe ich eine Gruppe "weston-launch" angelegt. Alle User, die Wayland / Weston nutzen sollen, müssen Mitglied dieser Gruppe werden.

C.3) Wayland / Weston zum ersten Mal starten:

Ab hier arbeite ich wieder als normaler User - in meinem Fall "mike".

Wie oben beschrieben, stehe ich nach dem Verlassen von meiner X11-Umgebung (oder nach einem Neustart und Log-in als "mike") im Textmodus. Wayland / Weston startet man nun mit folgender Anweisung:

```
weston-launch

# Falls man auch eine Log-Datei haben möchte (empfehlenswert):

weston-launch -- --log=/tmp/weston.log
```

Als Ergebnis erhält man einen Desktop mit Blümchen-Hintergrund. Maus und Tastatur sollten funktionieren. Über den Button links oben kann man Terminal-Fenster starten. Man sieht auch schon graphische Effekte (Schatten unter Terminal-Fenster). Recht hübsch sind auch die Weston-Demo-Programme "weston-flower" oder "weston-smoke", die man aus dem Terminal starten kann. Mit Win-S kann man Screenshots erstellen. Und mit Alt-Ctrl-Backspace kann man Weston beenden.

Neben der Freude, was alles geht, merkt man aber auch recht schnell, was alles NICHT funktioniert: die Tastatur hat eine amerikanische Tastenbelegung, Copy&Paste über die Maus-Tasten funktioniert nicht und wenn man X11-Programme startet, erhält man eine Fehlermeldung wie "Can't open display".

Einige Probleme lassen sich glücklicherweise durch Anlegen der Konfigurationsdatei ~/.config/weston.ini und Neustart von Weston lösen. Ich habe folgendes in diese Datei geschrieben (siehe auch [2]):

```
[core]

xwayland=true

[keyboard]

keymap_model=pc105

keymap_layout=de

keymap_variant=nodeadkeys

[shell]

num-workspaces=4

panel-position=top

[terminal]

# Hier sollte man einen Font wählen, der auch installiert ist

font=SourceCodePro

[launcher]

icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png

path=/usr/bin/weston-terminal

[launcher]

icon=/usr/share/icons/hicolor/24x24/apps/firefox.png

path=/usr/bin/firefox

```

Last edited by mike155 on Wed Oct 18, 2017 2:42 pm; edited 4 times in total

----------

## mike155

D) Weston kennenlernen

Da Weston der Referenz-Compositor von Wayland ist, möchte ich Weston näher kennenlernen.

D.1) Weston 3.0 Tastenkürzel

Die Weston Tastenkürzel (keybindings) sind etwas ungewöhnlich. Um sich mit ihnen vertraut zu machen, kann man 2 Weston Terminal-Fenster öffnen und danach die unten angegebenen Tastenkürzel ausprobieren. Bitte noch keine X11 Programme starten, weil sich diese teilweise merkwürdig verhalten. 

Ich habe folgende Tastenkürzel gefunden ("Win" ist die Taste mit dem Windows-Symbol, teilweise auch "Super" genannt):

Alt-Ctrl-Backspace: Weston verlassen

Win-Tab: Zwischen Fenstern wechseln

Win-<Maus bewegen>: Fenster verschieben

Win-<Mittlere Maustaste drücken>-<Maus bewegen>: Fenster rotieren. Den Effekt finde ich überwältigend

Alt-Win-Mausrad: Transparenz von Fenster vergrößern / verkleinern

Win-Mausrad: Desktop rein-/raus- zoomen

Win-PgUp/PgDn: Desktop rein-/raus- zoomen

Win-Shift-M: Fenster maximieren / wieder auf normale Größe zurück

Win-Shift-F: Fenster auf Fullscreen / wieder auf normale Größe zurück

Win-F1, F2, ...: Zwischen virtuellen Desktops wechseln

Win-Up/Down: Zwischen virtuellen Desktops wechseln

Win-Shift-Up/Down: Zwischen virtuellen Desktops wechseln und aktives Fenster mitnehmen

Win-S: Screenshot erstellen. Im Home-Verzeichnis liegt dann eine Datei "wayland-screenshot.png"

Win-R: Video aufnehmen. Im Home-Verzeichnis liegt dann eine Datei "capture.wcap"

Win-K: Aktives Fenster killen

D.2) Weston Konfiguration

Weston wird über die Text-Datei "~/.config/weston.ini" konfiguriert. Die Syntax wird auf der man page von "weston.ini" erklärt ("man weston.ini"). Falls es noch keine Datei "weston.ini" geben sollte, kann man mit der Konfiguration aus dem vorherigen Post beginnen. Nach Änderungen an der Konfigurationsdatei sollte Weston neu gestartet werden.

D.3) Weston Log-Datei

Man erhält eine Log-Datei, wenn man Weston folgendermaßen startet: 

```
weston-launch -- --log=/tmp/weston.log
```

Die Log-Datei ähnelt der Xorg Server Log-Datei "/var/log/Xorg.0.log". 

D.4) Copy & Paste

Copy & Paste innerhalb eines Weston Terminal-Fensters oder zwischen zwei Weston Terminal-Fenstern funktioniert. Zwar nicht wie gewohnt über linke / mittlere Maustaste, aber über: linke Maustaste (markieren) und dann Ctrl-Shift-C und Ctrl-Shift-V oder über: linke Maustaste (markieren) und dann rechte Maustaste: Copy / Paste.

D.5) Zwischen-Ergebnis

Weston läuft bei mir stabil und fehlerlos. Die graphischen Effekte sind hübsch und schnell. Viele Annehmlichkeiten, die man von X11 Desktops kennt, fehlen: ein schönes Menü-System, Taskbar, Desktop Switcher, GUI-Tools zur Konfiguration des Desktops, usw. Aber das muss eine Referenz-Implementierung auch nicht mitliefern. Wichtig ist, dass alle benötigten Protokolle und Schnittstellen sauber funktionieren. Und das scheint der Fall zu sein.

Wenn jetzt noch meine Programme einwandfrei laufen, könnte ich zu Wayland / Weston wechseln - aber das werde ich im nächsten Post untersuchen.Last edited by mike155 on Thu Sep 28, 2017 7:48 pm; edited 2 times in total

----------

## mike155

E) Welche Programme laufen bereits unter Wayland?

In diesem Abschnitt teste ich, welche Programme unter Wayland laufen und wo es noch Probleme gibt. Als Wayland Compositor verwende ich Weston und teilweise auch Sway. Ich untersuche nur Programme, die auf dem gleichen System und unter dem gleichen User laufen, wie der Wayland Compositor. Die Ausführung von Remote Programmen beschreibe ich evtl. in einem Folge-Post.

E.1) Text-basierte Programme

In den letzten Tagen habe ich viel in Weston-Terminals gearbeitet: Dateien editiert, Programme compiliert, mich mit ssh auf anderen Servern eingeloggt und dort gearbeitet, usw.

Alle Text-basierten Programme, die ich in weston-terminal ausgeführt habe, funktionieren einwandfrei - und genau so, wie ich es von meiner X11 Umgebung mit konsole kenne. Natürlich bietet weston-terminal nur rudimentäre Funktionen - aber ich bin froh, dass es so gut funktioniert.

E.2) Reine Wayland-Programme (ohne Toolkits wie Qt oder Gtk)

Bei Weston werden ein paar dieser Programme mitgeliefert: weston-terminal, weston-flower, usw. 

Wie nicht anders zu erwarten, funktionieren diese Programme einwandfrei.

E.3) Reine X11-Programme (ohne Tookits oder X11 Erweiterungen)

Beispiele sind: xdpyinfo, xterm, xclock, xeyes

Zunächst fällt auf, dass Weston bei dem Aufruf eines X11 Programms vollautomatisch einen X-Server startet. "ps -fe" zeigt:

```
/usr/bin/Xwayland :0 -rootless -listen 56 -listen 57 -wm 58 -terminate
```

Weston startet diesen Xwayland Prozess, wenn man das erste X11 Programm startet. Der Xwayland Prozess wird auch für alle weiteren X11 Programme genutzt - er läuft deshalb weiter, bis Weston beendet wird.

Bei xeyes sieht man eine willkommene Änderung: die Augen bewegen sich nur noch, wenn man sich mit dem Cursor direkt in dem Fenster oder in einem anderen X11 Fenster bewegt - und nicht mehr, wenn sich der Cursor auf dem Desktop-Hintergrund oder in einem Wayland-Fenster bewegt. So soll es sein. (Anmerkung: dieser Satz wurde auf Anregung von platinumviper (s.u.) nachträglich verbessert).

Weniger schön sind folgende Beobachtungen:

Die Tastenkürzel Win-Shift-M und Win-Shift-F funktionieren für X11 Fenster nicht richtig

Bei X11 Fenstern fehlt der Minimize-Button in der Titel-Leiste

Bei einigen X11 Fenstern (xload, xclock) verschwindet der Cursor, sobald ich den Cursor auf das Fenster bewege. Dieser Effekt verschwindet, nachdem ich das erste Mal "xterm" gestartet habe.

Möglicherweise sind das noch Fehler in meiner Konfiguration...

E.4) GTK+2-Programme

Beispiele sind: gtk-demo, Gimp 2.8.22, LibreOffice 5.3 (mit USE-Flags: gtk -gtk3 -kde)

Da GTK+2 keine direkte Wayland-Schnittstelle hat, erfolgt die Ausgabe über X11 und XWayland. Damit erben die Programme auch alle Probleme aus E.3.

Ich habe mir GIMP und LibreOffice angesehen und war erstaunt, wie gut ich mit den beiden Programmen unter Wayland arbeiten konnte. Ich habe keine Fehler oder Probleme gefunden. Beide Programme liefen schnell und stabil. In den Menüs und Dialogen werden alle Symbole richtig angezeigt. Bei GIMP funktioniert Datei -> Erstellen -> Bildschirmphoto nicht - aber das soll ja auch so ein. 

E.5) GTK+3-Programme

Beispiele sind: gtk3-demo, glade 3.20, Thunderbird 52.3, Firefox 52.3

Programme, die auf GTK+3 basieren, können sowohl im X11-Modus, als auch im Wayland-Modus laufen. Der gewünschte Modus wird über die Umgebungsvariable "GDK_BACKEND" definiert. Wenn GDK_BACKEND nicht oder auf den Wert "x11" gesetzt ist, arbeitet das Programm im X11-Modus. Wenn die Variable auf den Wert "wayland" gesetzt ist, arbeitet das Programm im Wayland-Modus.

Beobachtungen:

gtk3-demos, glade: beide Programme laufen sowohl im X11-Modus, als auch im Wayland-Modus einwandfrei. Ich konnte keine Unterschiede bemerken.

Firefox 52.3, Thunderbird 52.3: beide Programme lassen sich nur im X11-Modus starten. Im Wayland-Modus stürzen beide Programme direkt nach dem Start mit einem "Segmentation Fault" ab. Im X11-Modus kann ich sowohl unter Weston, als auch unter Sway Youtube-Videos ansehen: Bild und Ton funktionieren einwandfrei. Ein Wechsel in den Vollbild-Modus ist auch möglich.

E.6) Qt5-Programme

Beispiele sind: konsole, kate, kreversi, wireshark (USE flags: qt5 -gtk)

Auch Programme, die auf Qt5 basieren, können wahlweise im X11- oder im Wayland-Modus laufen. Standardmäßig nutzen sie das X11 Backend. Nach Setzen der Umgebungsvariable "QT_QPA_PLATFORM=wayland-egl" laufen Qt5 Programme im Wayland-Modus.

Beobachtungen:

konsole, kate: Beide Programme laufen sowohl im X11- als auch im Wayland-Modus. Copy/Paste funktioniert im X11-Modus mit linker/mittlerer Maustaste, im Wayland-Modus nicht. Copy/Paste über Ctrl-Shift-C/V funktioniert in beiden Modis und auch zwischen Konsole-Fenstern im X11- und Wayland-Modus.

wireshark: funktioniert sowohl im X11-Modus als auch im Wayland-Modus.

dolphin: Dolphin zeigte zuerst keine Datei-Symbole. Wenn ich vor dem Start von Dolphin die Umgebungsvariable QT_QPA_PLATFORMTHEME=lxqt setze, läuft Dolphin sowohl im X11- als auch im Wayland-Modus einwandfrei.

kreversi: Das Spiel lief unter Weston problemlos im X11- und im Wayland-Modus. Unter Sway lief es auch, aber die Spielsteine waren etwas verschoben.

E.7) Multimedia

Beispiele sind: mpv, Videos unter Firefox, audacious, audacity

Alle Tests erfolgten unter Weston.

Videos unter mpv: Mit mpv konnte ich HD-Videos sowohl im X11-, als auch im Wayland-Modus (Parameter: --opengl-backend=wayland) ansehen.  Ich habe keine Probleme entdeckt und auch keine Unterschiede zwischen X11- und Wayland-Modus gesehen.

Youtube unter Firefox: wie weiter oben beschrieben, konnte ich Firefox nur im X11-Modus starten. Youtube Videos wurden problemlos angezeigt. Bild und Ton waren einwandfrei, auch der Wechsel in den Vollbildmodus funktionierte.

Musik hören mit audacious: Audacious läuft sowohl im X11-, als auch im Wayland-Modus. Da ich Audacious als Qt5-Programm compiliert habe (USE flags: qt5 -gtk -gtk3), musste ich folgende Umgebungsvariablen setzen: QT_QPA_PLATFORMTHEME="lxqt" und QT_QPA_PLATFORM=wayland-egl.

Audio Editing mit Audacity: Audacity ist ein reines X11 Programm und läuft somit nur im X11-Modus. Es funktioniert einwandfrei.

E.8 ) Zwischen-Ergebnis

Die aktuelle Situation bei den Programmen ist erfreulich! Ich habe kein Programm entdeckt, mit dem ich unter Weston nicht arbeiten könnte. Grundlegende Probleme habe ich nicht endeckt. Ein paar Schönheitsfehler schon, aber diese werden sicherlich bald beseitigt werden... Sehr positiv finde ich, dass man für jedes einzelne GTK+3- oder Qt5-Programm über Umgebungsvariablen definieren kann, ob es im X11- oder im Wayland-Modus laufen soll. Wenn also ein Programm zurzeit noch Probleme im Wayland-Modus hat (z.B. Firefox, Thunderbird), kann man es vorläufig im X11-Modus starten.Last edited by mike155 on Sat Oct 07, 2017 9:40 pm; edited 9 times in total

----------

## musv

Auch wenn ich jetzt Deinen Thread kaputt mach: 

Für genau solche Sachen haben wir das Dokumentationssubforum.

Weston braucht man für die Benutzung nicht mehr. KDE und Gnome können auch schon selbst reine Wayland-Sessions starten. Allerdings läuft KDE unter Wayland noch ziemlich fehlerhaft und ruckelig.

Interessant wäre für mich, wie man unter Wayland das Touchpad konfiguriert. Bzw. denk ich ja, dass Wayland nur für die Ausgabe zuständig ist. Also muss man die Eingabegeräte irgendwoanders einstellen können.

----------

## mike155

musv:

 *Quote:*   

> Für genau solche Sachen haben wir das Dokumentationssubforum.

 

Da gebe ich Dir recht! Ich hatte meinen ersten Abschnitt im Diskussions-Subforum gepostet, aber er ist dann leider doch im Support-Forum erschienen. Vielleicht kann man den Thread am Ende umheben? 

 *Quote:*   

> Weston braucht man für die Benutzung nicht mehr. 

 

Weston ist die Referenz-Implementierung eines Wayland Compositors. Genau deshalb möchte ich Weston kennenlernen. Wenn ich verstanden habe, wie Weston funktioniert und was es kann bzw. was es nicht kann, mache ich mich auf die Suche nach einem schöneren Wayland Compositor bzw. einer schöneren Desktop Umgebung... In den nächsten Tagen geht es aber erst einmal darum festzustellen, welche Programme mit Wayland laufen und welche nicht..

Touchpad? Ist dafür nicht libinput zuständig?

----------

## ChrisJumper

Hi mike155,

vielen Dank für diesen Thread und das du dich da so darum kümmerst. Finde ich sehr interessant. Hab selber aber zu wenig Zeit um das so zusammen zu fassen. oder um das auszuprobieren weil alle Rechner quasi für die tägliche Arbeit bereit sein müssen.

Wäre schön wenn du auch auf die Grafikkarten und Treiber noch kurz eingehen könntest.

Viele Grüße

Chris

----------

## mike155

Hi Chris,

danke für Deinen freundlichen Post  :Smile: 

 *Quote:*   

> Wäre schön wenn du auch auf die Grafikkarten und Treiber noch kurz eingehen könntest.

 

Ich fürchte, dass ich hierzu nicht viel sagen kann. Ich verwende nämlich seit Jahren nur noch Intel On-CPU GPUs. Ich finde es klasse, dass Intel die Spezifikationen ihrer GPUs veröffentlicht hat und mit vielen Mitarbeitern an allen Stellen des Grafik-Stacks mitentwickelt. Und das scheint sich auszuzahlen: ich habe in den letzten Jahren unter X11 und auch bei meinen derzeitigen Wayland-Tests überhaupt keine Fehler oder Probleme gefunden, die ich auf Grafik-Treiber zurückführen würde. Ich muss aber dazusagen, dass ich keine Spiele spiele oder GPGPU nutze - in diesen Bereichen sieht die Situation möglicherweise anders aus...

 *Quote:*   

> ... weil alle Rechner quasi für die tägliche Arbeit bereit sein müssen.

 

Das ist bei mir auch so. Und deshalb habe ich es so eingerichtet, dass ich von der tty-Konsole mit "startx" meine X11 Umgebung starten kann und mit "weston-launch" oder "sway" o.ä. meine Wayland-Umgebung für meine Tests. So kann ich schnell wechseln und mache mir meine X11 Umgebung nicht kaputt... Bisher funktioniert das sehr gut.

Viele Grüße

Mike

----------

## mike155

F) Test mehrerer Wayland Compositors

Unter Gentoo können zurzeit folgende Wayland Compositors installiert werden[5]: Weston, Sway, Mutter, KWin, Enlightenment. Unter [3] findet man weitere Wayland Compositors, von denen aber einige nicht gepflegt werden und eher Demo-Charakter haben.

Ziel meiner Tests ist, einen Wayland Compositor zu finden, mit dem ich in Zukunft arbeiten möchte. Ich suche einen Wayland Compositor, ...

... der etwa den Funktionsumfang von XFCE oder LXQt hat. 

... der stabil und fehlerfrei läuft.

... der möglichst keines der Pakete PulseAudio, ConsoleKit, PolKit, Systemd, udisks oder elogind benötigt.

... der liebevoll gepflegt wird (in dem Sinne, dass Bugs gefixt werden).

... bei dem in den nächsten Jahren keine großen Weiterentwicklungen und Umbrüche zu erwarten sind. Ich bin da ein gebranntes Kind: unter dem Wechsel von KDE 3 auf KDE 4 habe ich lange gelitten, bevor ich KDE aufgegeben habe...

F.1) Weston

Mit Weston 3.0 habe ich einige Zeit verbracht (siehe letzte Kapitel) und er gefällt mir eigentlich immer besser. Er läuft stabil und lässt sich sehr einfach konfigurieren. Weston benötigt keines der Pakete PulseAudio, ConsoleKit, PolKit, Systemd, udisks oder elogind. Leider fehlen ein paar Funktionen wie Taskbar, Desktop-Switcher, Menü-System. Aber je mehr ich die Probleme und Einschränkungen bei den anderen Wayland Compositors sehe, desto mehr Lust bekomme ich, vorerst weiter mit Weston zu arbeiten.

F.2) Sway

Sway ist ein Tiling Window Manager. Die Dokumentation [11] ist gut und Sway benötigt keines der Pakete PulseAudio, ConsoleKit, PolKit, Systemd, udisks, elogind. D-Bus wird benötigt, falls das Use Flag "tray" gesetzt wird.

Ich habe Sway mit folgenden Use-Flags installiert:

```
swaybar swaygrab swaylock wallpapers -tray
```

Nach der Installation, die sehr schnell ging, konnte ich Sway von der tty Konsole starten:

```
export $(dbus-launch)                          # nur erforderlich wenn Use Flag "tray" gewählt

export XKB_DEFAULT_LAYOUT=de

export XKB_DEFAULT_VARIANT=nodeadkeys

sway -dV >/tmp/sway-output 2>&1                # -dV: umfangreiches Logging einschalten
```

Es erscheint ein Hintergrundbild und oben eine Statuszeile - und sonst nichts. Da keine Menüs sichtbar waren und auch bei Tastatureingaben nichts passierte, dachte ich zunächst, dass Sway nicht funktionieren würde. Dann entdeckte ich, dass ich noch das Paket "x11-terms/rxvt-unicode" installieren musste - und schon konnte ich mit Win-Enter Terminal-Fenster öffnen. Mit Win-Shift-e kann man Sway übrigens wieder verlassen.

Die Terminal-Fenster, die man mit Win-Enter öffnet, arbeiten im X11 Modus (weil x11-terms/rxvt-unicode ein X11-Paket ist). Durch Eingabe von "weston-terminal" habe ich noch ein paar Wayland-Fenster geöffnet, damit ich mit "gemischten" Fenstern testen konnte. Mit der Konfigurationsdatei "/etc/sway/config" konnte ich alle weiteren Tastenkombinationen herausfinden und ausprobieren. Sway behandelt X11- und Wayland-Fenster gleich und man kann gut mit dem System arbeiten. Soweit ich sehe, funktioniert alles problemlos.

Etwas weniger schön ist, das man durch ein "kill -9" auf den Xwayland-Prozess den Computer zum Einfrieren bringen kann. Danach hilft dann nur noch ein Reset. Abgesehen davon lief Sway bei meinen Tests stabil.

Sway scheint ein guter und stabiler Wayland Compositor für diejenigen zu sein, die einen Tiling Window Manager suchen.

F.3) Enlightenment

Die folgende Beschreibung bezieht sich auf folgende Versionen:

xorg-server: 1.19.4

efl: 1.20.4 (eigenes ebuild mit den in Bug 632044 beschriebenen Änderungen)

enlightenment: 0.21.9 (eigenes ebuild)

Vor der Installation sollten folgende Punkte beachtet werden:

Bei Enlightenment herrscht Versions-Chaos - die derzeit aktuelle Version ist 0.21.7 - und nicht 1.0.17.

Das Dokument [14] ist wichtig. Insbesondere ist Systemd erforderlich. Das Gentoo Ebuild erlaubt auch eine Installation ohne Systemd - nur lief Enlightenment bei mir dann nicht...

Nach der Installation konnte ich Enlightenment folgendermaßen von der tty Konsole starten:

```
export ECORE_EVAS_ENGINE="wayland_egl"      # entweder "wayland_egl" oder "wayland_shm"

export ELM_DISPLAY="wl"

export ELM_ACCEL="opengl"                   # entweder "opengl" oder "none"

enlightenment_start
```

Wenn man Debug-Informationen haben möchte, kann man Enlightenment folgendermaßen starten:

```
export ECORE_EVAS_ENGINE="wayland_egl"      # entweder "wayland_egl" oder "wayland_shm"

export ELM_DISPLAY="wl"

export ELM_ACCEL="opengl"                   # entweder "opengl" oder "none"

export EINA_LOG_LEVEL="4"

enlightenment_start >/tmp/e-stdout.log 2>/tmp/e-stderr.log
```

Nach dem Start erscheint der gewohnte Enlightenment Desktop. Mit xeyes konnte ich verifizieren, dass Enlightenment und mitgelieferte Programme (wie beispielsweise der Datei-Manager) im Wayland-Modus laufen.

Mit den Standard Gentoo ebuilds für Enlightenment 0.21.7 und efl 1.18.4 traten diverse Probleme auf (CPU-Last nach einiger Zeit bei 100%, Videos konnten nicht angezeigt werden, usw.). Diese konnte ich erst durch eigene ebuilds für aktuellere Versionen (0.21.9 bzw. 1.20.4) und mit den in Bug 632044 beschriebenen Änderungen lösen. 

Beobachtungen zum Start von Programmen:

Die mit Enlightenment mitgelieferten Menüs und Programme funktionieren gut. Ich konnte keine Probleme feststellen.

X11-Programme kann ich starten und sie laufen einwandfrei.

Qt5-Programme kann ich sowohl im X11- als auch im Wayland-Modus starten. 

GTK+3-Programme kann ich nur im X11-Modus starten. Wenn ich sie im Wayland-Modus starte, erscheint eine Fehlermeldung. 

Wayland-Programme wie weston-terminal oder weston-flower kann ich nicht starten. Es erscheint eine Fehlermeldung.

Videos kann ich mir mit mpv sowohl im X11-, als auch im Wayland-Modus ansehen. Auch mit vlc kann ich mir Videos ansehen (im X11-Modus).

Enlightenment sieht vielversprechend aus. Aber es scheint mir - zumindest unter Gentoo - noch nicht ganz ausgereift zu sein.

F.4) Mutter / Gnome 3

Die folgende Beschreibung bezieht sich auf folgende Versionen:

xorg-server: 1.19.4

mutter: 3.22.4

gnome-shell: 3.22.3

Eine laufende Systemd-Umgebung ist Voraussetzung für Mutter mit Wayland-Unterstützung. Mutter ist eng mit Gnome 3 verknüpft. Die Installation habe ich folgendermaßen gestartet:

```
emerge gnome-shell nautilus
```

Nach der Installation von ca. 140 Paketen konnte ich Gnome / Mutter von der tty Konsole starten:

```
XDG_SESSION_TYPE=wayland dbus-run-session gnome-session

```

Nach dem Start erscheint der Gnome 3 Desktop. Mit xeyes konnte ich verifizieren, dass der Gnome Desktop und mitgelieferte Programme (wie beispielsweise "Einstellungen") im Wayland-Modus laufen.

Ich habe einige Tage mit dem Gnome 3 / Mutter System gearbeitet. Soweit ich sehe, funktioniert alles Wesentliche:

X11- und Wayland-Programme laufen. 

GTK+3- und Qt5-Programme kann ich sowohl im X11-, als auch im Wayland-Modus starten. 

Videos kann ich mir sowohl mit Firefox (X11-Modus), als auch mit mpv (X11- und Wayland-Modus), als auch mit vlc (X11-Modus) ansehen. 

Copy&Paste funktioniert bei X11-Programmen einwandfrei (alle Methoden). Bei Wayland-Programmen funktioniert es noch nicht so gut (s.u.). 

LibreOffice funktioniert problemlos im X11-Modus.

Konsole, Kate und Kreversi laufen einwandfrei im X11- und im Wayland-Modus. 

Wireshark läuft problemlos im X11- und im Wayland-Modus.

Folgende kleinere Problemchen habe ich entdeckt:

Bei X11-Fenstern fehlt der Minimize-Button. Man kann die Fenster aber auch folgendermaßen minimieren: rechter Mausklick auf die Titel-Leiste und "Minimieren".

Bei Wayland-Programmen oder bei Qt5- oder GTK+3-Programmen im Wayland-Modus funktioniert Copy&Paste noch nicht einwandfrei: weston-terminal stürzt ab, wenn ich rechte-Maustaste und "Kopieren" wähle. Bei konsole im Wayland-Modus funktioniert weder linke / mittlere Maustaste, noch Markieren und dann Bearbeiten-Kopieren / Einfügen. Es funktioniert aber: Markieren und dann Ctrl-Shift-C/V.

Gnome 3 mit Mutter funktioniert fast problemlos. Es ist die erste Wayland Desktop-Umgebung, die alle notwendigen Funktionen an Bord hat, mit der ich gut arbeiten kann, und die auch noch Spaß macht! Gnome 3 mit Mutter kommt also definitiv in meine nähere Auswahl!

F.5) KWin Standalone

In diesem Abschnitt beschreibe ich KWin OHNE Plasma. Ein Test zusammen mit Plasma folgt weiter unten.

Ich habe folgende Versionen verwendet:

xorg-server: 1.19.4

Qt: 5.9.2

KWin: 5.11.0

KWin lässt sich installieren mit "emerge kwin". Danach kann man KWin von einer TTY Konsole starten:

```
export $(dbus-launch)

kwin_wayland --xwayland --drm --exit-with-session=xterm
```

Es erscheint ein leerer Bildschirm mit einem xterm-Fenster. Meine weiteren Tests ergaben:

X11 Programme kann ich starten und sie laufen einwandfrei. Eine Anmerkung zu xeyes: KWin ist der erste Wayland-Compositor, der xeyes fehlerfrei anzeigt (transparenter Hintergrund, kein Rahmen, keine Titel-Leiste)

Qt5-Programme kann ich sowohl im X11- als auch im Wayland-Modus starten.

GTK+3-Programme kann ich nur im X11-Modus starten. Wenn ich sie im Wayland-Modus starte, erscheint eine Fehlermeldung.

Wayland-Programme wie weston-terminal oder weston-flower kann ich nicht starten. Es erscheint eine Fehlermeldung.

Videos kann ich mir mit mpv sowohl im X11-, als auch im Wayland-Modus ansehen. Auch mit vlc kann ich mir Videos ansehen (im X11-Modus).

KWin macht einen guten und stabilen Eindruck. Ich konnte keine Probleme mit KWin "an sich" feststellen. Die graphischen Effekte und das Arbeiten mit KWin macht Spaß.

Aber dass KWin keine GTK+3-Programme im Wayland-Modus anzeigen kann, ist eine harte Einschränkung. Die Erklärung lässt mich ratlos zurück: die Referenz-Implementierung "Weston" kann GTK+3-Programme im Wayland-Modus anzeigen. Und dann ist es schon merkwürdig, wenn die KWin-Entwickler sich weigern, das zu implementieren. Was nützt der schönste Wayland-Compositor, wenn man einen Teil seiner Programme nicht aufrufen kann?

F.6) KWin mit KDE Plasma

Ich habe folgende Versionen verwendet:

xorg-server: 1.19.4

Qt: 5.9.2

KWin: 5.11.0

KDE Plasma: 5.11.0

KDE Frameworks: 5.38.0

KDE Apps: 17.04.3

Die Installation startete ich mit "emerge kde-plasma/plasma-meta". Vor meinen Tests habe ich vorsichtshalber alle alten Konfigurationsdateien gelöscht: "cd ~;mv .config .config.old; mkdir .config".

KWin und KDE Plasma können von einer TTY Konsole gestartet werden:

```
startplasmacompositor
```

Es erscheint ein KDE Desktop mit Statusleiste unten. Mit xeyes konnte ich nachweisen, dass Desktop und mitgelieferte Programme (wie beispielsweise das Startmenü oder "Systemeinstellungen") im Wayland-Modus laufen.

Programme können über das Startmenü links unten gestartet werden. Alternativen sind Alt-F2 und Alt-Leertaste. Das Startmenü funktioniert einwandfrei. Das Verhalten der Programme habe ich bereits im letzten Abschnitt ("KWin Standalone") beschrieben.

Bei den Systemeinstellungen ist mir folgendes aufgefallen:

Einzelne Seiten werden gelegentlich nicht angezeigt

Einzelne Einstellungen werden nicht übernommen

Virtuelle Arbeitsflächen können nicht konfiguriert werden

Das Programm "Systemeinstellungen" stürzt gelegentlich ab 

Hier ist noch etwas Feinarbeit notwendig... Eine Liste weiterer Probleme von Plasma mit Wayland findet man hier.

Abgesehen von diesen Problemen (die sicherlich bald behoben sein werden), funktionieren KWin und KDE Plasma recht gut und es macht Spaß, mit dem System zu arbeiten. Das für mich größte Problem ist, dass zurzeit keine GTK+3-Programme im Wayland-Modus gestartet werden können.Last edited by mike155 on Wed Oct 18, 2017 2:51 pm; edited 18 times in total

----------

## schmidicom

 *mike155 wrote:*   

> F.1) Weston
> 
> Mit Weston 3.0 habe ich einige Zeit verbracht (siehe letzte Kapitel) und er gefällt mir eigentlich immer besser. Er läuft stabil und lässt sich sehr einfach konfigurieren. Weston benötigt keines der Pakete PulseAudio, ConsoleKit, PolKit, Systemd, udisks oder elogind. Leider fehlen ein paar Funktionen wie Taskbar, Desktop-Switcher, Menü-System. Aber je mehr ich die Probleme und Einschränkungen bei den anderen Wayland Compositors sehe, desto mehr Lust bekomme ich, vorerst weiter mit Weston zu arbeiten.

 

Für den Weston gibt es mehrere Projekte die versuchen genau das hinzuzufügen was du hier vermisst.

Zum Beispiel: https://github.com/giucam/orbital

Aber trotzdem bleibt der Weston eine Spielwiese für die Wayland-Entwickler und man sollte davon besser nicht zu viel erwarten.

----------

## mike155

Hallo Schmidicom,

danke für den Tipp mit Orbital. Ich hatte das Projekt auch schon gesehen, aber es erscheint mir nicht sehr lebendig (siehe https://github.com/giucam/orbital/issues/55). Außerdem arbeitet Orbital noch nicht mit Weston 3. Aber vielleicht gibt es bald eine neue Version für Weston 3 - und dann werde ich mir Orbital näher ansehen.

Viele Grüße

Mike

----------

## platinumviper

 *mike155 wrote:*   

> E) Welche Programme laufen bereits unter Wayland?
> 
> Bei xeyes sieht man zwei willkommene Änderungen: das Programm hat einen richtigen Fensterrahmen und die Augen bewegen sich nur noch, wenn man sich mit dem Cursor direkt in dem Fenster bewegt - und nicht mehr, wenn sich der Cursor auf dem Desktop-Hintergrund oder in einem anderen Fenster bewegt. So soll es sein.

 

Nein, so soll es nicht sein. Wenn das Demoprogramm xeyes mit dem Parameter "+shape" gestartet wird soll es einen Fensterrahmen haben, ansonsten nicht. Dass es auf den Mauszeiger reagiert, auch wenn er nicht im Bereich von xeyes ist, ist ebenfalls wesentlicher Bestandteil der Demo. Da beides nicht der Fall ist, funktioniert es also unter Wayland nicht annähernd korrekt.

Aber vielen Dank für die Veröffentlichung deiner Experimente, das ist sehr hilfreich und spart Zeit. Ich plane Wayland in einigen Monaten auch mal zu testen, das hat aber keine hohe Priorität.

Wie sieht es denn inzwischen bezüglich Netzwerktransparenz aus, hast du da schon Erfahrungen gemacht? Ich habe normalerweise grafische Programme von mindestens 4-5 Rechnern  laufen, wenn dafür auch immer Xwayland laufen lassen muss, kann ich auch gleich auf Wayland verzichten und die Angriffsfläche nicht auch noch vergrößern.

----------

## mike155

 *platinumviper wrote:*   

> Wie sieht es denn inzwischen bezüglich Netzwerktransparenz aus, hast du da schon Erfahrungen gemacht?

 

Dies möchte ich auch testen - es kann aber noch 1 - 2 Wochen dauern. Zurzeit bin ich noch bei Wayland Compositor Tests. Weil einige Compositors Systemd benötigen, setze ich gerade ein weiteres System mit Systemd auf...

----------

## mike155

 *platinumviper wrote:*   

> Nein, so soll es nicht sein. Wenn das Demoprogramm xeyes mit dem Parameter "+shape" gestartet wird soll es einen Fensterrahmen haben, ansonsten nicht. Dass es auf den Mauszeiger reagiert, auch wenn er nicht im Bereich von xeyes ist, ist ebenfalls wesentlicher Bestandteil der Demo. Da beides nicht der Fall ist, funktioniert es also unter Wayland nicht annähernd korrekt. 

 

Wenn man möchte, dass xeyes sich unter Weston/XWayland genauso verhält wie unter X11, muss man in der Tat sagen, dass xeyes bei mir nicht korrekt funktioniert.

Andererseits kann xeyes sich unter Weston/XWayland nicht so verhalten, wie unter X11. Damit xeyes immer in Richtung meiner Maus schaut, muss xeyes wissen, wo sich die Maus befindet. Unter X11 kann es diese Information bekommen (das ist ja gerade das Security-Problem) - unter einem Wayland Compositor nicht. Wayland sorgt dafür, dass Events nur noch an die Fenster (bzw. an die zugehörigen Programme) gesendet werden, für die sie bestimmt sind.

Wenn ich meine Maus also außerhalb meiner X11-Fenster bewege, kann und darf xeyes unter einem Wayland Compositor die Augen nicht mehr bewegen. Wenn es das doch täte, würde das nicht bedeuten, dass xeyes funktioniert - sondern es wäre der Beweis dafür, dass der Wayland Compositor nicht sauber funktioniert und ein Informations-Leck hat...

Dass ich unter Weston/Xwayland und unter Sway/Xwayland einen Rahmen und einen weißen bzw. schwarzen Hintergrund um die Augen von xeyes sehe, könnte hingegen schon ein Fehler sein (also ein Bug oder eine Fehlkonfiguration bei mir). Normalerweise sind Fenster rechteckig, aber xeyes nutzt die X11 Shape Extension, um den rechteckigen Fenster-Rahmen und -Hintergrund wegzuzaubern. Ich bin zunächst davon ausgegangen, dass die Shape Extension unter Weston/Xwayland nicht funktioniert - aber mittlerweile vermute ich schon, dass sie auch unter Weston/Xwayland funktionieren sollte. 

Nachtrag: mittlerweile habe ich unter Gnome 3 / Mutter gesehen, dass die Shape Extension auch unter Xwayland funktioniert: xeyes zaubert wie gewohnt den Hintergrund weg. Allerdings sehe ich weiterhin ein sehr dünnen Rahmen und die Titelleiste. Ich werde meinen obigen Text verbessern. Vielen Dank für den Hinweis!

----------

## mike155

G) X11- und Wayland-Programme auf Remote Systemen ausführen (Netzwerktransparenz) 

Wie kann man auf einem System mit Wayland-Compositor Programme unter einem anderen User oder auf einem anderen Computer ausführen?

Für die Diskussion muss man trennen zwischen:

X11-Programmen (beinhaltet im folgenden auch GTK3+- und Qt5-Programme, die X11-Modus laufen)

Wayland-Programmen (beinhaltet im folgenden auch GTK3+- und Qt5-Programme, die im Wayland-Modus laufen)

Für die tägliche Arbeit ist hauptsächlich die erste Kategorie wichtig: bisher gibt nur wenige reine Wayland-Programme - fast alle anderen Programme kann man im X11-Modus laufen lassen.

Die folgenden Beispiele wurden unter Weston, Sway und Mutter / Gnome 3 getestet.

G.1) X11-Programme unter einem anderen User laufen lassen

Auf einem Linux-System mit klassischen X11-Server kann man mit su oder sudo (gelegentlich benötigt man sux oder sudox) zu einem anderen User wechseln und dort X11-Programme starten, die dann Fenster auf dem eigenen Bildschirm öffnen:

```
su -

xterm
```

Dies funktioniert auch auf einem System mit Wayland-Compositor. Man muss aber vorher den anderen User (zu dem man wechseln will) einmalig mit xhost freigeben:

```
xhost si:localuser:root           # User "root" erlauben

su -

xterm
```

Es funktioniert ebenfalls mit sudo:

```
xhost si:localuser:game_user

sudo -u game_user kreversi
```

G.2) X11-Programme auf einem anderen Server laufen lassen

Auf einem System mit klassischem X11-Server kann man sich mit "ssh -Y" an einem Remote Computer anmelden und dort X11-Programme starten, die Ihre Fenster dann auf dem eigenen Bildschirm darstellen.

Dies funktioniert auch unter einem Wayland-Compositor - und zwar ohne, dass man vorher Berechtigungen mit xhost erteilen muss. 

```
ssh -Y <user>@<hostname>

xterm
```

Spannender ist da schon die Frage, was genau ein Angreifer mit entsprechenden Rechten auf dem Remote-System (also beispielsweise root) sieht, wenn er meinen Bildschirm ausliest: "xwd -root" funktioniert glücklicherweise nicht mehr. Aber mit "xwininfo -root -tree" kann er die Liste aller (!) X11-Fenster auf meinem Bildschirm auslesen. Danach kann er mit "xwd -i <num>" Screenshots von allen meinen X11-Fenstern erstellen. Mit "xev -id <num>" kann er mitverfolgen, was ich in meinen X11-Fenstern mache (Mausbewegungen, Tastatureingaben, usw.).

Mit anderen Worten: der Angreifer sieht nicht mehr meinen gesamten Bildschirm, aber er kann immer noch die Inhalte aller meiner X11-Fenster auslesen - und mitverfolgen, was ich in meinem X11-Fenstern mache. Deshalb sollte man "ssh -Y" auch unter einem Wayland-Compositor nur dann verwenden, wenn man dem Remote-System zu 100% vertrauen kann - und niemand außer mir selbst root-Rechte hat oder sich unter dem User anmelden kann, mit dem ich mich am Remote-System anmelde.

G.3) Wayland-Programme unter einem anderen User laufen lassen

Der erste Versuch scheitert erwartungsgemäß:

```
su -

weston-terminal
```

Auch nach längerer Suche habe ich keine gute und verlässliche Methode gefunden, wie man Wayland-Programme unter einem andern User ausführen kann. Dokument [20] erklärt die Gründe: ein Wayland-Programm unter einem anderen User muss nicht nur auf den Wayland-Socket, sondern auch noch auf diverse andere Dateien zugreifen.

Dies führt uns aber zu einem Trick, wie man es zumindest testweise hinbekommt:

```
export | egrep "(XDG_RUNTIME_DIR|WAYLAND_DISPLAY)"

su -

export XDG_RUNTIME_DIR="<oben angezeigter Wert>" 

export WAYLAND_DISPLAY="<oben angezeigter Wert>" 

weston-terminal
```

... und schon öffnet sich ein Weston Terminal! Der Trick funktioniert auch für andere User auf dem System, man muss dem anderen User aber vorher Zugriffsrechte für das eigene Verzeichnis $XDG_RUNTIME_DIR und alle darin befindlichen Objekte (Unterverzeichnisse, Dateien, Sockets) geben - am besten über eine gemeinsame Gruppe.

Dies ist aber nur eine Notlösung für Demonstrationszwecke - in dem Sinne: es ist prinzipiell möglich und es gibt Hoffnung, dass es irgendwann eine offizielle Lösung geben wird. Ich würde nicht empfehlen, mit diesem Trick wirklich zu arbeiten.

G.4) Wayland-Programme auf einem anderen Server laufen lassen

Text folgt (ca. Ende Oktober)Last edited by mike155 on Wed Oct 18, 2017 5:27 pm; edited 1 time in total

----------

## mike155

H) Ergebnis 

Die gute Nachricht zuerst: ein Wechsel auf einen Wayland Compositor ist möglich - und man kann fast genauso weiterarbeiten wie bisher. Da ein Wayland Compositor mit Hilfe von XWayland auch X11-Programme ausführen kann, laufen auch alle Programme, die man bisher verwendet hat. Auch das Ausführen von Remote-Programmen über "ssh -Y" funktioniert, wenn die Remote-Programme entweder X11-Programme sind oder zumindest im X11-Modus laufen können.

Ein Wechsel kann in mehreren Stufen erfolgen:

Wahl eines Wayland Compositors und Wechsel zu diesem.

Die mit dem Wayland Compositor mitgelieferten Programme werden vermutlich bereits im Wayland-Modus arbeiten. Alle anderen Programme (Firefox, LibreOffice, konsole, kate, ...) sollte man zuerst im X11-Modus ausführen - sie funktionieren dann genauso wie bisher. Mit Hilfe von Umgebungsvariablen kann man für jedes Programm einzeln testen, ob es auch im Wayland-Modus funktioniert. Wenn es einwandfrei funktioniert, startet man es in Zukunft im Wayland-Modus. Ansonsten führt man es vorerst weiter im X11-Modus aus.

Irgendwann wird man alle Programme auf den Wayland-Modus umgestellt haben. Dann kann man XWayland und alle X11-Pakete deinstallieren. Ich vermute aber, dass das noch einige Jahre dauern wird...

Zur Wahl des Wayland Compositors:

Hier eine Kurzfassung meiner oben beschriebenen Wayland Compositor Tests: 

Mutter / Gnome 3: das Gespann lässt sich problemlos installieren und es hat in meinen Tests einwandfrei funktioniert. Eine klare Empfehlung!

KWin: KWin als Wayland Compositor läuft bereits recht gut. Ärgerlich ist aber, dass GTK+3-Programme zurzeit nicht im Wayland-Modus ausgeführt werden können.

KWin / KDE Plasma: die Kombination von KWin und KDE Plasma sieht vielversprechend aus. Aber es zeigen sich noch zu viele Probleme und Fehler, um ernsthaft damit arbeiten zu können. Wenn die Entwickler ihre Roadmaps einhalten, wird eine stabile Version voraussichtlich im Frühjahr 2018 zur Verfügung stehen.

Weston: Weston läuft schnell, stabil und fehlerfrei - und es macht Spaß, mit Weston zu arbeiten. Allerdings ist der Funktionsumfang von Weston zu beschränkt, um ernsthaft damit arbeiten zu können.

Nichtsdestotrotz würde ich Wayland Neueinsteigern raten, zuerst Weston auszuprobieren. Weston lässt sich schnell installieren - und eignet sich hervorragend, um Wayland kennenzulernen und um auszuprobieren, ob die eigenen Programme unter Wayland laufen. 

Sway: Sway ist schnell installiert und eine gute Wahl für alle, die Tiling Window Manager mögen.

Enlightenment: diese Umgebung hat in meinen Tests die meisten Schwierigkeiten bereitet. Ich habe nicht herausgefunden, ob die Probleme und Fehler an der Software selbst, oder an einer mangelhaften Unterstützung durch Gentoo liegen. 

XFCE und LXQt: leider unterstützen XFCE und LXQt noch keine Wayland Compositors - das wird wohl noch einige Zeit dauern. 

Als Ergebnis meiner Tests habe ich mittlerweile zu Mutter / Gnome 3 gewechselt. Zwar wollte ich eigentlich eine schlankere Umgebung haben (wie XFCE oder LXQt) und auch kein Systemd. Andererseits ist Mutter / Gnome 3 die einzige Wayland Desktop-Umgebung, die einwandfrei funktioniert und die alle für mich notwendigen Funktionen mitbringt. Bisher habe ich den Wechsel nicht bereut. Abgesehen von der Art der Bedienung sehe ich kaum Unterschiede zu meinen letzten Desktop-Umgebungen XFCE bzw. LXQt. Ich arbeite genauso wie vorher - nur dass mein Desktop und die meisten GTK+3-Programme jetzt im Wayland-Modus laufen. An der Umstellung der Qt5-Programme auf Wayland arbeite ich gerade...

----------

## mv

Der Thread scheint trotz des Alters noch aktuell zu sein: Keine neueren Versionen als die beschriebenen sind im Gentoo-Repository.

Ein paar Anmerkungen und Fragen bzgl. der Sicherheit.

Da gnome3 ohne policykit nicht installierbar ist, finde ich das aus Sicherheitsaspekten ein No-Go.

Wenn ich es richtig verstehe, wird weston per Default als suid gestartet (USE=+suid), testet dann aber mit pam die Berechtigungen, um einen (vermeintlichen) User-Start zu erlauben. Sollte man dann nicht ehrlicherweise lieber gleich als root starten? Dann könnte man sich insbesondere die unangenehme Abhängigkeit an pam sparen, die ja aus Sicherheitsaspekten ebenfalls hochproblematisch ist.

Im mv overlay gibt es neuerdings eine Version von weston, die mit USE=-pam die Abfrage an pam unterlässt und dementsprechend in diesem Fall auch keine Abhängigkeit an PAM hat. Dies erfordert allerdings ein Patchen des Original-weston. Der zugehörige Patch kursiert im Netz an vielen Stellen, ist aber anscheinend nicht upstream übernommen worden. Kennt jemand die Gründe?

Ich frage mich ebenfalls, welchen Sinn das USE=suid im Gentoo-Baum hat, wenn man mit diesem Ebuild sowieso nur im „PAM-Modus“ starten kann, der ohne suid nicht funktionieren kann.

Und noch mehr frage ich mich, weshalb sway kein pam benötigt (außer anscheinend für das Passwort beim Bildschirm-Locking, was aber nur eine Implementierungsfrage ist). Kann man mit sway im Gegensatz zu weston einen wayland-compositor starten ohne (implizit) root zu sein?

 Die Empfehlung der Freigabe mit xhost ist nicht gut: Um solche generellen Freigaben zu vermeiden (die gefälscht werden können), wurden sudox und sux entwickelt. Funktioniert das nicht mehr mit xwayland?

 Wenn es tatsächlich so ist, dass man unter wayland nicht den Benutzer wechseln kann, ohne diesem Zugriff auf das gesamte XDG-Verzeichnis zu geben, sehe ich nicht geringsten Sicherheitsvorteil von wayland gegenüber X: Wenn man beispielsweise einen Browser mit geringeren Rechten starten will, kann dieser trotzdem noch genauso das Fenster auslesen, in dem man eine root-Session laufen hat, einfach weil er auf die dazu notwendigen Dateien Zugriffsrechte haben muss. Oder habe ich da etwas missverstanden?

----------

## toralf

Anbei, Ubuntu geht von wayland (wieder) weg - typisch Ubuntu oder war's das mit wayland ?

----------

## firefly

 *toralf wrote:*   

> Anbei, Ubuntu geht von wayland (wieder) weg - typisch Ubuntu oder war's das mit wayland ?

 

Quelle?

----------

## schmidicom

 *firefly wrote:*   

>  *toralf wrote:*   Anbei, Ubuntu geht von wayland (wieder) weg - typisch Ubuntu oder war's das mit wayland ? 
> 
> Quelle?

 

https://heise.de/-4030925

----------

## franzf

Laut Heise-Artikel betrifft das lediglich die 18.04 LTS, Für 20.04 LTS wird feste mit Wayland geplant. Auch die non-LTS Releases werden wohl mit Wayland laufen. Also keine Abkehr wie suggeriert, sondern lediglich ein kurzer Aufschub, da es noch Probleme zu geben scheint.

----------

## schmidicom

Nun, fast zwei Jahre später, hat sich doch einiges getan.  :Smile: 

Bei KDE bekommt die X11-Session nur noch Fehlerkorrekturen und die Entwicklung konzentriert sich auf Wayland. Wie es bei Gnome aussieht weiss nicht nicht aber vermutlich nicht viel anders.

Ich selbst habe diese Woche (die 9te von 2020) versuchsweise angefangen sowohl auf dem Laptop (Single-Monitor) wie auch auf dem Desktop (Multi-Monitor) mit einer KDE Wayland-Session (Plasma 5.18.1 ; Frameworks 5.67.0 ; Qt 5.14.1) zu arbeiten. Bis jetzt wäre mir nichts aufgefallen was nicht funktionieren würde, mal sehen wies weitergeht...

----------

## firefly

@schmidicom: Da noch einige tools kein wayland support haben. Wird meist ein X11 server (XWayland) zusätzlich gestartet, damit diese tools laufen können

----------

## schmidicom

 *firefly wrote:*   

> @schmidicom: Da noch einige tools kein wayland support haben. Wird meist ein X11 server (XWayland) zusätzlich gestartet, damit diese tools laufen können

 

Jo, weiss ich.

Im Moment dürfte wohl der app-emulation/virt-manager über xwayland laufen, aber www-client/firefox, media-video/vlc und natürlich alles von KDE selbst sollte eigentlich nativ mit wayland umgehen können.

EDIT:

Dem Firefox muss man wohl, per Umgebungsvariable, nochmal extra mitteilen das er wenn möglich wayland benutzen soll.   :Rolling Eyes: 

https://wiki.archlinux.org/index.php/Firefox#Wayland

EDIT2:

Der Firefox ist mit nativ Wayland eine einzige Katastrophe...

Bereits das verändern der Fenstergröße reicht aus damit er sich komplett aufhängt, als würde Mozilla erst sein gestern an der Wayland-Unterstützung arbeiten.   :Sad: Last edited by schmidicom on Wed Feb 26, 2020 8:45 pm; edited 2 times in total

----------

## mike155

 *schmidicom wrote:*   

>  *firefly wrote:*   @schmidicom: Da noch einige tools kein wayland support haben. Wird meist ein X11 server (XWayland) zusätzlich gestartet, damit diese tools laufen können 
> 
> Jo, weiss ich.
> 
> Im Moment dürfte wohl der app-emulation/virt-manager über xwayland laufen, aber www-client/firefox, media-video/vlc und natürlich alles von KDE selbst sollte eigentlich nativ mit wayland umgehen können.

 

Seitdem ich Wayland nutze, habe ich wieder ein kleines xeyes Fenster rechts oben im Bildschirm - wie früher in den 90ern  :Smile: . Dann sehe ich sofort, ob ein Programm im Wayland- oder im X11-Modus läuft. Bewegen sich die Augen, wenn ich den Cursor über dem Fenster bewege, läuft das Programm im X11-Modus. 

Firefox und Thunderbird laufen bei mir noch im X11-Modus.

----------

## ManfredB

Was ist denn an wayland so besonders?

Ehrlich gesagt: wer das nicht braucht: wie kann man die Installation aller wayland-Pakete verhindern?

Es sind ja nach meinen Recherchen eine ganze Menge an Paketen, die mit wayland in Verbindung stehen.

Irgendwie nervt mich das, zumal es noch keine zuverlässige Aussage gibt,

wozu das überhaupt da ist.

Sorry, ich will niemanden kritisieren, der damit umgeht.

Gruß

Manfred

----------

## schmidicom

@ManfredB

Nichts für ungut aber die Frage hat inzwischen einen ziemlich langen Bart und und wurde schon an vielen Stellen im Forum beantwortet.

Kurz gesagt, X11 ist allein schon im Bereich Sicherheit eine einzige Katastrophe (z.B. kann jede App unkontrolliert einfach mal so alles abgreifen und aufzeichnen) und die ganzen Altlasten welche meist nur ungenutzt herumliegen (weil das inzwischen an anderer Stelle, z. B. im Compositor, weit besser gelöst wird) machen das ganze kein Stück besser. Der Wechsel hin zu etwas neuem wurde schon lange vor Wayland von etlichen Leuten mit richtig Ahnung von der Materie gefordert und immer wieder ausprobiert, aber erst mit Wayland hat sich tatsächlich endlich mal etwas bewegt.

----------

## ManfredB

Danke für die deutlichen Worte.

Wenn der Prozess noch im Laufen ist, wird es wohl noch dauern, bis unsereins (kein Fachmann auf diesem Gebiet) damit umgehen kann.

Also: warten bis es soweit ist.....

Gruß

Manfred

----------

## l3u

… und dann wird einem Gentoo schon sagen, wie's geht ;-) Oder es automatisch machen. Oder?!

----------

## schmidicom

Ich möchte hier noch kurz mein Fazit aus dem einwöchigen Wayland-Experiment loswerden:

Der KDE Plasma selbst funktioniert unter Wayland meiner Meinung nach inzwischen kein bisschen schlechter als unter X11, auch mit mehreren Monitoren konnte ich nichts finden was mich vom arbeiten abgehalten hätte. Etwas anders sieht es bei den KDE Applikation aus, hier gibt es noch immer die eine oder andere App welche ihre Schwierigkeiten hat. Zum Beispiel schafft es Gwenview nicht immer das Bild anzuzeigen wenn es aus dem Datei-Manager heraus geöffnet wurde.

Innerhalb der KDE-Welt funktionierte das meiste überraschend stabil und man kann damit arbeiten.

Ganz anders sieht es bei Programmen aus die nicht aus der KDE-Welt kommen.

Mozilla unterstützt zwar Wayland (wenn man es per Umgebungsvariable nochmal extra aktiviert) ist dann aber alles andere als stabil, ähnlich verhält es sich auch bei anderen. Meistens ist der Wayland-Support entweder experimentell und/oder unvollständig.

Die Kompatibilitätsschnittstelle "XWayland" (welche im übrigen von "x11-base/xorg-server (/usr/bin/Xwayland)" bereitgestellt wird und nicht von KDE Plasma selbst) ist leider auch nach wie vor alles andere als stabil. Meistens läuft sie ohne das man groß etwas von ihrer Anwesenheit bemerkt, aber je länger sie ununterbrochen im Einsatz ist um so instabiler wird sie. Sie ist sogar in der Lage die ganze Session ohne Vorwarnung abstürzen zu lassen.

Kurz gesagt, die KDE-Leute haben in Sachen Wayland richtig vorwärts gemacht und das merkt man auch aber von den meisten anderen Software-Entwicklern kann man das nicht behaupten.Last edited by schmidicom on Tue Dec 08, 2020 9:30 am; edited 1 time in total

----------

## mike155

@schmidicom: ich kann Deine Beobachtungen größtenteils bestätigen.

Vor 2.5 Jahren habe ich auf Gnome/Wayland gewechselt. Innerhalb von Gnome lief auch alles sehr gut! Von daher haben nicht nur die KDE-Entwickler gute Arbeit geleistet, sondern auch die Gnome-Entwickler! Allerdings liefen Qt- und KDE-Programme nicht so gut unter Gnome/Wayland. Nach Updates von Qt/KDE oder von Gnome/GTK kam es häufiger vor, dass hinterher irgendetwas nicht mehr so gut funktionierte wie vorher. Außerdem ist die Gnome Shell ca. ein Mal pro Tag abgestürzt. 

Vor 1.5 Jahren habe ich zu KDE/Wayland gewechselt. Jetzt liefen die KDE-Programme wunderbar, dafür aber die Gnome-/GTK-Programme nicht mehr so gut. Abstürze gab es keine mehr, aber mit den folgenden KDE- und  Gnome/GTK-Updates wurden immer wieder einige Bugs verbessert - und dafür liefen andere Dinge wieder schlechter. Der Hit war ein KDE-Update, das einen neuen Bug eingeführt hat: bei jedem Öffnen von Fenstern wurden die Fenster größer. Dadurch lagen wichtige Bereiche schnell außerhalb des Bildschirms und ich musste die Fenster sehr häufig mit der Maus kleiner ziehen. Ich habe einen Bug Report bei KDE geöffnet. Er wurde sofort wieder geschlossen mit dem Hinweis, ich solle eine neue Version von Qt installieren. Die neue Version von Qt war damals aber noch nicht unter Gentoo verfügbar und wurde auch erst ein paar Monate später in das Gentoo Repository aufgenommen.

Daraufhin habe ich zu Weston gewechselt. Hier fehlen zwar alle wichtigen Funktionen normaler GUIs, aber der Quellcode ist klein, es läuft stabil und es gibt keine Abstürze. 

Eigentlich schreit alles in mir danach, das Abenteuer "Desktop unter Linux" zu beenden und zu macOS zu wechseln. Zurück hält mich noch die Liebe zu Linux und mein Kopf, der sagt, dass Open Source eine so tolle Sache ist, dass man auch ein paar Unannehmlichkeiten in Kauf nehmen muss. Aber ehrlich gesagt: ich habe die Hoffnung aufgegeben, dass wir jemals einen stabilen Desktop unter Linux haben werden, der so gut funktioniert wie die Desktops bei macOS oder Windows (wobei ich jetzt wirklich nur den Desktop "an sich" meine).

----------

## mike155

LWN berichtet, dass Drew DeVault (der Haupt-Entwickler von Sway) gerade ein Buch über das Wayland Display-Server Protokoll herausgegeben hat. 

Das Buch steht unter der Creative Commons CC-SA Lizenz, so dass man es direkt lesen kann!

Die Online Version: https://wayland-book.com/

Der Quelltext im Markdown Format: https://git.sr.ht/~sircmpwn/wayland-book

Kommentare der Leser "rillian" und "CChittleborough" beschreiben, wie man die Markdown Version herunterladen und lesen kann:

```
$ cargo install mdbook

$ git clone https://git.sr.ht/~sircmpwn/wayland-book

$ cd wayland-book

$ mdbook build

$ xdg-open book/index.html    # Startet den Browser
```

Dann werde ich jetzt mal lesen! Bin schon sehr gespannt!  :Smile: 

----------

## schmidicom

Kleiner Zwischenbericht von meiner Seite:

Mitte letzte Woche habe ich auf meinem Laptop das ganze nochmal ausprobiert und es hat sich einiges getan.

Bei den KDE-Apps kann ich inzwischen kaum noch etwas finden was nicht funktionieren würde, lediglich KDRC scheint noch nicht kapiert zu haben das auch FreeRDP schon seit längerem mit Wayland klar kommt. An dieser Stelle musste ich dann eben fürs erste auf die GTK-Anwendung "Remmina" wechseln die überraschend gut funktioniert (Wayland unter KDE ist ja nicht ganz das selbe wie unter GNOME und Remmina wird vermutlich eher auf GNOME ausgerichtet sein).

Aber auch beim Firefox (=www-client/firefox-83.0) hat sich offenbar einiges getan.

Das erste was mir auffiel war das Firefox inzwischen standardmäßig Wayland benutzt wenn es vorhanden ist, sprich es braucht keine Umgebungsvariable mehr um den Firefox im Wayland-Modus zu starten. Und auch die Stabilität hat sich deutlich verbessert, zumindest ist mir der Firefox in diesem Modus nicht mehr abgeschmiert. Aber trotzdem läuft da noch nicht alles so rund wie es sollte:

- Das Kontextmenü spinnt manchmal ziemlich herum

- Tooltips sind oft abgeschnitten und nicht vollständig angezeigt

- Und auch die Zwischenablage scheint manchmal nicht ganz sauber zu funktionieren.

----------

## mike155

@schmidicom: meines Erachtens hast Du hast die aktuelle Situation gut zusammengefasst! 

Es geht langsam voran...  :Smile: 

----------

## schmidicom

Hier ist noch ein interessanter Link zum Thema:

https://community.kde.org/Plasma/Wayland_Showstoppers

Meinen KDE Plasma benutze ich im Moment wieder unter X11 weil:

- Die zu oft nicht funktionierende Zwischenablage zwischen Firefox und KDE ist für mich einfach nicht akzeptabel ist.

- Ebenfalls extrem ärgerlich ist das zweite Problem, vom Link weiter oben, unter "Input".

- Beruflich bin ich genötigt Microsoft Teams zu benutzen und das hat auf einem Wayland-Desktop einfach zu viele funktionale Einschränkungen.

----------

