Jump to content

Plasma Mobile

From postmarketOS Wiki
Revision as of 16:44, 2 November 2017 by Craftyguy (talk | contribs) (Overview)
Plasma Mobile
Plasma Mobile running in qemu
Plasma Mobile running in qemu
Name Plasma Mobile
Graphics stack KWin on Wayland or Xorg
Toolkit QT5
In postmarketOS
Package postmarketos-ui-plasma-mobile
Status Available

Overview

The basic shell has been ported to postmarketOS, and can now be tested.

Currently, Plasma Mobile is not available from the master branch, to use it you will need to check out the postmarketos-ui-plasma-mobile branch from the git repository. Once it is considered stable it will be merged with the master branch (see #378 for more info and progress).

To install it on your device run ./pmbootstrap.py init and choose plasma-mobile in the interface section.

Because compiling the entirety of KDE and Plasma may take a long time, a Git repository has been setup where pre-built packages can be downloaded for both x86_64 and armhf. Clone https://github.com/puretryout/pmos-plasma-mobile and copy the armhf and x86_64 folders to ~/.local/var/pmbootstrap/packages/, and copy the config_apk_keys folder to ~/.local/var/pmbootstrap/. Afterwards run ./pmbootstrap.py index from the root of your pmbootstrap installation.

For the official KDE instructions on running Plasma Mobile you can use their website: https://community.kde.org/Plasma/Mobile/RunningApps

Packaging efforts have been documented here.

Running

For now Plasma requires a device with (basic) OpenGL support.

After installation, the shell will automatically launch upon boot. If it doesn't, have a look at /etc/profile.d/start_plasma.sh and /bin/startkwin.sh.

Debugging

By default Plasma and kwin don't log anything significant or useful for this project. To tell them to, create ~/.config/QtProject/qtlogging.ini with the following content:

[Rules]
org.kde.kwindowsystem.info=true
org.kde.kwindowsystem.warning=true
org.kde.kwindowsystem.critical=true
org.kde.kwindowsystem.debug=true
kwin_core.info=true
kwin_core.warning=true
kwin_core.critical=true
kwin_core.debug=true
kwineffects.info=true
kwineffects.warning=true
kwineffects.critical=true
kwineffects.debug=true
libkwineffects.info=true
libkwineffects.warning=true
libkwineffects.critical=true
libkwineffects.debug=true
libkwinglutils.info=true
libkwinglutils.warning=true
libkwinglutils.critical=true
libkwinglutils.debug=true
libkwinxrenderutils.info=true
libkwinxrenderutils.warning=true
libkwinxrenderutils.critical=true
libkwinxrenderutils.debug=true
kwin_wayland_drm.info=true
kwin_wayland_drm.warning=true
kwin_wayland_drm.critical=true
kwin_wayland_drm.debug=true
kwin_wayland_framebuffer.info=true
kwin_wayland_framebuffer.warning=true
kwin_wayland_framebuffer.critical=true
kwin_wayland_framebuffer.debug=true
kwin_wayland_hwcomposer.debug=true
kwin_wayland_backend.info=true
kwin_wayland_backend.warning=true
kwin_wayland_backend.critical=true
kwin_wayland_backend.debug=true
kwin_wayland_x11windowed.info=true
kwin_wayland_x11windowed.warning=true
kwin_wayland_x11windowed.critical=true
kwin_wayland_x11windowed.debug=true
kwin_platform_x11_standalone.info=true
kwin_platform_x11_standalone.warning=true
kwin_platform_x11_standalone.critical=true
kwin_platform_x11_standalone.debug=true
kwin_libinput.info=true
kwin_libinput.warning=true
kwin_libinput.critical=true
kwin_libinput.debug=true
kwin_tabbox.info=true
kwin_tabbox.warning=true
kwin_tabbox.critical=true
kwin_tabbox.debug=true
kwin_decorations.info=true
kwin_decorations.warning=true
kwin_decorations.critical=true
kwin_decorations.debug=true
kwin_scripting.info=true
kwin_scripting.warning=true
kwin_scripting.critical=true
kwin_scripting.debug=true
kwin_xkbcommon.info=true
kwin_xkbcommon.warning=true
kwin_xkbcommon.critical=true
kwin_xkbcommon.debug=true
kwin_qpa_plugin.info=true
kwin_qpa_plugin.warning=true
kwin_qpa_plugin.critical=true
kwin_qpa_plugin.debug=true

You can read the log output with logread -f. Anything related to Plasma and KDE will have a username:plasma-mobile prefix.