Testing MATE 1.26 components on Wayland

Seeing that MATE 1.26 has landed in impish with " added Wayland support" I thought I’d see how it works with Mir.

Set up a VM

Firstly I used Multipass to set up a VM and install the MATE desktop:

multipass launch -n mate-testing impish
multipass shell mate-testing

This gets a terminal session logged into the VM, from this I installed “stuff”:

sudo apt update
sudo apt upgrade --assume-yes
sudo apt install mate-desktop-environment yaru-theme-icon 
sudo snap install --classic egmde

Then to get a default egmde configuration file I ran egmde (it can’t run in this terminal because there’s no graphics capability in this terminal but this creates a default configuration file):

egmde --help >> /dev/null

Here’s a diff of the changes I made:

$ diff .config/egmde.config~original .config/egmde.config 
14c14
< enable-x11=
---
> # enable-x11=
23c23
< shell-components=/snap/egmde/current/bin/swaybg.launcher:/snap/egmde/current/bin/waybar.launcher
---
> shell-components=/snap/egmde/current/bin/swaybg.launcher:mate-panel
26c26
< # swaybg.image=/usr/share/backgrounds/warty-final-ubuntu.png
---
> swaybg.image=/usr/share/backgrounds/mate/desktop/GreenTraditional.jpg
29c29,32
< app-env-amend=QT_QPA_PLATFORM=xcb
---
> # app-env-amend=QT_QPA_PLATFORM=xcb
> 
> # Key repeat doesn't play nice with X forwarding lag
> enable-key-repeat=false
> 
> # Autostart stuff
> enable-autostart=true

Now, we want to egmde to autostart any processes that MATE components expect, so we have a few more incantations:

cp `grep -l OnlyShowIn.*MATE /etc/xdg/autostart/*` .config/autostart/
sed -i s/OnlyShowIn=MATE/OnlyShowIn=egmde/ .config/autostart/*
vi .config/egmde.config

Now there’s stuff we installed that needs a reboot so:

sudo reboot

That will bring us back to the original shell on the host. The VM may take a little time to become responsive but then to put ssh keys inside the VM I make use of a script from https://github.com/AlanGriffiths/multipass-utils:

multipass-enable-ssh mate-testing

Starting the Mir session

This uses another script from https://github.com/AlanGriffiths/multipass-utils:

multipass-ssh-X mate-testing sh -lc egmde

This opens a new shell with X forwarding to the host desktop. Mir uses this to run a graphical shell in a desktop window.

dbus-run-session egmde

OK, that isn’t quite perfect and the console offers some clues:

** (mate-panel:3026): WARNING **: 14:31:44.399: Failed to load 0x7efdb000dc80, because it does not support Wayland
dbus-daemon[2986]: [session uid=1000 pid=2986] Activating service name='org.mate.panel.applet.WnckletFactory' requested by ':1.1' (uid=1000 pid=3026 comm="mate-panel " label="snap.egmde.egmde (complain)")
dbus-daemon[2986]: [session uid=1000 pid=2986] Activating service name='org.mate.panel.applet.TrashAppletFactory' requested by ':1.1' (uid=1000 pid=3026 comm="mate-panel " label="snap.egmde.egmde (complain)")

** (mate-panel:3026): WARNING **: 14:31:44.453: Failed to load 0x55766a7d19b0, because it does not support Wayland
dbus-daemon[2986]: [session uid=1000 pid=2986] Activating service name='org.mate.panel.applet.BriskMenuFactory' requested by ':1.1' (uid=1000 pid=3026 comm="mate-panel " label="snap.egmde.egmde (complain)")
Unable to open desktop file /usr/share/applications/firefox.desktop for panel launcher: No such file or directory

** (mate-panel:3026): WARNING **: 14:31:44.496: Failed to load 0x55766a746060, because it does not support Wayland

So, I clicked away the “Error” dialogs which left me with blank top and bottom panels. But right clicking on them succeeds in getting a menu where I could add the “Classic Menu”. Some of the other options to add give errors. E.g. for the clock:

** (mate-panel:1182): WARNING **: 15:24:41.188: Could not ask session manager if shut down is available: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
Unable to open desktop file /usr/share/applications/firefox.desktop for panel launcher: No such file or directory
dbus-daemon[1129]: [session uid=1000 pid=1129] Activating service name='org.mate.panel.applet.ClockAppletFactory' requested by ':1.1' (uid=1000 pid=1182 comm="mate-panel " label="snap.egmde.egmde (complain)")

** (mate-panel:1182): WARNING **: 15:24:48.426: Could not ask session manager if shut down is available: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files

** (clock-applet:1376): WARNING **: 15:24:48.554: Requested out-of-process applet, which is only supported on X11
dbus-daemon[1129]: [session uid=1000 pid=1129] Activated service 'org.mate.panel.applet.ClockAppletFactory' failed: Process org.mate.panel.applet.ClockAppletFactory exited with status 1

OK I guess, there’s a dbus service (or services) missing that is expected to be around. I’ll leave that for a deeper pass (if I get around to it).

I tried starting up a few of the applications from the menu I added earlier. They seem to work:

So, basically “stuff works”.

1 Like

In theory the mate-panel window-list applet should be supported, which allows you to switch windows with the panel. In practice some distros are still building applets to run out-of-process, which breaks them on Wayland. More info here: https://github.com/wmww/mirco/issues/1#issuecomment-902834503.