Introduction
I have been writing about a simple example shell based on Mir: egmde. This shell is just the code needed to illustrate these articles and, maybe, inspire others to build on it but it is not intended to be a product.
At the end of the last article we could run egmde as a “desktop” and launch Wayland apps.
In this article we use the latest Mir 0.32 release to provide a desktop session from the greeter.
Preparation
The code in this article needs Mir 0.32 or later. At the time of writing this only exists in mir-team/release PPA.
On Ubuntu use:
$ sudo apt-add-repository --update ppa:mir-team/release
$ sudo apt install g++ cmake pkg-config
$ sudo apt install libmiral-dev mir-graphics-drivers-desktop libfreetype6-dev libboost-all-dev
$ sudo apt install qtwayland5
The full code for this example is available on github:
$ git clone https://github.com/AlanGriffiths/egmde.git
$ git checkout article-4
Naturally, the code is likely to evolve, so you will find other branches, but this branch goes with this article. Assuming that you’ve MirAL installed as described above you can now build egmde as follows:
$ mkdir egmde/build
$ cd egmde/build
$ cmake ..
$ make
$ sudo make install
This will install egmde and a “.desktop” file that enables it as an option in the greeter.
You can now reboot and select “egmde” in the greeter when you log in again.
The code
Most of the changes since the last article are removing workarounds for Mir’s inability to use logind. The main things are:
- Use Mir 0.32
- Install a .desktop file:
$ cat /usr/share/wayland-sessions/egmde.desktop
[Desktop Entry]
Name=egmde
Comment=The example Mir server
Exec=egmde
Type=Application