State of Linux on mobile and common misconceptions


Every once and while I see misconceptions on the various mobile on Linux distributions and projects out there, and I see the same incorrect facts over and over again. So I decided to write a bit to clarify the current state of mobile on Linux, and the differences between the various distributions and projects. Since I’m a postmarketOS developer, I might be a bit biased in some things although I’ll try to keep my opinions out of it.

A desktop environment is not a distribution

This is something I mainly see in regards to Plasma Mobile. A lot of people seem to think that “Plasma Mobile” is a distribution with an interface on top of it, but this is not the case. What we call “Plasma Mobile” is just the desktop environment, just as we have “Plasma desktop”. It can be packaged by any distribution, but the reference distribution is KDE Neon. This is also what most people seem to mean when they say Plasma Mobile.

Now most Linux on mobile projects currently work on both a distribution and an interface at the same time. E.g. LuneOS with LuneUI, Maemo Leste with Hildon, Ubuntu Touch with Unity 8, etc. This does however not mean that those interfaces can only run on those distributions, it’s just the one those developers decided to focus on.

List of current mobile-focused desktop environments

Let’s start with a list of the different desktop environments currently available and in development for Linux on mobile. I’ll list the software stack they’re based, the distributions that ship them, and potential noteworthy comments.

Plasma Mobile

Plasma Mobile is developed by the KDE community and is a mobile version of the Plasma desktop. Based on the same technology stack, it uses KWin as the compositor and shares as much code as possible with the desktop. Interestingly enough it’s the only interface on here that has a proper dedicated website.

  • Technology stack: latest Qt5 and KDE Frameworks and KDE Plasma
  • Matrix channel: link
  • Distributions shipping it: KDE Neon, postmarketOS, Debian (third-party repository), PureOS, Manjaro
Screenshot of the Plasma Mobile homescreen

Phosh

Phosh is developed by Purism and is meant to be a mobile shell for GNOME. It uses GNOME technologies where available but uses it’s own compositor (phoc) based on wlroots. Unlike what most people seem to think, it runs fine on any distribution and isn’t limited to running on the Librem 5.

  • Technology stack: latest GNOME and wlroots
  • Matrix channel: link
  • Distributions shipping it: PureOS, postmarketOS
Screenshot of the Phosh app launcher with an open application

Unity 8

Unity 8 is developed by the UBPorts community after Canonical abandoned it and is meant to be a convergent UI that works on both desktop and mobile screens. It runs on the Mir compositor (now Wayland-based) and has a wide collection of applications made for it.

  • Technology stack: Qt5 and Mir
  • Matrix channel: link
  • Distributions shipping it: Ubuntu Touch, WIP on postmarketOS in a separate branch
Screenshot of the Ubuntu Touch lockscreen and app laucher

Hildon

Hildon was developed by Nokia for the Maemo platform and is mostly known for being the interface that came with the Nokia N900. Nowadays the Maemo Leste community has taken over development. It is currently the only mobile interface that is developed for the X Windowing system.

  • Technology stack: custom patched GTK+2
  • Matrix channel: link
  • Distributions shipping it: Maemo Leste, postmarketOS
Screenshot of the Hildon app launcher

Luna Next

Luna Next is a recreation of the original Lune UI that was part of the Open webOS project. It’s applications are written in web technologies while the shell itself is written in QML.

  • Technology stack: patched Qt5 5.12
  • Matrix channel: link
  • Distributions shipping it: LuneOS, previously postmarketOS
Screenshot of the Luna Next home screen

Glacier

Glacier is developed by the Nemo community and can be used as a FOSS alternative to the Silica UI from SailfishOS. Currently it’s mostly used on SailfishOS devices, but can in theory be installed on any mobile device as long as the distribution you use for it supports it.

Screenshot of the Glacier home screen

SailfishOS UI

SailfishOS uses its own UI which doesn’t really have a name, and it’s the only proprietary interface in this list. It uses its own QML components called Silica.

  • Technology stack: Qt 5.6, Mer
  • Matrix channel: link
  • Distributions shipping it: SailfishOS
Screenshot of SailfishOS

Asteroid UI

AsteroidOS is a Linux distribution made for smartwatches that has its own UI without a name, I personally just call it “AsteroidUI”. Although you can of course run it on a phone or desktop, it’ll look on its best on a small smartwatch screen.

  • Technology stack: Qt 5.12, Mer
  • Matrix channel: link
  • Distributions shipping it: AsteroidOS
