Responsive shell for Liri OS.
Compiler requirements:
- gcc >= 4.8 or
- Clang
Qt >= 5.8.0 with at least the following modules is required:
The following modules and their dependencies are required:
Qbs is a new build system that is much easier to use compared to qmake or CMake.
If you want to learn more, please read the Qbs manual, especially the setup guide and how to install artifacts from the installation guide.
From the root of the repository, run:
qbs setup-toolchains --type gcc /usr/bin/g++ gcc
qbs setup-qt /usr/bin/qmake-qt5 qt5
qbs config profiles.qt5.baseProfile gcc
qbs -d build -j $(nproc) profile:qt5 # use sudo if necessaryOn the last qbs line, you can specify additional configuration parameters at the end:
qbs.installRoot:/path/to/install(for example/)qbs.installPrefix:path/to/install(for exampleopt/liriorusr)
The following are only needed if qbs.installPrefix is a system-wide path such as usr
and the default value doesn't suit your needs. All are relative to qbs.installRoot:
modules.lirideployment.libDir:path/to/libwhere libraries are installed (default:lib)modules.lirideployment.qmlDir:path/to/qmlwhere QML plugins are installed (default:lib/qml)modules.lirideployment.pluginsDir:path/to/pluginswhere Qt plugins are installed (default:lib/plugins)modules.lirideployment.qbsModulesDir:path/to/qbswhere Qbs modules are installed (default:share/qbs/modules)
See lirideployment.qbs for more deployment-related parameters.
You can also specify the following options:
projects.Shell.developmentBuild:trueto enable features for development such as the ability to load arbitrary QML files from the shellprojects.Shell.systemdUserUnitDir:path/to/unitsto install systemd user units in a different path, the path is relative toqbs.installPrefixand defaults tolib/systemd/user
If you specify qbs.installRoot you might need to prefix the entire line with sudo,
depending on whether you have permissions to write there or not.
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.compositor: Compositor
- liri.processlauncher: Process launcher and application tracker
- liri.screensaver: Lock, idle and inhibit interface
- liri.session: Manages the session
- liri.loginmanager: login manager subsystem
- liri.loginmanager.logind: login manager subsystem (logind backend)
-
Launcher QML plugin:
- liri.launcher: Launcher model and items
- liri.launcher.appsmodel: Applications model
liri-shell
Compositor executable.
liri-session
Manages the session, drives the compositor, runs autostart programs and launches applications for the application launcher.
Autostarts the D-Bus session if needed and can logout an existing session with:
liri-session --logoutBy default the Liri session runs without a particular window system and uses DRM/KMS or a device specific EGL integration.
However you can run it inside another window system.
To run windowed inside a X11 session:
liri-session -platform xcbTo run windowed inside a Wayland session:
liri-session -platform waylandSome 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.soThen you need to run liri-session like this:
QT_WAYLAND_SHELL_INTEGRATION=fullscreen-shell liri-session -platform wayland Developers can debug Liri Shell with Qt Creator and the QML JavaScript debugger.
Set the debug port and run the shell:
liri-session -qmljsdebugger=port:3768In the example above we are using the default port which is 3768. Now from Qt Creator click on Debug -> Start Debugging -> Attach to QML port and specify the 3768 port.
See the Qt Creator manual for more information.
