The session is responsible for bootstrapping the initial environment and launching critical desktop services, including the shell, as well as XDG autostart applications.
Qt >= 6.6.0 with at least the following modules is required:
The following modules and their dependencies are required:
- cmake >= 3.19.0
- extra-cmake-modules >= 5.245.0
- cmake-shared >= 2.0.99
- qtgsettings >= 2.0.0
- libliri
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/prefix ..
make
make install # use sudo if necessary
Replace /path/to/prefix
to your installation prefix.
Default is /usr/local
.
You can also append the following options to the cmake
command:
-DLIRI_SESSION_DEVELOPMENT_BUILD:BOOL=ON
: Remove restrictions that gets in your way during development, such as ptrace being forbidden.-DLIRI_ENABLE_SYSTEMD:BOOL=OFF
: Disable systemd support.-DINSTALL_SYSTEMDUSERUNITDIR=/path/to/systemd/user
: Path to install systemd user units (default:/usr/local/lib/systemd/user
).-DINSTALL_SYSTEMDUSERGENERATORSDIR=/path/to/systemd/user-generators
: Path to install systemd user generators (default:/usr/local/lib/systemd/user-generators
).
Licensed under the terms of the GNU General Public License version 3 or, at your option, any later version.
Qt 5.2 introduced logging categories and Liri Shell takes advantage of them to make debugging easier.
Please refer to the Qt documentation to learn how to enable them.
- Compositor:
- liri.session: Session manager.
liri-session
Brings up the D-Bus session if $DBUS_SESSION_BUS_ADDRESS is not set, starts the shell, runs autostart programs and launches apps.
It's extended by the following session modules:
- autostart: Runs autostart programs.
- locale: Sets locale environment variables based on settings.
- shell: Starts the shell and waits for io.liri.Shell to be available.
You can disable some session modules, for example if you don't want to set locale and run the autostart programs:
liri-session --disable-modules=autostart,locale
The platform plugin to use is automatically detected based on the environment, it can be one of the following:
- wayland: Run inside another Wayland compositor
- xcb: Run inside a X11 session
- liri: Uses DRM/KMS or a device specific EGL integration
You can override the automatic detection, if it doesn't work as intended.
To run windowed inside a X11 session:
liri-session -- -platform xcb
To run windowed inside a Wayland session:
liri-session -- -platform wayland
Some compositors, such as Weston, support the fullscreen-shell protocol that allows a compositor to be nested into another compositor.
Let's take Weston as an example. First you need to run it with the fullscreen-shell protocol enabled:
weston --shell=fullscreen-shell.so
Then you need to run liri-session
like this:
QT_WAYLAND_SHELL_INTEGRATION=fullscreen-shell liri-session -- -platform wayland
To make sure the Liri session runs without another window system type:
liri-session -- -platform liri