Unity8: a project that uses Mir

Alan Griffiths

Alan Griffiths

on 19 December 2018

Tags: mir, unity8

Unity8 is a graphical shell targeting a range of devices and form factors including phones, tablets, laptops and desktops. Unity8 uses the facility to customize Mir’s default window management to give its “convergent” experience.

In addition to the phones and tablets supported by Ubuntu Touch work is in progress to adapt Unity8 for use on PostmarketOS, Arch, Fedora, Debian in addition to Ubuntu.

Unity8 for Ubuntu Touch

Ubuntu Touch is a mobile operating system derived from Ubuntu 16.04LTS. It uses Unity8 to run naturally in a mobile, touch-screen environment with the additional capability, when connected to an external display, keyboard and mouse, to automatically transition to a traditional “desktop shell experience”.

Odoo image and text block

Unity8 is a key part of the Ubuntu Touch operating system. It’s what gives UT “convergence”. Convergence is where an app has the capacity to morph from a phone or tablet user experience, with touch screen interaction, to looking like a traditional desktop app with window controls, and working with a keyboard and mouse.

“It’s a central tenet of Ubuntu Touch, and it’s what makes the Operating System so incredibly powerful. Is that a smartphone I see in your hand, or is it a fully-fledged PC?

“UBports’ users are happily plugging their devices into monitors using a SlimPort adaptor, and pairing them with WiFi keyboards, in order to take advantage of a wealth of Free and Open Source software, like LibreOffice, Gimp and Firefox. And this is thanks to Unity8.” – UBports blog

Unity8 for Desktop

The same UBports community that provides Ubuntu Touch for phones also has put work into running on the desktop.

It is possible to install Unity8 and successfully use a range of Wayland based applications. However, the desktop install is not yet ready for production use: There are features that are incomplete or don’t work correctly.

Video of Unity8 on Ubuntu 18.04: https://www.youtube.com/watch?v=7IcHPhBOydk

Work is under way to target other distributions such as Fedora, Debian and Arch.

Unity8 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 capability, and secure client-server communications.

Mir deals with the initialization and configuration of a broad array of graphics and input hardware. It abstracts hardware differences away from shell authors by transparently dealing with hardware quirks and integrates with system components such as greeters.

Mir’s modular design means it can integrate well with Qt/QML, meaning desktop shells can be written in a higher level language. This allows Unity8 to provide components of the desktop: various panels, server-side decorations, transitions and animations.

Resources

Project: https://unity8.io/, https://ubports.com/

Source: https://github.com/ubports

Mir: https://mir-server.io/

Ubuntu desktop

Learn how the Ubuntu desktop operating system powers millions of PCs and laptops around the world.

Newsletter signup

Select topics you’re interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

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…

The rise of the Digital Smart Kiosk

This is a guest blog by Jody Smith, Product Manager at Broadsign. The world’s increasing demand for quick, personalised service often clashes with budgetary concerns and the limited throughput that individual workers are capable of.…

How mir-kiosk enables a graphical IoT using Mir

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…