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.
One of the possible Wayland compositors built using Mir is 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.
- 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
Get started - a hands-on introduction to Ubuntu Frame for new users
Step-by-step guides covering key operations and common tasks
Concepts - discussion and clarification of key topics
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:
- Join the Discourse community forum
- Read our Code of Conduct
- Report a bug or contribute on Github
|3||how-to-migrate-from-mir-kiosk-to-ubuntu-frame||Migrating from mir-kiosk to Ubuntu Frame|
|3||Egmde: Wayland reboot|
|3||Egmde: keymap and wallpaper|
|3||Egmde: integrating a launcher|
|3||Egmde: desktop session|
|3||Egmde: A touch of touch support|
|3||how-to-maintain-mir-documentation||Maintaining Mir documentation|
|3||mir-graphics-support||Mir graphics support|
|3||developing-a-wayland-compositor-using-mir||Developing a Wayland Compositor using Mir|
|3||developing-wayland-extension-protocols-for-mir-servers||Developing Wayland extension protocols for Mir servers|
|3||window-positions-under-wayland||Window positions under Wayland|
|3||ok-so-what-is-this-wayland-thing-anyway||Ok, so what is this Wayland thing, anyway?|
|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|
|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||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|
|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|
|3||make-a-secure-ubuntu-web-kiosk||Make a secure Ubuntu web kiosk|
|3||ubuntu-frame-configuration-options||Ubuntu Frame configuration options|
|3||configuring-ubuntu-frame-through-a-gadget-snap||Configuring Ubuntu Frame through a gadget snap|
|3||ubuntu-frame-osk-documentation||Ubuntu Frame OSK Documentation|
|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||building-your-product||Building Your Product|
|Old path||New URL|