Plasma Mobile
![]() Plasma Mobile running in QEMU | |
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 does not work on a real device yet, see the related issues:
- Alpine's QT5 is built with desktop OpenGL, but we need OpenGL ES2 (#994)
- JIT is disabled for QML on armhf (not sure if that would only make it slow or if it really causes it not to be working at all) (#878)
- Make plasma mobile work with software OpenGL (without this, it will only work on devices with freedreno or other accelerated graphics drivers, which most of our devices don't have right now) (#987)
So far we were trying to run it with Wayland. We didn't try the X11 version yet, it might make some things easier as X11 is already working on some devices (X11 uses the same server for all desktop environments, while kwin differs greatly from weston regarding Wayland). In the long run, Wayland should be preferred of course.
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
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
Please follow these instructions for debugging.
Enable debug output
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