How mir-kiosk enables a graphical IoT using Mir
by Alan Griffiths on 4 October 2018
If you have a problem… if you just need support for one fullscreen application… and, if you can use snaps… maybe you can use… mir-kiosk.
Many devices need to provide some sort of graphical output or display (with the options of keyboard, mouse and touchscreen input) to the user. Some examples include interactive kiosks, digital signage, in-car entertainment, smart meters, the screens seen on everything from washing machines to smart thermostats and various “maker” projects.
There are many possible solutions that might use mir-kiosk, they can use different hardware or different versions of Ubuntu (Core or Classic), but they all amount to configuring, or building, a device that performs a specific function that uses a display.
Usage of mir-kiosk
mir-kiosk provides the foundation for any graphical kiosk implementation. It provides a black screen with a mouse pointer, letting you run any application you want, instantly turning it into a kiosk application. There are a number of demonstrations and tutorials showing how quickly you can do this:
- Running a kiosk on Ubuntu Core: showcases a set of Qt applications as examples apps you could run on a kiosk.
- Make a secure Ubuntu kiosk: a quick guide to deploying a kiosk or smart display on Ubuntu.
- Make a Wayland-native Kiosk snap: a snap of a Wayland-native application to act as the graphical user interface for an IoT or kiosk device.
- Run a Web Kiosk/Web Display on Ubuntu Core: an example web kiosk snap.
- https://tutorials.ubuntu.com/tutorial/x11-kiosk: Make a X11-based Kiosk Snap: a snap of an X11 application to act as the graphical user interface for an IoT or kiosk device.
- Make a HTML5/Electron-based Kiosk Snap: Build and deploy an Electron-based kiosk application as a snap.
Mir-kiosk uses Mir
Mir provides a stable, well tested and performant platform with touch, mouse and tablet input capability. It provides secure client-server communications based on the Wayland protocol. To find out more about Mir, see the website at: https://mir-server.io/
Mir deals with the initialization and configuration of a broad array of graphics and input hardware and transparently deals with hardware quirks. The Mir libraries provide most of the window management which can be customized by applications, for example to run in fullscreen, which mir-kiosk does.
The mir-kiosk project takes this program and packages it as a snap for ease of use. If you would like to install mir-kiosk on any snap-enable Linux distro, just type:
snap install mir-kiosk
and check out the tutorials above.