Skip to content

lirios/session

Session

License GitHub release GitHub issues CI

The session is responsible for bootstrapping the initial environment and launching critical desktop services, including the shell, as well as XDG autostart applications.

Dependencies

Qt >= 6.6.0 with at least the following modules is required:

The following modules and their dependencies are required:

Installation

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).

Licensing

Licensed under the terms of the GNU General Public License version 3 or, at your option, any later version.

Notes

Logging categories

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.

Available categories

  • Compositor:
    • liri.session: Session manager.

Components

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

Running on another window system

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.

X11

To run windowed inside a X11 session:

liri-session -- -platform xcb

Wayland

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

DRM/KMS

To make sure the Liri session runs without another window system type:

liri-session -- -platform liri

Releases

No releases published

Sponsor this project

Packages

No packages published