Getting Involved in Mir
The best places to ask questions and discuss the Mir project are
the Mir topic in the Ubuntu Community and the #ubuntu-mir IRC channel on freenode.
The Mir project is hosted on Launchpad: https://launchpad.net/mir
These instructions assume that you’re using Ubuntu 16.04LTS or later, I’ve not
earlier Ubuntu versions or other distributions.
You’ll need a few development and utility packages installed, along with the
Mir graphics drivers:
$ sudo apt install devscripts equivs bzr
$ sudo apt install mir-graphics-drivers-desktop
With these installed you can checkout and build Mir:
$ bzr branch lp:mir
$ sudo mk-build-deps -i
$ mkdir mir/build
$ cd mir/build
$ cmake ..
This creates an example shell (miral-shell) in the bin directory. This can be
With the default options this runs in a window on X (which is convenient for
The miral-shell example is simple, don’t expect to see a sophisticated launcher
by default. You can start mir apps from the command-line. For example:
$ bin/miral-run gnome-terminal
That’s right, a lot of standard GTK+ applications will “just work” (the GDK
toolkit has a Mir backend). Any that assume the existence of an X11 and bypass
the toolkit my making X11 protocol calls will have problems though.
To exit from miral-shell press Ctrl-Alt-BkSp.
You can install the Mir examples, headers and libraries you’ve built with:
$ sudo make install
Contributing to Mir
Currently, the Mir code activity is performed on a development branch:
This development branch is promoted to the branch used for the ubuntu archive
and touch images. Please submit any merge proposals against the development
Please file bug reports at: https://bugs.launchpad.net/mir
The Mesa packages shipped with Ubuntu are already built with the relevant Mir patches
and should work out of the box with Mir.
For GL accelerated clients to use Mir they need to use a patched version of Mesa
that supports Mir.
The patch is hosted on GitHub:
$ git clone https://github.com/RAOF/mesa.git
Compile as per normal instructions and pass --with-egl-platforms=“mir,drm” to
the configure options. You will need libmirclient installed as shown above.