Mir news: 2018

2018 has been a year of steady progress with the Mir project. We’ve seen five releases of Mir:

In Feburary, Mir 0.30 was a big step forwards in our Wayland and cross-distro support as illustrated by this video running a libre office presentation and other applications on Mir on Fedora. In March, Mir 0.31 we enabled the “xdg-shell V6” protocol extension which allowed GTK+ applications to run on Mir. In June, Mir 0.32 our focus was on enabling things essential for desktop usage scenarios with logind support and implementing Wayland’s cut & paste extension protocol. In September, Mir 1.0 was our most significant release this year because we’d: addressed issues in our Wayland support and added support for the “xdg_shell stable” extension;

worked through various issues delivering graphical snaps and implemented an effective solution; and,

provided a powerful way to configure multiple outputs. In December, Mir 1.1 delivered support for running Wayland clients on Nvidia drivers.

Distros

We’ve continued to package the latest Mir release for the supported Ubuntu releases in the mir-team PPA and engaged with people interested in packaging for other distributions:

@Conan_Kudo looks after uploading to the Fedora archive; @vanyasem looks after uploading to the Arch AUR; @tsimonq2 is working towards uploading to the Debian archive; and, our very own @RAOF continues to look after uploading to the Ubuntu archives.

Our “new recruit” (from early this year) @wmww has also been running Mir on “Pop!”, so we know it also builds and runs successfully there.

We’ve also accepted some PRs from the PostmarketOS community that help towards running Mir on Alpine Linux (musl instead of glibc). There are a few additional patched needed (see this discussion).

Snaps

There are two ways of getting Mir as a snap:

The mir-kiosk snap

To demonstrate the capabilities of Mir for simple, single application appliances we’ve packaged the “kiosk” example Mir server into the mir-kiosk snap. Because Mir comes packaged as part of the snap, installing the full graphical stack is a single command.

mir-kiosk provides the foundation for a range of solutions. It provides a screen with a mouse pointer (if necessary), letting you run any application you want, instantly turning it into a kiosk application:

Information kiosk or digital signage display

A useful, but pre-production, example is the chromium-mir-kiosk snap. This shows how to incorporate the Chromium web browser into a kiosk snap.

In-car entertainment stack, industrial control panel or home automation interface

Running a kiosk on Ubuntu Core showcases a set of Qt example apps running on a kiosk. This shows how your own Qt applications could be packaged to support a complex, bespoke user interface.

Once you decide to develop your own snap, there are tutorials to help:

Graphical Snaps for Ubuntu IoT Devices: a snap of a Wayland-native application to act as the graphical user interface for an IoT or kiosk device.

Graphical Snaps for Ubuntu IoT Devices: Using Xwayland: a snap of an X11 application to act as the graphical user interface for an IoT or kiosk device.

The egmde snap

Egmde was originally written to support some tutorials about writing a Mir server. However, as a snap, it serves the secondary purpose of making it easy to experiment with Mir.

Egmde is a "worked example" of using Mir written to accompany a set of blog posts. It is not a fully functional shell. These blog posts are listed here: https://github.com/AlanGriffiths/egmde/wiki They don’t cover aspects of a desktop environment that are not related to using Mir. Missing functionality includes: integrating into the system for screen locking & suspend, policy kit integration, internationalization, support for non-Wayland (i.e. X11) applications, etc. The beta and edge channels track Mir releases: $ sudo snap install --classic --beta egmde # Latest Mir release $ sudo snap install --classic --edge egmde # Latest Mir development To use egmde as your desktop, select it when logging in, to run it on your desktop run "egmde". Note: Mir's "experimental" X11 support can be enabled by: $ sudo snap set egmde x11-display=auto You may also need to install Xwayland: $ sudo apt install Xwayland # Ubuntu $ sudo dnf install xorg-x11-server-Xwayland # Fedora

UBports

I cannot end the year without mentioning UBports who are delivering Mir to thousands of phones and tablets as part of their Ubuntu Touch mobile OS. They’ve had an impressive year with several successful “OTA” releases including the migration from an unsupported Ubuntu 15.04 base to Ubuntu 16.04LTS.

They’re in the process of modernizing the software stack they use and as part of that plan to ship the latest Mir early next year. This will give them the benefit of the work we’ve done on supporting Wayland.

In preparation for that, @mariogrip has upstreamed code to Mir for improving the Xwayland integration (the basis of our “experimental” X11 support) and to improve the way our graphics platform API operates with the libhybris/android stack they use.

Next year

@wmww recently posted a preview of our work implementing Wayland’s “layer shell” extension in MATE and Mir here. Over the coming year we’ll continue our work on enabling both IoT and desktop solutions.

We’re also working to decouple our wlcs test suite from Mir and make it usable for testing other compositors.