Shell
Responsive shell for the Liri desktop.
Dependencies
Compiler requirements:
- gcc >= 4.8 or
- Clang
Qt >= 5.15.0 with at least the following modules is required:
The following modules and their dependencies are required:
- cmake >= 3.10.0
- cmake-shared >= 1.0.0
- fluid >= 1.0.0
- qtaccountsservice >= 1.2.0
- qtgsettings >= 1.1.0
- libliri
- aurora-compositor
- aurora-client
- pam
- polkit-qt5
- solid
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:
-DFEATURE_liri_development_build:BOOL=ON
: Enable feature for development such as the ability to load arbitrary QML files.-DFEATURE_enable_systemd:BOOL=OFF
: Disable systemd support.-DFEATURE_shell_enable_qtquick_compiler:BOOL=ON
: Build with QtQuick compiler.-DINSTALL_SYSTEMDUSERUNITDIR=/path/to/systemd/user
: Path to install systemd user units (default:/usr/local/lib/systemd/user
).
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.screensaver: Lock, idle and inhibit interface
- liri.session: Manages the session
- liri.loginmanager: login manager subsystem
- liri.loginmanager.logind: login manager subsystem (logind backend)
- liri.shell: Shell
- liri.gtkshell: Gtk shell support
- liri.outputmanagement: Output management
- liri.decoration: Window decorations
- liri.shell.liricolorpickerv1: LiriColorPickerV1 Wayland protocol
- liri.shell.lirilockscreenv1: LiriLockScreenV1 Wayland protocol
- liri.shell.lirimodalv1: LiriModalV1 Wayland protocol
- liri.shell.lirishellv1: LiriShellV1 Wayland protocol
-
Launcher QML plugin:
- liri.launcher: Launcher model and items
- liri.launcher.appsmodel: Applications model
-
MPRIS2 QML plugin:
- liri.mpris2: MPRIS2 engine
- liri.mpris2.player: MPRIS2 player interface
-
PolicyKit QML plugin:
- liri.policykit: PolicyKit agent
Fake screen configuration
You can simulate a fake screen configuration on X11 and Wayland.
Run:
liri-session -- -platform xcb --fake-screen screenconfig.json # replace xcb with wayland if you are running on Wayland
Here's the contents of screenconfig.json
:
{
"outputs": [{
"name": "Screen 1",
"description": "Virtual output 1",
"primary": false,
"scale": 1,
"position": {
"x": 0,
"y": 0
},
"mode": {
"size": {
"width": 1024,
"height": 768
},
"refreshRate": 60000
},
"physicalSize": {
"width": 350,
"height": 260
}
},
{
"name": "Screen 2",
"description": "Virtual output 2",
"primary": true,
"scale": 1,
"position": {
"x": 1024,
"y": 0
},
"mode": {
"size": {
"width": 1024,
"height": 768
},
"refreshRate": 60000
},
"physicalSize": {
"width": 350,
"height": 260
}
}]
}
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.