Skip to content

tsusilkumar/shell

 
 

Repository files navigation

Shell

ZenHub.io

License GitHub release Build Status GitHub issues Maintained

Responsive shell for Liri OS.

Desktop

Dependencies

Compiler requirements:

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

The following modules and their dependencies are required:

Installation

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 necessary

On 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 example opt/liri or usr)

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/lib where libraries are installed (default: lib)
  • modules.lirideployment.qmlDir:path/to/qml where QML plugins are installed (default: lib/qml)
  • modules.lirideployment.pluginsDir:path/to/plugins where Qt plugins are installed (default: lib/plugins)
  • modules.lirideployment.qbsModulesDir:path/to/qbs where 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:true to enable features for development such as the ability to load arbitrary QML files from the shell
  • projects.Shell.systemdUserUnitDir:path/to/units to install systemd user units in a different path, the path is relative to qbs.installPrefix and defaults to lib/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.

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

Components

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 --logout

Running on another window system

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

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 

QML JavaScript debugger

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:3768

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

About

🐚 QtQuick and Wayland shell for convergence

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • QML 59.3%
  • C++ 38.6%
  • JavaScript 1.7%
  • Other 0.4%