Jump to content

Plasma Mobile

From postmarketOS Wiki
Revision as of 12:44, 27 December 2017 by Bshah (talk | contribs)
Plasma Mobile
Plasma Mobile running on LG Nexus 5 (hammerhead)
Plasma Mobile running on LG Nexus 5 (hammerhead)
Name Plasma Mobile
Graphics stack KWin on Wayland or Xorg
Toolkit Qt 5
In postmarketOS
Package postmarketos-ui-plasma-mobile
Status Available

Status

The basic shell has been ported to postmarketOS, and can now be tested in Qemu. It also works on most devices with a working display, both with hardware acceleration and software rendering.

Installation

Run pmbootstrap init and choose plasma-mobile in the interface section. The binary repo provided by the project already contains KDE builds for x86_64, armhf and aarch64 (compiling takes a long time). Nothing has to be done to enable it.

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

For the official KDE instructions on running Plasma Mobile, see their website.

Troubleshooting

Software rendering

Plasma can also be used if your device doesn't support hardware acceleration yet by using software rendering. Please note that the interface will be slow, and it might not be usable for the average user.

To enable software rendering edit /etc/profile.d/start_plasma.sh. Add export KWIN_COMPOSE=Q before the ck-launch-session command, and replace --drm with --framebufferon the same line.

Also make sure mesa-dri-swrast is installed.

Log output

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

KWin doesn't work

Note Plasma Mobile shell uses some Wayland protocols, so you can't run it on X11 in case you tried to do that.

Please follow these instructions for debugging.

Enable debug output

Note This will be installed by default as soon as #1038 is resolved.

To tell Plasma and kwin to log more, 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

See also