Mir Documentation

Mir is a system-level component that can be used to unlock next-generation user experiences. It runs on a range of Linux powered devices including traditional desktops, IoT and embedded products. Mir is a library for building Wayland compositors as commonly used on Linux desktop devices. It allows device makers and desktop users to have a well-defined, efficient, flexible, and secure platform for their graphical environment.

For Mir contributor and developer documentation, please refer to the Read The Docs documentation pages.

One of the possible Wayland compositors built using Mir is Ubuntu Frame, and that’s what the remainder of these pages are about.

Ubuntu Frame

Ubuntu Frame is an easy to use, reliable and secure display server for embedded Linux devices allowing developers to deploy their graphic applications for kiosks, digital signage and more.

With Ubuntu Frame, the graphic application you choose or design gets a fullscreen window. It also automatically enables windows behaviours, input from touch, keyboard, and mouse, on-screen keyboard, power saving and more. Ubuntu Frame bundles communication protocols, input protocols, and security policies into a single kit, which can then be used in embedded devices.

Ubuntu Frame streamlines the build and development of products that need graphical output. WIth Ubuntu Frame, developers don’t have to deal with drivers, input modalities, windows dynamics and rules. No more integrating DRM, KMS, input protocols and security policies. This means less code to manage, fewer opportunities for bugs and fewer vulnerabilities in untried code, with more time for developing the content of the display.

Ubuntu Frame is for anyone looking to deploy graphic interfaces for embedded Linux devices such as IoT devices, robots, smart home devices, kiosks, and more.


Benefits

  • Create maintainable images for kiosks and digital signage solutions in under an hour.
  • Out of the box features such as kiosk mode, on-screen keyboard and power saving for making the perfect shell for touchscreen kiosks.
  • Less code for you to integrate and maintain as it bundles communication protocols, input protocols, and security policies into a single kit
  • Compatible with popular toolkits for creating graphical user interfaces like Qt, Flutter, electron, and also html5 and java.
  • Built-in security and long term supported by Canonical.

In this documentation

Tutorials
Get started - a hands-on introduction to Ubuntu Frame for new users
How-to guides
Step-by-step guides covering key operations and common tasks
Explanation
Concepts - discussion and clarification of key topics
Reference
Technical information - specifications, APIs, architecture

Project and community

Mir is fully open source. We value your input and contributions!
You can get involved by:

  • Reporting bugs: we want to know about the problems so we can fix them.
  • Quality assurance: before releasing new features we make a “Call for Testing” a week prior to each update reaching “stable”. This is your opportunity to discover and report any problems.
  • Documentation: there are lots of ways to use Ubuntu Frame and we try to describe the important ones, but maybe we missed yours.
  • Feature requests: we have a lot of ideas on what to do next but you know what you need.
  • Code changes: the code is open and we are open to accepting changes to it. So, don’t worry about maintaining a new fork, and instead, let’s work together.

Mir (and Ubuntu Frame) will continue growing with our community. If you want to get involved:


Navigation

Navigation
Level Path Navlink
0 Home
1 Mir :link:
1 Ubuntu Frame
2 how-to-guides How-to guides
3 how-to-migrate-from-mir-kiosk-to-ubuntu-frame Migrating from mir-kiosk to Ubuntu Frame
3 how-to-maintain-mir-documentation Maintaining Discourse documentation
3 Running Ubuntu Frame
4 run-ubuntu-frame-on-your-desktop Run Ubuntu Frame in your Desktop Environment
4 run-ubuntu-frame-in-a-virtual-machine Run Ubuntu Frame in a Virtual Machine
4 run-ubuntu-frame-on-your-device Run Ubuntu Frame on your Device
4 run-ubuntu-frame-unprivileged Run Ubuntu Frame unprivileged
3 Using Ubuntu Frame
4 how-to-set-up-digital-signage-on-ubuntu-frame How to set up digital signage
4 how-to-use-remote-assistance-with-ubuntu-frame How to use remote assistance
4 how-to-use-the-ubuntu-frame-diagnostic-feature How to use the diagnostic feature
4 how-to-smooth-boot-with-ubuntu-frame How to get a smooth boot experience
4 howto-run-your-iot-gui-on-your-desktop How to run your IoT GUI on your desktop
4 using-an-alternative-graphics-userspace Using an alternative graphics userspace
4 how-to-configure-ubuntu-frame-for-multiple-outputs How to configure Ubuntu Frame for multiple outputs
4 howto-calibrate-a-touchscreen-device How to calibrate a touchscreen device
3 Packaging IoT GUI
4 packaging-a-gtk3-application-as-an-iot-gui Packaging a GTK3 application
4 packaging-a-qt5-application-as-an-iot-gui Packaging a Qt5 application
4 packaging-a-sdl2-application-as-an-iot-gui Packaging a SDL2 application
4 packaging-a-flutter-application-as-an-iot-gui Packaging a Flutter application
4 packaging-an-electron-application-as-an-iot-gui Packaging an Electron application
4 packaging-an-x11-application-as-an-iot-gui Packaging an X11-based application
4 migrate-windows-kiosk-application Migrating a Windows application
2 tutorials Tutorials
3 developer-guide Developer Guide
3 make-a-secure-ubuntu-web-kiosk Make a secure Ubuntu web kiosk
2 reference Reference
3 ubuntu-frame-configuration-options Ubuntu Frame configuration options
3 ubuntu-frame-snap-interfaces Ubuntu Frame snap interfaces
3 configuring-ubuntu-frame-through-a-gadget-snap Configuring Ubuntu Frame through a gadget snap
3 ubuntu-frame-osk-documentation Ubuntu Frame OSK Documentation
2 explanation Explanation
3 ubuntu-frame-security Security
3 where-does-ubuntu-frame-work Where does Ubuntu Frame work?
3 iot-gui-snaps-made-easy IoT GUI snaps made easy
3 the-graphics-core20-snap-interface The graphics-core20 Snap interface
3 the-graphics-core22-snap-interface The graphics-core22 Snap interface
3 the-gpu-2404-snap-interface The gpu-2404 Snap interface
3 building-your-product Building Your Product
0 releases Release status

Redirects

Mapping table
Old path New URL
/docs/how-to-maintain-documentation /docs/how-to-maintain-mir-documentation
/docs/ubuntu-frame-diagnostic-documentation /docs/how-to-use-the-ubuntu-frame-diagnostic-feature
/docs/how-to-use-checkbox-mir https://canonical-mir.readthedocs-hosted.com/stable/how-to/how-to-use-checkbox-mir/
/docs/how-to-calibrate-touchscreens https://canonical-mir.readthedocs-hosted.com/stable/how-to/how-to-calibrate-a-touchscreen-device/
/docs/mir-graphics-support https://canonical-mir.readthedocs-hosted.com/stable/explanation/mir-graphics-support/
/docs/developing-a-wayland-compositor-using-mir https://canonical-mir.readthedocs-hosted.com/stable/tutorial/write-your-first-wayland-compositor/
/docs/developing-wayland-extension-protocols-for-mir-servers https://canonical-mir.readthedocs-hosted.com/stable/how-to/developing-wayland-extension-protocols-for-mir-servers/
/docs/window-positions-under-wayland https://canonical-mir.readthedocs-hosted.com/stable/explanation/window-positions-under-wayland/
/docs/ok-so-what-is-this-wayland-thing-anyway https://canonical-mir.readthedocs-hosted.com/stable/explanation/ok-so-what-is-this-wayland-thing-anyway/
3 Likes