Lomiri
This UI has to be enabled manually. Please follow the installation instructions to install. |
motorola-harpia running Lomiri | |
Name | Lomiri |
---|---|
Graphics stack | Mir on Wayland |
Toolkit | Qt 5 |
In postmarketOS | |
Package | postmarketos-ui-lomiri |
Status | Available |
The Lomiri desktop environment originally developed by Canonical and now maintained by the UBports Foundation. Originally, Lomiri usually only worked on Ubuntu Touch using Halium and custom Click apps. On postmarketOS, Lomiri can run using mainline Linux and all the benefits of the Linux app ecosystem.
About
Originally called Unity8, Lomiri was meant to bridge the gap between desktop and mobile computing through the function called convergence. Lomiri originally only used the Mir display server, but now uses a mixture of Wayland and Mir, with XMir handling XWayland.
Status
Lomiri (formerly known as Unity 8) is available in the pmaports branch feature/lomiri
.
Installation
The work on Lomiri hasn't been finished yet - expect bugs |
There are two ways to install Lomiri. The first being using the version in the feature/lomiri
branch of pmaports. The second being using the version in JustSoup's personal development fork.
You would want to use the feature/lomiri-dev
version if you want the version vetted by the pmos devs for quality. You would want to use the JustSoup development fork if you want the newest improvements to Lomiri on postmarketOS.
feature/lomiri
Navigate to ~/.local/var/pmbootstrap/cache_git/pmaports
and run git checkout feature/lomiri
Then choose lomiri
in pmbootstrap init
and make sure to select "y" when prompted "Build outdated packages during 'pmbootstrap install'?".
If you want to return to the usual pmaports, just run git checkout master
in your pmaports directory.
Development Fork
WARNING: This fork is a community contribution and has not been officially verified by postmarketOS developers. As such, it's advised to exercise caution as it may potentially contain malicious elements. |
JustSoup has created a bootstrap tool to make it easier to set up the development branch. Just run the tool with the --install
argument to set it up. Then choose lomiri
in pmbootstrap init
and make sure to select "y" when prompted "Build outdated packages during 'pmbootstrap install'?".
If you want to return to the usual pmaports, just run the script again but instead pass the --uninstall
argument and the script will reset your pmaports directory.
Alpine Package
Installing Lomiri manually instead of through pmbootstrap is not recommended. Lomiri needs a lot more than just a launch script to even run. Here Be Dragons. |
If the package postmarketos-ui-lomiri
was installed, either through pmbootstrap install
or manually, Lomiri should start automatically. If Lomiri was installed another way, such as the package lomiri
, run mkdir -p ~/.config/lomiri && touch ~/.config/lomiri/wizard-has-run
and then proceed with the script below.
#!/bin/sh
export MIR_SERVER_CURSOR=null
# Set maliit-keyboard as the input module
export QT_IM_MODULE=maliit
export MALIIT_FORCE_DBUS_CONNECTION=1
# Declare the icon theme
export UITK_ICON_THEME=suru # ?
# elogind only sets DISPLAY so we need to set this
export WAYLAND_DISPLAY=wayland-0
# Use elogind for session management
export LOMIRI_AS_SYSTEMD_UNIT=1
# Applications require unthrottled touch input
export QML_NO_TOUCH_COMPRESSION=1
# Debug environment variables
#export G_MESSAGES_DEBUG=all
#export env QT_LOGGING_RULES='qt.qpa.miral.*=true'
#export env QT_LOGGING_RULES='qt.qpa.miroil.*=true'
#export env QT_LOGGING_RULES='qtmir.*=true'
# Pass required env variables to dbus
dbus-update-activation-environment MALIIT_FORCE_DBUS_CONNECTION=1
dbus-update-activation-environment WAYLAND_DISPLAY
# Device-specific adjustments
. /usr/share/misc/source_deviceinfo
if [ "$deviceinfo_codename" = "qemu-amd64" ]; then
export MIR_MESA_KMS_DISABLE_MODESET_PROBE=1
elif [ "$deviceinfo_codename" = "pine64-pinephone" ]; then
export MIR_MESA_KMS_USE_DRM_DEVICE=card1
export QT_SCALE_FACTOR=2 # TODO: Automatically set this based upon device scaling factor instead of adding it in a per-device adjustment
fi
superd &
lomiri
Troubleshooting
Tip: Try checking ~/.local/state/tinydm.log for errors. |
Since Lomiri is in such an early state, these tips are very useful for development and porting.
- To start a Click GUI app through SSH or a terminal:
lomiri-app-launch <app id> [uris]
- To start a normal GUI app through SSH or a terminal:
export DESKTOP_FILE_HINT=/path/to/.desktop/file/of/launched/application
lomiri-app-launch [app-name]
- To change brightness using repowerd:
repowerd-brightness-tool
[preset or value]
- (NOTE: Scaling does not work at all yet.) If the automatic scaling seems off, edit your lomiri-deviceinfo file to change the gridunits value to the value of:
[display ppi] * 0.05236
- To stop the Wizard from running on first boot
mkdir -p $HOME/.config/lomiri
touch $HOME/.config/lomiri/wizard-has-run
Known Issues
See pmaports&1