Difference between revisions of "User-Interfaces"

From postmarketOS
Jump to: navigation, search
(Others)
m (Fixed wording)
 
(14 intermediate revisions by 7 users not shown)
Line 2: Line 2:
  
 
Here is a list showing examples and the on-going work on this topic.
 
Here is a list showing examples and the on-going work on this topic.
 +
 +
This index page could use some help, see {{issue|23|wiki}}.
  
 
== User Interfaces ==
 
== User Interfaces ==
  
 
=== Weston ===
 
=== 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.
 +
 +
* [http://i.imgur.com/5XtSNzp.jpg Running Youtube in Weston]
  
 
Project page: https://github.com/wayland-project/weston
 
Project page: https://github.com/wayland-project/weston
  
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.
+
=== Plasma Mobile ===
  
Photos:
+
'''[[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.
  
* [http://i.imgur.com/5XtSNzp.jpg Running Youtube in Weston]
+
Work in Progress.
  
See '''[[Weston]]'''.
+
For more information, see issues [https://github.com/postmarketOS/pmbootstrap/issues/161 #161], and [https://github.com/postmarketOS/pmbootstrap/issues/378 #378].
=== Plasma Mobile ===
 
  
 
Project page: https://plasma-mobile.org/
 
Project page: https://plasma-mobile.org/
  
Based on KDE.
+
=== Hildon ===
 +
 
 +
'''[[Hildon]]''' is an application framework originally developed for mobile devices (PDAs, mobile phones, etc.) running the Linux operating system as well as the Symbian operating system. It was developed by Nokia for the Maemo operating system and is now a part of GNOME. It focuses on providing a finger-friendly interface. It is primarily a set of GTK+ extensions that provide mobile-device–oriented functionality, but also provides a desktop environment that includes a task navigator for opening and switching between programs, a control panel for user settings, and status bar, task bar and home applets. It is standard on the Maemo platform used by the Nokia Internet Tablets and the [https://github.com/postmarketOS/pmbootstrap/wiki/nokia-rx51-%28Nokia-N900%29 Nokia N900] smartphone.
  
Work in Progress.
+
Hildon is based on GTK2 and there is a work in progress port to GTK3.
 +
 
 +
For more information, see PR [https://github.com/postmarketOS/pmbootstrap/pull/461 #461].
 +
 
 +
=== Phosh ===
 +
'''[[Phosh]]''', the '''pho'''ne '''sh'''ell, is a user interface by Purism originally designed for their [https://puri.sm/products/librem-5/ 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 [https://bytesgnomeschozo.blogspot.com/2019/06/libhandy-0010.html scale on small screens]). For running Phosh you'll need recent kernel with properly working [[DRM]] drivers (downstream kernels will probably not work).
 +
 
 +
=== 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.
  
For more information, see '''[[Plasma Mobile]]''' and issues [https://github.com/postmarketOS/pmbootstrap/issues/161 #161], [https://github.com/postmarketOS/pmbootstrap/issues/378 #378].
+
=== Xfce4 ===
 +
'''[[XFCE4|Xfce4]]''' is another full GTK-based desktop environment, aiming to be fast and lightweight.
 +
It also works well on framebuffer-only devices.
  
=== Hildon ===
+
=== Sway ===
 +
'''[[Sway]]''' is a [https://en.m.wikipedia.org/wiki/Tiling_window_manager 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.
  
Hildon is an application framework originally developed for mobile devices (PDAs, mobile phones, etc.) running the Linux operating system as well as the Symbian operating system. It was developed by Nokia for the Maemo operating system and is now a part of GNOME. It focuses on providing a finger-friendly interface. It is primarily a set of GTK+ extensions that provide mobile-device–oriented functionality, but also provides a desktop environment that includes a task navigator for opening and switching between programs, a control panel for user settings, and status bar, task bar and home applets. It is standard on the Maemo platform used by the Nokia Internet Tablets and the [https://github.com/postmarketOS/pmbootstrap/wiki/nokia-rx51-%28Nokia-N900%29 Nokia N900] smartphone.
+
=== i3 ===
 +
'''i3''' is a [https://en.m.wikipedia.org/wiki/Tiling_window_manager 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.
  
Hildon is based on GTK2 and there is a work in progress port to GTK3.
+
----
  
For more information, see '''[[Hildon]]''' and PR [https://github.com/postmarketOS/pmbootstrap/pull/461 #461].
 
===MATE===
 
Desktop environment forked from the now-unmaintained code base of GNOME 2. See '''[[MATE]]'''.
 
 
=== Others ===
 
=== Others ===
  
Line 42: Line 62:
 
* mer/SailfishOS related:
 
* mer/SailfishOS related:
 
** [https://www.reddit.com/r/linux/comments/73amlm/so_how_open_is_sailfish_os_really/ Which components of SailfishOS are open?]
 
** [https://www.reddit.com/r/linux/comments/73amlm/so_how_open_is_sailfish_os_really/ Which components of SailfishOS are open?]
 +
** [https://wiki.merproject.org/wiki/SailfishOSS Tracking OSS and non-OSS components of Sailfish OS]
 
** [https://git.merproject.org/mer-core/lipstick lipstick] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di3yc7w/ relevant comment])
 
** [https://git.merproject.org/mer-core/lipstick lipstick] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di3yc7w/ relevant comment])
 
** [https://github.com/qwazix/glacier-controls-spec glacier] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di4iekw/ relevant comment])
 
** [https://github.com/qwazix/glacier-controls-spec glacier] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di4iekw/ relevant comment])
* sway
 
 
** [http://i.imgur.com/rwCM4AY.jpg Photo]
 
** [http://i.imgur.com/rwCM4AY.jpg Photo]
 
* '''[[LuneOS]]''' ([https://github.com/postmarketOS/pmbootstrap/issues/629 link]) (UI from continuation of webOS, HP's discontinued and open sourced mobile operating system with Wayland and QT5)
 
* '''[[LuneOS]]''' ([https://github.com/postmarketOS/pmbootstrap/issues/629 link]) (UI from continuation of webOS, HP's discontinued and open sourced mobile operating system with Wayland and QT5)
* PDA interfaces, such as Open Palmtop Integrated Environment and GPE Palmtop Environment may be viable. Both suited to devices capable of stylus input, such as the Nokia N900 and Galaxy Note devices.
+
* 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 [[Handhelds|some work]] into porting components from these to PMOS.
  
 
*''[https://wiki.alpinelinux.org/wiki/Category:Desktop Other graphical interfaces supported by Alpine]'' should work to some extent on pmOS.  These include [[GNOME 3]].
 
*''[https://wiki.alpinelinux.org/wiki/Category:Desktop Other graphical interfaces supported by Alpine]'' should work to some extent on pmOS.  These include [[GNOME 3]].
  
== How to choose a different UI ==
+
== How to choose an UI ==
 +
 
 +
=== With pmbootstrap ===
  
 
You have to configure <code>pmbootstrap</code> before generating the system image either by <code>pmbootstrap init</code> or <code>pmbootstrap config</code>:
 
You have to configure <code>pmbootstrap</code> before generating the system image either by <code>pmbootstrap init</code> or <code>pmbootstrap config</code>:
  
 
<pre>$ ./pmbootstrap init
 
<pre>$ ./pmbootstrap init
[13:15:24] Target device (either an existing one, or a new one for porting).
+
[09:22:39] Target device (either an existing one, or a new one for porting).
[13:15:24] Available (38): amazon-thor, asus-flo, asus-grouper, fairphone-fp2, google-glass, htc-ace, htc-bravo, huawei-angler, huawei-y530, lenovo-karate, lg-d285, lg-d855, lg-dory, lg-hammerhead, lg-lenok, lg-mako, motorola-osprey, motorola-titan, nokia-rx51, oneplus-bacon, oneplus-onyx, qemu-aarch64, qemu-amd64, qemu-vexpress, samsung-i747m, samsung-i9003, samsung-i9070, samsung-i9100, samsung-i9305, samsung-maguro, samsung-n7100, sony-amami, sony-aries, sony-castor-windy, sony-honami, sony-yuga, t2m-flame, wiko-lenny3
+
[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
[13:15:24] Device [qemu-amd64]:  
+
[09:22:39] Device [qemu-amd64]:
[13:15:27] Available user interfaces (5):  
+
[09:22:56] Available user interfaces (6):  
[13:15:27] * hildon: (X11) Lightweight GTK+2 UI (optimized for single-touch touchscreens)
+
[09:22:56] * none: No graphical environment
[13:15:27] * xfce4: (X11) Lightweight GTK+2 desktop (stylus recommended)
+
[09:22:56] * hildon: (X11) Lightweight GTK+2 UI (optimized for single-touch touchscreens)
[13:15:27] * luna: (Wayland) webOS UI, ported from the LuneOS project (Not working yet)
+
[09:22:56] * luna: (Wayland) webOS UI, ported from the LuneOS project (Not working yet)
[13:15:27] * plasma-mobile: (Wayland) Mobile variant of KDE Plasma, optimized for touchscreen (COMPILING TAKES FOREVER)
+
[09:22:56] * mate: (X11) MATE Desktop Environment, fork of GNOME2 (stylus recommended)
[13:15:27] * none: No graphical environment
+
[09:22:56] * plasma-mobile: (Wayland) Mobile variant of KDE Plasma, optimized for touchscreen
[13:15:27] * weston: (Wayland) Reference compositor (demo, not a phone interface)</pre>
+
[09:22:56] * weston: (Wayland) Reference compositor (demo, not a phone interface)
 +
[09:22:56] * xfce4: (X11) Lightweight GTK+2 desktop (stylus recommended)</pre>
 
<pre>$ ./pmbootstrap config ui weston</pre>
 
<pre>$ ./pmbootstrap config ui weston</pre>
 +
 +
=== 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. You can then reboot or restart lightdm. Example:
 +
 +
# apk del postmarketos-ui-mate
 +
# apk add postmarketos-ui-plasma-mobile
 +
# rc-service lightdm restart
 +
 +
== See also ==
 +
* [[Interfaces | Work in progress new interface page]]
 +
* [[Potential apps]]
  
 
[[Category:Interface]]
 
[[Category:Interface]]

Latest revision as of 17:18, 24 March 2020

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

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

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/

Hildon

Hildon is an application framework originally developed for mobile devices (PDAs, mobile phones, etc.) running the Linux operating system as well as the Symbian operating system. It was developed by Nokia for the Maemo operating system and is now a part of GNOME. It focuses on providing a finger-friendly interface. It is primarily a set of GTK+ extensions that provide mobile-device–oriented functionality, but also provides a desktop environment that includes a task navigator for opening and switching between programs, a control panel for user settings, and status bar, task bar and home applets. It is standard on the Maemo platform used by the Nokia Internet Tablets and the Nokia N900 smartphone.

Hildon is based on GTK2 and there is a work in progress port to GTK3.

For more information, see PR #461.

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).

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.

Xfce4

Xfce4 is another full GTK-based desktop environment, aiming to be fast and lightweight. It also works well on framebuffer-only devices.

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.

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.


Others

See issue #62 for more information on other UIs that could be ported to postmarketOS. Some of these are:

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. You can then reboot or restart lightdm. Example:

# apk del postmarketos-ui-mate
# apk add postmarketos-ui-plasma-mobile
# rc-service lightdm restart

See also