LXQt Universal Wayland Session
January 2, 2026 ยท View on GitHub
A Wayland session for LXQt, managed by the Universal Wayland Session Manager (UWSM).
Motivation
The design of lxqt-session predates systemd and runs the entire session as
child processes of a single parent process. This conflicts with systemd's
recommendations and with how most
other desktop environments are implemented.
By instead running each application in its own systemd user unit (as recommended by systemd), we avoid the risk that a single memory-hungry application will take down the entire session, and we gain the ability to easily inspect applications, e.g. with:
systemctl --user status <my-app>
Prerequisites
The following compositors are currently supported:
Installation
meson setup --prefix=/usr/local build
meson install -C build
Configuration
This repository does not provide compositor-specific configuration files. For LXQt-specific configuration for your compositor, see lxqt-wayland-session.
When configuring your compositor:
- Do not run
lxqt-session, as UWSM replaceslxqt-session. - Do not customize the environment in your compositor configuration, as UWSM
provides its own environment-management facilities. Instead, place environment
additions in
~/.config/uwsm/env-lxqt. - Do not run
lxqt-qdbus run, as UWSM provides its ownuwsm appcommand for starting applications in the proper systemd slices. - Do not autostart applications from your compositor configuration, as UWSM invokes systemd's standard autostart mechanism.
Usage
Log in to one of the LXQt (uwsm-managed) sessions in SDDM.
Implementation details
Upstream LXQt delivers its modules as XDG autostart desktop files with
X-LXQt-Module=true, and lxqt-session treats these specially when starting
the session. When running under UWSM, these autostart files are disabled and
replaced with systemd services, which launch LXQt modules in the correct systemd
slice and manage their lifecycle via systemd (including automatic restarts on
failure).
Known issues
Applications launched from the LXQt panel or runner are not currently started in the correct systemd slice. As a short-term workaround, launch applications via:
- A compositor keybinding that runs
uwsm app, or - An alternative application runner that supports launch prefixes.
In the long term, LXQt itself should be enhanced to support launch prefixes as a first-class configuration option.
Future work
- Add OS packaging (pull requests welcome).
- Patch LXQt to support a launch prefix for
uwsm app. - Test more compositors and fix any remaining issues.