Jump to content

Plasma Mobile

From postmarketOS Wiki
Revision as of 08:16, 28 August 2017 by PureTryOut (talk | contribs) (Running)

Overview

The basic minimum shell has been ported to postmarketOS, and can now be tested. So far no one has gotten it working yet, so don't expect anything but errors.

To install it on your device run ./pmbootstrap.py install --add plasma-mobile,plasma-phone-components,dbus-x11. You can also tell pmbootstrap to always add Plasma Mobile by adding plasma-mobile, plasma-phone-components and dbus-x11 to the list of "Extra packages" when running ./pmbootstrap.py init.

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

Packaging efforts have been documented here.

Debugging

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

Running

If the device supports OpenGL, the Plasma Shell will automatically launch upon boot. If it doesn't, you'll have to SSH in and add the following to ~/.config/kdeglobals:

[QtQuickRendererSettings]
SceneGraphBackend=software

Then, reboot again to have it launch automatically upon boot.


If you've chosen to install Plasma Mobile manually instead of in ./pmbootstrap.py init you'll have to follow the following instructions.

Setup the required environment variables for kwin:

export QT_QPA_PLATFORM=wayland
export QT_QPA_PLATFORMTHEME=KDE
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export XDG_CURRENT_DESKTOP=KDE
export KSCREEN_BACKEND=QScreen

export KDE_FULL_SESSION=1
export KDE_SESSION_VERSION=5
export KWIN_COMPOSE=Q

export $(dbus-launch)

Right now kwin fails due to lacking permissions on /dev/fb0, so as a workaround you can chown it to your user.

# chown user:user /dev/fb0

Then execute ck-launch-session kwin_wayland --framebuffer --xwayland. As this way you can not view the logs, it's advisable to add 2> /tmp/kwin_log.txt to the end of the command, so it ends up looking like ck-launch-session kwin_wayland --framebuffer --xwayland 2> /tmp/kwin_log.txt. This will make it log to /tmp/kwin_log.txt instead of stdout.