Jump to content

Category:Interface: Difference between revisions

From postmarketOS Wiki
Baptx (talk | contribs)
update following Matrix chat
Knuxify (talk | contribs)
 
(47 intermediate revisions by 12 users not shown)
Line 1: Line 1:
[[File:Nexus5-02-home.jpg|thumb|right|postmarketOS running [[Plasma Mobile]] on top of [[The Mainline Kernel|mainline Linux]] on the [[Google_Nexus_5_(lg-hammerhead)|Google Nexus 5]].]]
[[File:Nexus5-02-home.jpg|thumb|250px|right|postmarketOS running [[Plasma Mobile]] on top of [[The Mainline Kernel|mainline Linux]] on the [[Google_Nexus_5_(lg-hammerhead)|Google Nexus 5]].]]


An interface is the graphical shell that runs on a device. Traditionally, these are called "desktop environments"; however, we prefer to use the name "interfaces" as we ship multiple mobile-first user interfaces as well.
An interface is the graphical environment that runs on a device. Traditionally, these are called "desktop environments"; however, we prefer to use the term "interfaces" as we ship multiple non-desktop user interfaces as well.


As of writing, there are 17 user interfaces readily available in postmarketOS. These range from regular desktop environments to mobile-centric interfaces.
Interfaces are categorized based on what chassis type they are primarily recommended for.
(See [https://www.freedesktop.org/software/systemd/man/latest/machine-info.html machine-info] for more information)


== Commonly used interfaces ==
{{hint|Clicking on the images in the interface info boxes will take you to the wiki page for the respective interface.}}


{{note|Clicking on the images in the interface info boxes will take you to the wiki page for the respective interface.}}
== List of Interfaces ==


These are recommended for devices running a '''[[(Close to) Mainline|(close to) mainline]]''' kernel.
=== Mobile phones ===
 
These are interfaces that adapt well to handsets (phones). This can also include tablets.
{{Interface box
{{Interface box
|name=Phosh
|name=Phosh
|image=File:Phosh homescreen.png
|image=File:Phosh homescreen.png
|description='''Phosh''' is a mobile interface developed by Purism. It is based on the GNOME stack.}}
|description=A mobile interface developed by Purism. It is based on the GNOME stack.}}
{{Interface box
{{Interface box
|name=Plasma Mobile
|name=Plasma Mobile
|image=File:Plasma Mobile homescreen.png
|image=File:Plasma Mobile homescreen.png
|description='''Plasma Mobile''' is the mobile version of KDE Plasma. It is based on the KDE stack.}}
|description=The mobile version of KDE Plasma. It is based on the KDE stack.}}
{{Interface box
{{Interface box
|name=Sxmo
|name=Sxmo
|image=File:Sxmo homescreen.png
|image=File:Sxmo homescreen.png
|description='''Sxmo''' (Simple X Mobile) is based on a tiling WM, and uses hardware buttons as controls. For advanced users.}}
|description=Based on a tiling WM and uses hardware buttons as controls. For advanced users.}}
{{Interface box
|name=GNOME Mobile
|image=File:Gnome-mobile-postmarketos-23.06.png
|description=The GNOME stack adapted for handsets.}}
{{Interface box
|name=Lomiri
|image=File:Lomiri-example-desktop-2.png
|description=An elegant and convergent shell for both desktop and mobile.}}
{{Interface box
|name=Bananui
|image=File:Bananui.png
|description=A UI for feature phones based on parts of [[Phosh]] and a custom UI toolkit.}}
 
=== Desktop ===
 
These interfaces are designed to fit on desktop devices, including laptops, convertibles, and servers. Some of these UIs have been adapted to fit on mobile screen-sizes, but the experience may be degraded.
{{Interface box
|name=GNOME
|image=File:GNOME_screenshot.png
|description=The GNOME stack for desktop
|small=yes
|desktop=true}}
{{Interface box
|name=Plasma Desktop
|image=File:Plasma.png
|description=KDE Plasma 6 Desktop
|small=yes
|desktop=true}}
{{Interface box
|name=COSMIC
|image=File:Cosmic.png
|description=COSMIC Desktop Environment from System76
|small=yes
|desktop=true}}
{{Interface box
|name=Sway
|image=File:Sway.png
|description=Wayland Tiling Window Manager
|small=yes
|desktop=true}}
{{Interface box
|name=I3wm
|image=File:I3wm.png
|description=X11 Tiling WM
|small=yes
|desktop=true}}
{{Interface box
|name=Xfce4
|image=File:Xfce.png
|description=A lightweight desktop environment. One of the best choices for new ports (non-DRM).
|small=yes
|desktop=true}}
{{Interface box
|name=MATE
|image=File:MATE.png
|description=A fork of GNOME 2. Not as configurable as Xfce4, thus the setup is less touch-friendly.
|small=yes
|desktop=true}}
{{Interface box
|name=LXQt
|image=File:LXQt.png
|description=Lightweight Qt desktop environment. The state of implementation is rather experimental.
|small=yes
|desktop=true}}
 
=== TV ===
 
These interfaces are designed to fit on TVs and set-top boxes.
{{Interface box
|name=Kodi
|image=File:Kodi.png
|description=10-foot UI useful on TV's
|nowiki=yes
|small=yes
|desktop=true}}
{{Interface box
|name=Mediaberry
|image=File:Mediaberry 0.1.0 Home.png
|description=An open platform for streaming boxes and smart TVs (WIP)
|small=yes
|desktop=true}}
{{Interface box
|name=Moonlight
|description=Open Source PC client for NVIDIA GameStream, as used by the NVIDIA Shield
|image=File:Moonlight start screen.png
|small=yes
|nowiki=yes
|desktop=true}}


== Other interfaces ==
=== Watches ===


<!-- If you'd like to add new infoboxes here, add "|small=yes" to every Interface box template in this section. -->
User interfaces that are designed for digital and smart watches.
{{Interface box
|name=AsteroidOS
|image=File:AsteroidQemu.png
|description=Smartwatch UI from AsteroidOS
|small=yes
|desktop=true}}


=== Miscelaneous ===
{{Interface box
|name=Cage
|image=File:Postmarketos-demos running in cage.png
|description=Kiosk WM
|small=yes
|nowiki=yes
|desktop=true}}
{{Interface box
{{Interface box
|name=Weston
|name=Weston
|image=File:Weston default.png
|image=File:Weston.png
|description='''Weston''' is the reference implementation of a Wayland compositor. It is is used as a demo.
|description=The reference Wayland compositor. Can be used as a demo for DRM support.
|small=yes}}
|small=yes
|desktop=true}}
{{Interface box
{{Interface box
|name=Xfce4
|name=Openbox
|image=File:Xfce4-phone_0.5.0_on_samsung-serranove.png
|image=File:Screenshot from 2023-12-29 17-29-53.png
|description='''Xfce4''' is a lightweight desktop environment. In postmarketOS, it ships a default configuration that is more mobile-friendly.
|description=A highly configurable and lightweight X11 window manager
|small=yes}}
|small=yes
|desktop=true}}
 
=== Console ===
 
These display an interface using the Linux CLI or TUI. They are meant for power-users or people who want to configure their system from scratch.
{{Interface box
{{Interface box
|name=Glacier
|name=console
|image=File:Glacier homescreen.png
|image=File:Samsung-j3.png
|description=<br>'''Glacier''' is a mobile interface based on Jolla's Mer stack.<br><br>
|description=Barebone postmarketOS installation; not recommended for phones; mostly used for debugging or headless installations
|nowiki=yes
|small=yes}}
|small=yes}}
{{Interface box
{{Interface box
|name=fbkeyboard
|name=fbkeyboard
|image=File:Fbkeyboard.png
|image=File:Fbkeyboard.png
|description=<br>'''fbkeyboard''' is a keyboard that runs in the framebuffer. Useful when regular graphical interfaces don't work.<br>
|description=A keyboard that runs in the framebuffer. Useful when regular graphical interfaces don't work.
|small=yes}}
{{Interface box
|name=buffyboard
|image=File:buffyboard.png
|description=A modern keyboard that runs in the framebuffer. Useful when regular graphical interfaces don't work.
|nowiki=yes
|nowiki=yes
|small=yes}}
|small=yes}}
{{Interface box
{{Interface box
|name=none/console
|name=Shelli
|image=File:Samsung-j3.png
|image=
|description=<br>'''none''' literally is a minimal environment with none of UIs. '''console''' also has some extra packages such as NetworkManager included.<br>
|description=Plain console with touchscreen gesture support (experimental)
|small=yes}}
{{Interface box
|name=Framebufferphone
|image=
|description=Minimalist framebuffer menu/keyboard UI accessible via touch/volume keys & compatible scripts
|nowiki=yes
|nowiki=yes
|small=yes}}
|small=yes}}
Other than these few, we package other user interfaces, ranging from various desktop environments to 10-foot UIs like Kodi or [[Plasma Bigscreen]], as well as experimental UIs like [[Shelli]]. If you'd like to learn more, you can find more links to wiki pages of various interfaces at the bottom of this page.


== Which interfaces work where (and which interface should I use?) ==
== Which interfaces work where (and which interface should I use?) ==


For devices running a '''(close to) mainline kernel''' (they typically have working GPU acceleration), [[Phosh]], [[Plasma Mobile]] and [[Sxmo]] are recommended.  
For devices running a '''(close to) mainline kernel''' (they typically have working GPU acceleration), [[Phosh]], [[Plasma Mobile]] and [[Sxmo]] are recommended.  
There are also some alternative mobile interfaces like [[Glacier]] and [[Lomiri]], but support for them is still work-in-progress.


For '''new ports''', using a simple, light-weight X11 interface such as [[Xfce4]], LXQt, MATE may provide a better experience. [[Sxmo]] and [[i3wm]] could also be used as options.
For '''new ports''', using a simple, light-weight X11 interface such as [[Xfce4]], [[MATE]], [[LXQt]] may provide a better experience. [[Sxmo]] and [[i3wm]] could also be used as options.


Phosh and Weston currently don't work on devices running downstream kernels due to lack of <abbr title="Direct Rendering Manager">DRM</abbr> support (only supported in mainline kernel). It also does not work on mainline devices without working hardware acceleration; however, some progress towards fixing this was made - see [https://gitlab.com/postmarketOS/pmaports/-/issues/948 pmaports issue #948]. Plasma Mobile can be launched in software rendering mode, but performs poorly.
Phosh and Weston currently don't work on devices running downstream kernels due to lack of <abbr title="Direct Rendering Manager">DRM</abbr> support (only supported in mainline kernel). It also does not work on mainline devices without working hardware acceleration; however, some progress towards fixing this was made - see {{issue|948|pmaports}}. Plasma Mobile can be launched in software rendering mode, but performs poorly.


Additionally, Phosh, Plasma Mobile, Glacier, and other 'modern' UIs may be too heavy for resource constrained devices (e.g. those with little RAM or less powerful CPU/GPU)
Additionally, Phosh, Plasma Mobile and other 'modern' UIs may be too heavy for resource constrained devices (e.g. those with little RAM or less powerful CPU/GPU)


For minimal usage like an SBC or a Raspberry Pi, use console or none.
For minimal usage like an SBC or a Raspberry Pi, use console or none.
Line 87: Line 207:
# apk add postmarketos-ui-console # Install console UI metapackage
# apk add postmarketos-ui-console # Install console UI metapackage
</syntaxhighlight>
</syntaxhighlight>
[[Category:Top Level]]

Latest revision as of 13:38, 28 March 2025

postmarketOS running Plasma Mobile on top of mainline Linux on the Google Nexus 5.

An interface is the graphical environment that runs on a device. Traditionally, these are called "desktop environments"; however, we prefer to use the term "interfaces" as we ship multiple non-desktop user interfaces as well.

Interfaces are categorized based on what chassis type they are primarily recommended for. (See machine-info for more information)

Hint Clicking on the images in the interface info boxes will take you to the wiki page for the respective interface.

List of Interfaces

Mobile phones

These are interfaces that adapt well to handsets (phones). This can also include tablets.

Phosh

Screenshot of the Phosh interface.

A mobile interface developed by Purism. It is based on the GNOME stack.
Wiki page

Plasma Mobile

Screenshot of the Plasma Mobile interface.

The mobile version of KDE Plasma. It is based on the KDE stack.
Wiki page

Sxmo

Screenshot of the Sxmo interface.

Based on a tiling WM and uses hardware buttons as controls. For advanced users.
Wiki page

GNOME Mobile

Screenshot of the GNOME Mobile interface.

The GNOME stack adapted for handsets.
Wiki page

Lomiri

Screenshot of the Lomiri interface.

An elegant and convergent shell for both desktop and mobile.
Wiki page

Bananui

Screenshot of the Bananui interface.

A UI for feature phones based on parts of Phosh and a custom UI toolkit.
Wiki page

Desktop

These interfaces are designed to fit on desktop devices, including laptops, convertibles, and servers. Some of these UIs have been adapted to fit on mobile screen-sizes, but the experience may be degraded.

GNOME

Screenshot of the GNOME interface.

The GNOME stack for desktop
Wiki page

Plasma Desktop

Screenshot of the Plasma Desktop interface.

KDE Plasma 6 Desktop
Wiki page

COSMIC

Screenshot of the COSMIC interface.

COSMIC Desktop Environment from System76
Wiki page

Sway

Screenshot of the Sway interface.

Wayland Tiling Window Manager
Wiki page

I3wm

Screenshot of the I3wm interface.

X11 Tiling WM
Wiki page

Xfce4

Screenshot of the Xfce4 interface.

A lightweight desktop environment. One of the best choices for new ports (non-DRM).
Wiki page

MATE

Screenshot of the MATE interface.

A fork of GNOME 2. Not as configurable as Xfce4, thus the setup is less touch-friendly.
Wiki page

LXQt

Screenshot of the LXQt interface.

Lightweight Qt desktop environment. The state of implementation is rather experimental.
Wiki page

TV

These interfaces are designed to fit on TVs and set-top boxes.

Kodi

Screenshot of the Kodi interface.

10-foot UI useful on TV's

Mediaberry

Screenshot of the Mediaberry interface.

An open platform for streaming boxes and smart TVs (WIP)
Wiki page

Moonlight

Screenshot of the Moonlight interface.

Open Source PC client for NVIDIA GameStream, as used by the NVIDIA Shield

Watches

User interfaces that are designed for digital and smart watches.

AsteroidOS

Screenshot of the AsteroidOS interface.

Smartwatch UI from AsteroidOS
Wiki page

Miscelaneous

Cage

Screenshot of the Cage interface.

Kiosk WM

Weston

Screenshot of the Weston interface.

The reference Wayland compositor. Can be used as a demo for DRM support.
Wiki page

Openbox

Screenshot of the Openbox interface.

A highly configurable and lightweight X11 window manager
Wiki page

Console

These display an interface using the Linux CLI or TUI. They are meant for power-users or people who want to configure their system from scratch.

console

Screenshot of the console interface.

Barebone postmarketOS installation; not recommended for phones; mostly used for debugging or headless installations

fbkeyboard

Screenshot of the fbkeyboard interface.

A keyboard that runs in the framebuffer. Useful when regular graphical interfaces don't work.
Wiki page

buffyboard

Screenshot of the buffyboard interface.

A modern keyboard that runs in the framebuffer. Useful when regular graphical interfaces don't work.

Shelli

[[|128px|alt=Screenshot of the Shelli interface.|link=Shelli]]

Plain console with touchscreen gesture support (experimental)
Wiki page

Framebufferphone

[[|128px|alt=Screenshot of the Framebufferphone interface.|]]

Minimalist framebuffer menu/keyboard UI accessible via touch/volume keys & compatible scripts

Which interfaces work where (and which interface should I use?)

For devices running a (close to) mainline kernel (they typically have working GPU acceleration), Phosh, Plasma Mobile and Sxmo are recommended.

For new ports, using a simple, light-weight X11 interface such as Xfce4, MATE, LXQt may provide a better experience. Sxmo and i3wm could also be used as options.

Phosh and Weston currently don't work on devices running downstream kernels due to lack of DRM support (only supported in mainline kernel). It also does not work on mainline devices without working hardware acceleration; however, some progress towards fixing this was made - see pmaports#948. Plasma Mobile can be launched in software rendering mode, but performs poorly.

Additionally, Phosh, Plasma Mobile and other 'modern' UIs may be too heavy for resource constrained devices (e.g. those with little RAM or less powerful CPU/GPU)

For minimal usage like an SBC or a Raspberry Pi, use console or none.

Installing interfaces

For devices in the main or community category, you can download official postmarketOS images with pre-installed interfaces.

If you'd like to install a different interface, you have multiple options:

  • Install postmarketOS with pmbootstrap. During pmbootstrap init you will be asked to select an user interface.
  • If you'd like to install a different UI on a device running postmarketOS, install the UI package for it with apk add postmarketos-ui-<UI name>. You can get a list of available UIs by using the command apk search postmarketos-ui-.

For none/console UI, you can run these commands according to your demand:

# rc-service tinydm stop # Stop current DM. Replace tinydm with the DM that you are using
# rc-update del tinydm # Don't start DM by default
# apk del postmarketos-ui-* # Delete UI metapackages if you don't need them anymore
# apk add postmarketos-ui-console # Install console UI metapackage

Subcategories

This category has only the following subcategory.

Pages in category "Interface"

The following 21 pages are in this category, out of 21 total.