Egmde: a project that uses Mir
Display servers solve a large and complex problem. Mir provides a broad and powerful library to solve those problems, but there is a learning curve to use Mir effectively. It is really helpful to have a step-by-step example that covers enough of the issues to get a decent start.
To address this need there’s a set of blog posts based around the development of “egmde” [Example Mir Desktop Environment]: a very simple desktop shell that can either form the basis of further development or provide a platform for experimentation.
Usage of egmde
There are currently four articles based around egmde:
- Egmde: Wayland reboot: a Mir server that supports Wayland client apps.
- Egmde: keymap and wallpaper: getting the correct keymap and adding “wallpaper”.
- Egmde: integrating a launcher: adds a launcher to select and start apps.
- Egmde: desktop session: install and use as an alternative desktop
Egmde uses Mir
Mir simplifies the complexity that shell authors need to deal with: it provides a stable, well tested and performant platform with touch, mouse and tablet input, multi-display capability and secure client-server communications based on Wayland.
Mir deals with the bringup and configuration of a broad array of graphics and input hardware, abstracts hardware differences away from shell authors (transparently dealing with hardware quirks) and integrates with system components such as greeters.
Mir window management is integrated and yet extremely customisable by shell authors using a simple high-level API.
Egmde accepts the Mir window management defaults and does the minimum needed to show how to build on that. It adds identifying the user’s keymap (from gsettings), painting a desktop background, a simple “launcher” and registering with the greeter to provide an “egmde” desktop session.