Screenshot of AsteroidOS

List of mobile distributions

Let’s go through this list a bit quicker. The most interesting thing about most of them is the DE they come with, at least that is why most people will install one of them. In the order they came into my mind:

  • postmarketOS: based on Alpine Linux, comes with no single DE but offers the user the choice out of a few supported ones. Runs both on mainlined and downstream kernels, can optionally use libhybris in case of the latter
  • KDE Neon: based on KDE Neon for the desktop, comes with Plasma Mobile. Runs both on mainlined and downstream kernels, uses Halium/libhybris in case of the latter
  • Ubuntu Touch: based on Ubuntu, comes with Unity 8. Apps are installed using their own “Click” format and the OS itself is read-only. Runs both on mainlined and downstream kernels, uses Halium/libhybris in case of the latter
  • Maemo Leste: based on Devuan which is based on Debian, comes with Hildon. Runs on mainline kernels only
  • Nemo Mobile: comes with Glacier. Runs on mainline kernels and devices supported by SailfishOS
  • LuneOS: based on the older webOS, comes with Luna Next. Runs on mainline and downstream kernels, uses Halium/libhybris in case of the latter
  • AsteroidOS: based on Mer, comes with its own UI, made for smartwatches only. Runs on downstream kernels with Halium/libhybris only
  • AOSC: standalone OS, its mobile efforts are currently mainly focused on Plasma Mobile. Runs on mainline kernels only
  • PureOS: based on Debian, its developers are mainly focused on Phosh but Plasma Mobile is also shipped. Runs on mainline kernels only
  • Debian: only with a third-party repository, comes with Plasma Mobile. Runs on mainline kernels and Halium images
  • Manjaro: based on Arch Linux, comes with Plasma Mobile. Runs on mainline kernels only
  • SailfishOS: based on Mer, comes with its own, proprietary, UI. Runs on mainline (unofficially) and downstream kernels (officially and unofficially), uses libhybris in case of the latter
  • NixOS: standalone OS. It’s being built as a “graphical environment agnostic” distribution much like postmarketOS. Runs on mainline kernels and downstream kernels, can be used with libhybris

Phones with a “mainline-Linux” focus

Where most “Linux phones” nowadays come with Android and a way too outdated kernel (which postmarketOS is trying to fix by the way!), some manufacturers are actually working on devices which come with mainline Linux support. These devices will be able to run most of the distributions I mentioned above, even if not at launch.

There are at this moment 3 devices I know off:

  • Pine64’s PinePhone: supported by all distributions I mentioned above
  • Purism’s Librem 5: supported by PureOS, Debian, Ubuntu Touch and postmarketOS
  • Necunos’s NE_1: seems dead nowadays, haven’t had updates on the project for ages. Was promised with support for most distributions above. Too bad, I blogged so enthusiastically about them in the past

They all have their own benefits and disadvantages, I advise you look them up for yourself to make a judgement. However, I definitely recommend buying any one of them to show them that there is demand for properly mainlined phones!

Android app support

Of course most people are used nowadays to the abundance of apps that are available on Android. While Linux on mobile will definitely not have such a large amount of apps for a long time, there are possibilities of running those Android apps on Linux distributions. Currently there are 2 solutions available:

  • Anbox
  • Alien Dalvik, only available on officially supported SailfishOS devices

They both work a bit different. Anbox runs a container with Android in it in which the applications are executed. Alien Dalvik however is a reimplementation of Android’s JVM allowing to run apps as if they were made for the platform it’s running on. However, it’s a proprietary solution. Because of this it’s only available on devices officially supported by SailfishOS, meaning no community ports like the PinePhone.

In case of Anbox, currently it only runs on Ubuntu Touch in an experimental stage. Work is being done to make it run on postmarketOS, but it’s not there yet.

Conclusion

Linux on mobile is finally becoming a reality! There is a lot of work still to be done, but it is being done, even if only slowly. Every DE and distribution has it’s own benefits and disadvantages, and I invite you to visit all their web pages and chat channels and find out for yourself which ones you like the most. They can all use any help they can get, even just documenting your experiences helps!


I hope you enjoyed this post. If you'd like to be notified when I post something new, you can subscribe to my RSS feed or follow me on Mastodon.