Desktop mit Wayland und Weston ############################## Gute, einführende Dokumente sind hier zu finden: - https://linoxide.com/linux-how-to/run-wayland-weston-arch-linux/ - https://wiki.parabola.nu/Wayland - https://www.linux-magazin.de/wp-content/uploads/2017/01/abb1.jpg - http://techtrickery.com/keyloggers.html Installation ------------ :: apt-get update && apt-get install weston ... root@ubuntu:~# dpkg -L weston | grep bin /usr/bin /usr/bin/wcap-decode /usr/bin/weston /usr/bin/weston-calibrator /usr/bin/weston-clickdot /usr/bin/weston-cliptest /usr/bin/weston-confine /usr/bin/weston-content_protection /usr/bin/weston-debug /usr/bin/weston-dnd /usr/bin/weston-editor /usr/bin/weston-eventdemo /usr/bin/weston-flower /usr/bin/weston-fullscreen /usr/bin/weston-image /usr/bin/weston-info /usr/bin/weston-launch /usr/bin/weston-multi-resource /usr/bin/weston-presentation-shm /usr/bin/weston-resizor /usr/bin/weston-scaler /usr/bin/weston-screenshooter /usr/bin/weston-simple-damage /usr/bin/weston-simple-dmabuf-egl /usr/bin/weston-simple-dmabuf-v4l /usr/bin/weston-simple-egl /usr/bin/weston-simple-shm /usr/bin/weston-simple-touch /usr/bin/weston-smoke /usr/bin/weston-stacking /usr/bin/weston-subsurfaces /usr/bin/weston-terminal /usr/bin/weston-touch-calibrator /usr/bin/weston-transformed /usr/share/man/man7/weston-bindings.7.gz root@ubuntu:~# Nun bitte als einfacher Nutzer 'tux' direkt an der Maschine an einer virtuellen Konsole (z.B. mit STRG-ALT-F1 zu erreichen) einloggen und 'weston-launch' eingeben. Wir erleben nun, dass sich eine einfache grafische Oberfläche aufbaut, in der es am oberen Rand ein Panel gibt, über das ein Terminal geöffnet werden kann (= 'weston-terminal'). Nun geben wir ein paar von Xorg her bekannte Kommandos ein, die hier allerdings scheitern werden, weil sie einen klassischen X-Server benötigen, der hier aber nicht läuft: - ``setxkbmap de`` (weil es eben keine DISPLAY-Variable mehr gibt, wir müssen vorerst bei US-Tastaturbelegung bleiben) - ``xrandr -s 1024x768`` (Grafikauflösung setzen) - ``apt-get install xterm`` und als User ``DISPLAY=:0.0 xterm`` starten wollen, geht ebenfalls nicht! - Starten lassen sich aber weston-flower, weston-smoke, weston-editor, ... weston-* Eine einfache Weston-Config erstellen -------------------------------------- Sofern sich die Anwendungen nicht schon automatisch auftun, sind diese Variablen zu setzen: :: export GDK_BACKEND=wayland export QT_QPA_PLATFORM=wayland-egl Hinterlegt werden kann das Ganze hier (ACHTUNG: andere QT- und GDK-Variablen können sich hinderlich auswirken!): :: artix-Linux:~$ cat /etc/environment #QT_STYLE_OVERRIDE=gtk2 #QT_QPA_PLATFORMTHEME=gtk2 GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland-egl Im allereinfachsten Falle soll nur für das Tastaturlayout 'de' aktiviert werden; die neu zu erstellende Datei ``~/.config/weston.ini`` schaut dazu so aus: :: [core] backend=drm-backend.so [keyboard] keymap_layout=de Um die Einstellungen zu testen, starten wir die Oberfläche als User von einem virtuellen Terminal aus mittels ``weston-launch``, zum beenden geben wir später einfach ``killall weston-launch`` ein. Nun bitte ein zweites Weston-Terminal starten und testen, ob wir wie üblich mit ALT-TAB zwischen den beiden Fenstern umschalten können; - nein: wir müssen vorerst WIN-TAB verwenden! Dies ist später wieder dank 'binding-modifier=alt' im Abschnitt '[shell]' möglich. Wir installieren nun Xwayland und weitere X-Apps, einen speziellen X-Server, der als Kompatibilitätsschicht dient. :: root@ubuntu:~# apt-get install xwayland midori terminator Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... ....... root@ubuntu:~# root@ubuntu:~# exit Abgemeldet tux@ubuntu:~$ Und nun noch einmal die weston.ini erweitern: ``vi ~/.config/weston.ini``, so dass sie dann so aussieht: :: tux@ubuntu:~$ cat .config/weston.ini [core] backend=drm-backend.so xwayland=true [keyboard] keymap_layout=de [xwayland] path=/usr/bin/Xwayland [shell] type=desktop-shell.so #background-image=/usr/share/lxqt/themes/dark/wallpaper.png background-color=0xff002200 panel-color=0x55550000 locking=true animation=zoom binding-modifier=alt num-workspaces=4 [launcher] path=/usr/bin/midori #icon=/home/tux/Bilder/falkon-32.png [launcher] path=/usr/bin/weston-terminal #icon=/home/tux/Bilder/terminator-32.png tux@ubuntu:~$ Nach ``killall weston`` und dem Wiederstarten mit 'weston-launch' als einfacher Nutzer: :: tux@ubuntu:~$ pgrep -alfi wayland tux@ubuntu:~$ tux@ubuntu:~$ pgrep -alfi weston 4630 weston 4631 /usr/lib/x86_64-linux-gnu/weston-keyboard 4632 /usr/lib/x86_64-linux-gnu/weston-desktop-shell 4633 /usr/bin/weston-terminal tux@ubuntu:~$ Nach dem Starten eine X11-Anwendung 'midori &': tux@ubuntu:~$ pgrep -alfi weston 4630 weston 4631 /usr/lib/x86_64-linux-gnu/weston-keyboard 4632 /usr/lib/x86_64-linux-gnu/weston-desktop-shell 4633 /usr/bin/weston-terminal tux@ubuntu:~$ tux@ubuntu:~$ pgrep -alfi wayland tux@ubuntu:~$ tux@ubuntu:~$ pgrep -alfi mido 4643 midori tux@ubuntu:~$ tux@ubuntu:~$ su - Passwort: root@ubuntu:~# root@ubuntu:~# ps aux | grep -i wayland root 4747 0.0 0.0 17684 728 pts/0 S+ 14:58 0:00 grep --color=auto -i wayland root@ubuntu:~# root@ubuntu:~# ps aux | grep -i mido tux 4643 0.6 8.0 102642212 105592 pts/1 Sl 14:56 0:00 midori root 4749 0.0 0.0 17684 724 pts/0 S+ 14:58 0:00 grep --color=auto -i mido root@ubuntu:~# root@ubuntu:~# ps aux | grep -i weston tux 4630 0.8 6.0 163724 79880 tty2 S+ 14:54 0:02 weston tux 4631 0.0 0.8 23368 11784 tty2 S+ 14:54 0:00 /usr/lib/x86_64-linux-gnu/weston-keyboard tux 4632 0.0 0.8 22956 11508 tty2 S+ 14:54 0:00 /usr/lib/x86_64-linux-gnu/weston-desktop-shell tux 4633 0.0 1.2 42048 16888 ? Ss 14:54 0:00 /usr/bin/weston-terminal root 4751 0.0 0.0 17684 724 pts/0 S+ 14:58 0:00 grep --color=auto -i weston root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# ## Zu den Icons: root@ubuntu:~# ls -l /usr/share/pixmaps/*term* -rw-r--r-- 1 root root 5842 Feb 26 2020 /usr/share/pixmaps/filled-xterm_32x32.xpm -rw-r--r-- 1 root root 8802 Feb 26 2020 /usr/share/pixmaps/filled-xterm_48x48.xpm -rw-r--r-- 1 root root 4528 Feb 26 2020 /usr/share/pixmaps/mini.xterm_32x32.xpm -rw-r--r-- 1 root root 8272 Feb 26 2020 /usr/share/pixmaps/mini.xterm_48x48.xpm -rw-r--r-- 1 root root 2548 Feb 26 2017 /usr/share/pixmaps/terminator.png -rw-r--r-- 1 root root 1239 Feb 26 2020 /usr/share/pixmaps/xterm_32x32.xpm -rw-r--r-- 1 root root 2583 Feb 26 2020 /usr/share/pixmaps/xterm_48x48.xpm -rw-r--r-- 1 root root 2116 Feb 26 2020 /usr/share/pixmaps/xterm-color_32x32.xpm -rw-r--r-- 1 root root 2710 Feb 26 2020 /usr/share/pixmaps/xterm-color_48x48.xpm root@ubuntu:~# root@ubuntu:~# ls -l /usr/share/pixmaps/*midor* ls: Zugriff auf '/usr/share/pixmaps/*midor*' nicht möglich: Datei oder Verzeichnis nicht gefunden root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# find /usr -name "*midori*.png" /usr/share/icons/hicolor/16x16/apps/midori.png /usr/share/icons/hicolor/22x22/apps/midori.png root@ubuntu:~# root@ubuntu:~# find /usr -name "*weston*.png" root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# ### Nach dem Einbinden von vorgefundenen Icons: root@ubuntu:~# cat /home/tux/.config/weston.ini [core] backend=drm-backend.so xwayland=true [keyboard] keymap_layout=de [xwayland] path=/usr/bin/Xwayland [shell] type=desktop-shell.so #background-image=/usr/share/lxqt/themes/dark/wallpaper.png background-color=0xff002200 panel-color=0x55550000 locking=true animation=zoom binding-modifier=alt num-workspaces=4 [launcher] path=/usr/bin/midori icon=/usr/share/icons/hicolor/16x16/apps/midori.png [launcher] path=/usr/bin/weston-terminal icon=/usr/share/icons/gnome/16x16/apps/gnome-terminal.png root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# root@ubuntu:~# # apt-get install imagemagick root@ubuntu:~# identify /usr/share/backgrounds/hardy_wallpaper_uhd.png /usr/share/backgrounds/hardy_wallpaper_uhd.png PNG 3840x2400 3840x2400+0+0 8-bit sRGB 1.2997MiB 0.000u 0:00.000 root@ubuntu:~# root@ubuntu:~# vi /home/tux/.config/weston.ini root@ubuntu:~# root@ubuntu:~# cat /home/tux/.config/weston.ini [core] backend=drm-backend.so xwayland=true [keyboard] keymap_layout=de [xwayland] path=/usr/bin/Xwayland [shell] type=desktop-shell.so background-image=/usr/share/backgrounds/hardy_wallpaper_uhd.png background-color=0xff002200 panel-color=0x55550000 locking=true animation=zoom binding-modifier=alt num-workspaces=4 [launcher] path=/usr/bin/midori icon=/usr/share/icons/hicolor/16x16/apps/midori.png [launcher] path=/usr/bin/weston-terminal icon=/usr/share/icons/gnome/16x16/apps/gnome-terminal.png root@ubuntu:~# root@ubuntu:~# tux@ubuntu:~$ tux@ubuntu:~$ tux@ubuntu:~$ ## Die Auflösung lässt sich im Abschnitt '[output]' setzen, dazu muss aber mittels 'weston-info' der Name der GFX-Card ermittelt werden: tux@ubuntu:~$ weston-info | grep -A1 output | grep name | head -2 interface: 'zxdg_output_manager_v1', version: 2, name: 4 name: 'Virtual-1' tux@ubuntu:~$ tux@ubuntu:~$ grep -C2 'Virtual-1' ~/.config/weston.ini [output] name=Virtual-1 mode=1280x768 #transform=90 tux@ubuntu:~$ Insgesamt sieht die Datei jetzt so aus: :: tux@ubuntu:~$ cat ~/.config/weston.ini [core] backend=drm-backend.so xwayland=true [keyboard] keymap_layout=de [xwayland] path=/usr/bin/Xwayland [shell] type=desktop-shell.so #background-image=/home/tux/Bilder/Linux-with-IC-Chips-Box-HD-Wallpaper.jpg background-image=/home/tux/Bilder/Linux-with-IC-Chips-Box-HD-Wallpaper_1280x768.jpg background-color=0xff002200 panel-color=0x55550000 locking=true animation=zoom binding-modifier=alt num-workspaces=4 [output] name=Virtual-1 mode=1280x768 #transform=90 [launcher] path=/usr/bin/midori icon=/usr/share/icons/hicolor/16x16/apps/midori.png [launcher] path=/usr/bin/weston-terminal icon=/usr/share/icons/gnome/16x16/apps/gnome-terminal.png Installation unter openSUSE Leap: :: zypper install weston xorg-x11-server-wayland openbox xinit xterm xorg-x11-server Unter Debian und dessen Derivaten: :: apt-get install weston xwayland xterm midori terminator In einem ersten Test kann ohne eine spezielle Konfiguration von der Konsole aus einfach ``weston`` gestartet werden. Besser ist es aber, die Konfigurationsdatei ``~/.config/weston.ini`` anzulegen und ihr folgenden Inhalt zu geben: :: [core] backend=drm-backend.so xwayland=true [xwayland] path=/usr/bin/Xwayland [keyboard] keymap_layout=de [shell] type=desktop-shell.so background-image=/usr/share/lxqt/themes/dark/wallpaper.png background-color=0xff002200 panel-color=0x55550000 locking=true animation=zoom binding-modifier=alt num-workspaces=4 [launcher] path=/usr/bin/falkon icon=/home/tux/Bilder/falkon-32.png [launcher] path=/usr/bin/weston-terminal icon=/home/tux/Bilder/terminator-32.png Pfade und Namen der Bilder/Icons müssen natürlich angepasst werden, als Bildgröße der Icons sind 32 Bits oder kleiner geeignet. Vorhandene Icons lassen sich auf einfache Weise verkleinern (Voraussetzung ist, dass das Paket "imagemagick" installiert wurde): :: convert -resize 32x32 /usr/share/pixmaps/falkon.png ~/Bilder/falkon-32.png convert -resize 32x32 /usr/share/pixmaps/terminator.png ~/Bilder/terminator-32.png