Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Wechsel auf Wayland
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Fri Sep 22, 2017 3:30 pm    Post subject: Wechsel auf Wayland Reply with quote

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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Fri Sep 22, 2017 4:54 pm    Post subject: A) Literatur- / Link-Verzeichnis: Reply with quote

A) Literatur- / Link-Verzeichnis:

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:
  1. Die beiden separaten X11 Module "Displayserver" und "Fenstermanager" werden unter Wayland zum "Wayland Compositor" zusammengefasst.
  2. 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.
  3. 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.
  4. 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"
  5. 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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Fri Sep 22, 2017 5:22 pm    Post subject: C) Wayland / Weston zum Laufen bekommen Reply with quote

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:
Code:
wayland egl libinput

Folgende Zeilen habe ich an "/etc/portage/package.use" angehängt:
Code:
dev-libs/weston               examples wayland-compositor xwayland
media-libs/libsdl2            gles

Dann habe ich die erforderlichen Pakete re-installiert:
Code:
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:
Code:
=dev-libs/weston-3.0.0 ~amd64
=dev-libs/wayland-protocols-1.10 ~amd64

und die Installation gestartet:
Code:
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:
Code:
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]):
Code:
[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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Sat Sep 23, 2017 12:11 am    Post subject: D) Weston kennenlernen Reply with quote

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:
Code:
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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Sat Sep 23, 2017 2:48 pm    Post subject: E) Welche Programme laufen bereits unter Wayland? Reply with quote

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:
Code:
/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
Back to top
View user's profile Send private message
musv
Advocate
Advocate


Joined: 01 Dec 2002
Posts: 3123
Location: de

PostPosted: Sat Sep 23, 2017 10:16 pm    Post subject: Reply with quote

Auch wenn ich jetzt Deinen Thread kaputt mach:

  1. Für genau solche Sachen haben wir das Dokumentationssubforum.
  2. 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.
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Sat Sep 23, 2017 11:03 pm    Post subject: Reply with quote

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?
Back to top
View user's profile Send private message
ChrisJumper
Advocate
Advocate


Joined: 12 Mar 2005
Posts: 2005
Location: Germany

PostPosted: Mon Sep 25, 2017 2:57 am    Post subject: Reply with quote

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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Mon Sep 25, 2017 8:44 pm    Post subject: Reply with quote

Hi Chris,

danke für Deinen freundlichen Post :-)
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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Tue Sep 26, 2017 9:55 pm    Post subject: F) Test mehrerer Wayland Compositors Reply with quote

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:
Code:
swaybar swaygrab swaylock wallpapers -tray

Nach der Installation, die sehr schnell ging, konnte ich Sway von der tty Konsole starten:
Code:
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:
  1. Bei Enlightenment herrscht Versions-Chaos - die derzeit aktuelle Version ist 0.21.7 - und nicht 1.0.17.
  2. 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:
Code:
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:
Code:
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:
  1. Die mit Enlightenment mitgelieferten Menüs und Programme funktionieren gut. Ich konnte keine Probleme feststellen.
  2. X11-Programme kann ich starten und sie laufen einwandfrei.
  3. Qt5-Programme kann ich sowohl im X11- als auch im Wayland-Modus starten.
  4. GTK+3-Programme kann ich nur im X11-Modus starten. Wenn ich sie im Wayland-Modus starte, erscheint eine Fehlermeldung.
  5. Wayland-Programme wie weston-terminal oder weston-flower kann ich nicht starten. Es erscheint eine Fehlermeldung.
  6. 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:
Code:
emerge gnome-shell nautilus

Nach der Installation von ca. 140 Paketen konnte ich Gnome / Mutter von der tty Konsole starten:
Code:
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:
Code:
export $(dbus-launch)
kwin_wayland --xwayland --drm --exit-with-session=xterm

Es erscheint ein leerer Bildschirm mit einem xterm-Fenster. Meine weiteren Tests ergaben:
  1. 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)
  2. Qt5-Programme kann ich sowohl im X11- als auch im Wayland-Modus starten.
  3. GTK+3-Programme kann ich nur im X11-Modus starten. Wenn ich sie im Wayland-Modus starte, erscheint eine Fehlermeldung.
  4. Wayland-Programme wie weston-terminal oder weston-flower kann ich nicht starten. Es erscheint eine Fehlermeldung.
  5. 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:
Code:
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
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1426
Location: Schweiz

PostPosted: Wed Sep 27, 2017 6:32 am    Post subject: Re: F) Test mehrerer Wayland Compositors Reply with quote

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.
_________________
GPG: B5114B6154A19454
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Wed Sep 27, 2017 8:49 pm    Post subject: Reply with quote

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
Back to top
View user's profile Send private message
platinumviper
l33t
l33t


Joined: 12 Feb 2004
Posts: 625
Location: Munich, Germany

PostPosted: Tue Oct 03, 2017 5:21 am    Post subject: Re: E) Welche Programme laufen bereits unter Wayland? Reply with quote

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.
_________________
No money back garantee. In case of problems, don't call us, we call you.
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Wed Oct 04, 2017 3:30 pm    Post subject: Reply with quote

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...
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Wed Oct 04, 2017 8:56 pm    Post subject: Reply with quote

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!
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Mon Oct 09, 2017 8:34 pm    Post subject: G) X11- und Wayland-Programme auf Remote Systemen ausführen Reply with quote

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:
  1. X11-Programmen (beinhaltet im folgenden auch GTK3+- und Qt5-Programme, die X11-Modus laufen)
  2. 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:
Code:
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:
Code:
xhost si:localuser:root           # User "root" erlauben
su -
xterm

Es funktioniert ebenfalls mit sudo:
Code:
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.
Code:
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äß:
Code:
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:
Code:
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
Back to top
View user's profile Send private message
mike155
Apprentice
Apprentice


Joined: 17 Sep 2010
Posts: 168
Location: Frankfurt, Germany

PostPosted: Wed Oct 18, 2017 4:41 pm    Post subject: H) Ergebnis Reply with quote

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:
  1. Wahl eines Wayland Compositors und Wechsel zu diesem.
  2. 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.
  3. 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...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum