User-Interfaces
At the moment Weston is the default UI for postmarketOS. It is simple and helps us to keep researching and developing the base of pmOS but in the future we will also support other more sophisticated and fancy User Interfaces.
Here is a list showing examples and the on-going work on this topic.
This index page could use some help, see wiki#23.
User Interfaces
none
no graphical environment
fbkeyboard
plain framebuffer console with touchscreen keyboard support
Gnome
Gnome shell
i3
i3 is a tiling window manager, and Sway's ancestor. It can only be recommended on devices featuring a keyboard. Being older, it does not require DRM, which makes it able to run on older devices.
kodi
10-foot UI useful on TV's
MATE
MATE is a full GTK-based desktop environment forked from the code base of GNOME 2. It works well even on devices that only have a framebuffer for display, which makes it a good choice for devices that do not have DRM support.
Phosh
Phosh, the phone shell, is a user interface by Purism originally designed for their Librem 5 mobile phone. It uses Phoc as a wayland compositor and is one of the most polished mobile interfaces.
It's optimal to run GTK applications (many of them are modified to scale on small screens). For running Phosh you'll need recent kernel with properly working DRM drivers (downstream kernels will probably not work).
Plasma Bigscreen
10-feet variant of Plasma, made for big screen TVs
Plasma Desktop
KDE Desktop Environment (works well with tablets)
Plasma Mobile
Plasma Mobile is a mobile variant of the KDE Plasma user interface, optimized for touchscreen. It only has decent performance on a kernel that features DRM, and is disabled by default on devices that don't have it.
Work in Progress.
For more information, see issues #161, and #378.
Project page: https://plasma-mobile.org/
Shelli
plain console with touchscreen gesture support
Sway
Sway is a tiling Wayland compositor that is intended to work with a keyboard, even if it features some touch controls. It is based on wlroots, and will need DRM to start.
SXMO
Simple X Mobile: Mobile environment based on simple & suckless software (best compatibility on pinephone)
Weston
Weston is the default, minimal, interface based on XWayland. It allows developers to do "simple" things like running firefox and opening a terminal, plus testing the touchscreen and other peripherals. Alone, it isn't really usable for touchscreen-only devices.
Project page: https://github.com/wayland-project/weston
Xfce4
Xfce4 is another full GTK-based desktop environment, aiming to be fast and lightweight. It also works well on framebuffer-only devices.
Others
See issue #62 for more information on other UIs that could be ported to postmarketOS. Some of these are:
- ubports (Fork of the discontinued Ubuntu Phone project)
- mer/SailfishOS related:
- LuneOS (link) (UI from continuation of webOS, HP's discontinued and open sourced mobile operating system with Wayland and QT5)
- PDA interfaces, may be desirable, as they are suited to devices capable of stylus input, such as the Nokia N900 and Galaxy Note devices, as well as devices with constrained system resources. There is some work into porting components from these to PMOS.
- Other graphical interfaces supported by Alpine should work to some extent on pmOS. These include GNOME 3.
How to choose an UI
With pmbootstrap
You have to configure pmbootstrap
before generating the system image either by pmbootstrap init
or pmbootstrap config
:
$ pmbootstrap init [09:22:39] Target device (either an existing one, or a new one for porting). [09:22:39] Available (49): amazon-thor, asus-flo, asus-grouper, asus-tf101, fairphone-fp2, google-glass, htc-ace, htc-bravo, huawei-angler, huawei-y530, leeco-s2, lenovo-karate, lg-d285, lg-d855, lg-dory, lg-h815, lg-hammerhead, lg-lenok, lg-mako, motorola-osprey, motorola-shamu, motorola-titan, nokia-rx51, oneplus-bacon, oneplus-onyx, qemu-aarch64, qemu-amd64, qemu-vexpress, samsung-espresso10, samsung-i747m, samsung-i9003, samsung-i9070, samsung-i9100, samsung-i9195, samsung-i9305, samsung-i9505, samsung-maguro, samsung-n7100, samsung-s6500d, semc-anzu, sony-amami, sony-aries, sony-castor-windy, sony-honami, sony-yuga, t2m-flame, teclast-x80pro, wiko-lenny3, xiaomi-ido [09:22:39] Device [qemu-amd64]: [09:22:56] Available user interfaces (6): [09:22:56] * none: No graphical environment [09:22:56] * hildon: (X11) Lightweight GTK+2 UI (optimized for single-touch touchscreens) [09:22:56] * luna: (Wayland) webOS UI, ported from the LuneOS project (Not working yet) [09:22:56] * mate: (X11) MATE Desktop Environment, fork of GNOME2 (stylus recommended) [09:22:56] * plasma-mobile: (Wayland) Mobile variant of KDE Plasma, optimized for touchscreen [09:22:56] * weston: (Wayland) Reference compositor (demo, not a phone interface) [09:22:56] * xfce4: (X11) Lightweight GTK+2 desktop (stylus recommended)
$ pmbootstrap config ui weston
Once installed
Once you have postmarketOS on your phone or tablet, you can still change user interface without reflashing so long you have an internet connection: you need to remove your current UI and install another one.
# apk del postmarketos-ui-phosh # apk add postmarketos-ui-plasma-mobile
Then you just have to restart the display manager. Example on the stable branch:
# rc-service lightdm restart
Example on the edge branch:
# rc-service tinydm restart