A small update to the egmde snap
Preamble
Mir is disabling mirclient support (by default)
You would have to be following Mir development very closely to have noticed that we’ve changed the default to not supporting clients using the mirclient API. That’s because it isn’t very useful any more. Only the 16.04 version of Mesa carries the necessary patches and it doesn’t work at all with EGLStream or other platforms we are considering.
As a result I’ve been looking at various places we assume the existence of this support and updating code and scripts to continue working.
The egmde snap has been useless on 16.04
If you’ve ever installed the egmde snap on 16.04 you’ll have quickly realized that the Wayland support from GTK3 and Qt5 based applications doesn’t work well with it. You might get something on screen, but nothing usable.
While I was testing the various scenarios for using Mir and switching the mirclient support on and off I found that the mirclient support can be made to work (for a sufficiently flexible value of “work”) with egmde and added the necessary logic to the egmde snap.
The egmde snap is not quite useless on 16.04 now
As a result of this, it is now possible to use the mirclient support on 16.04.
GTK3 apps on 16.04 the “gtk-mir” support is built in and they “just work”.
SDL2 apps on 16.04 the “mir” support is built in and they “just work”.
Qt5 apps need the ubuntumirclient
module installing. To get this you need to install qtubuntu-desktop
from ppa:mir-team/release
:
sudo apt-add-repository --update ppa:mir-team/release
sudo apt install qtubuntu-desktop
If you now install and run the egmde snap you’ll find that you can start many applications:
snap install --classic --edge egmde
egmde
The screenshot shows egmde hosting qterminal
running via ubuntu-mir-client
, glmark2-es2-wayland
running natively on Wayland and mir_demo_client_eglplasma
using the mirclient API directly.
One unfortunate application that doesn’t work is the gnome-terminal
when started with no arguments. I’ve succeeded in running this from qterminal
with the following command but not investigated further:
gnome-terminal --disable-factory
Using mirclient is not as good as using Wayland
One thing that is obvious from this exercise is that the toolkit support for mirclient on 16.04 is not as good as the toolkit support for Wayland on more recent releases.
With the egmde snap on Fedora, Arch, or Ubuntu 18.04 (or later) Wayland applications are usable and basic stuff like moving and resizing work. Using the mirclient support, moving and resizing doesn’t work (which is why glmark2 is mostly hidden in the picture above).
Three years is a lot of history
Using mirclient is not as good as using Wayland except on 16.04! The only reason to consider using mirclient on 16.04 is that the Wayland support from 16.04 toolkits is also problematic.
Since 16.04 things have changed:
- With Wayland things have changed for the better…
- Tookit support has improved.
- Better extension protocols have been adopted.
- Mir supports Wayland
- With mirclient they have changed for the worse…
- Toolkits have dropped mirclient support
- EGL is not supported (even on the Mesa platform)
- Mir plans to drop support for mirclient
There is no good reason to use egmde on 16.04 and no reason to use mirclient.