• Stars
    star
    232
  • Rank 172,802 (Top 4 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 8 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🐚 Convergent shell for desktops, phones and tables built with QtQuick, Wayland and Material Design

Shell

License GitHub release GitHub issues CI

Responsive shell for the Liri desktop.

Desktop

Dependencies

Compiler requirements:

Qt >= 5.15.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:

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

More Repositories

1

fluid

📖 Library for QtQuick apps with Material Design
QML
804
star
2

lirios

🏠 General issue tracking and wiki for Liri
CMake
234
star
3

browser

🌍 Cross-platform Material design web browser
QML
212
star
4

files

🚀 File manager
C++
85
star
5

text

🚀 Material Design text editor
C++
85
star
6

appcenter

🚀 App Center for Liri OS
C++
29
star
7

terminal

🚀 Terminal
C++
29
star
8

calculator

🚀 More than a simple cross-platform Material Design calculator
QML
28
star
9

wayland-archived

📖 Wayland client and server extensions, additions to QtWayland and eglfs fork
C++
26
star
10

eglfs

🚀 EGL fullscreen platform plugin
20
star
11

lirios.github.io

🌏 Web site
HTML
19
star
12

qml-xwayland

XWayland support for QtQuick Wayland compositors like Liri Shell
14
star
13

player

🚀 Cross-platform media player
QML
13
star
14

settings

🚀 Settings application and modules for Liri OS
C++
12
star
15

qtgsettings

📖 Qt wrapper for GSettings
C++
12
star
16

flatpak

📀 Liri runtime and apps for Flatpak
Shell
10
star
17

aurora-compositor

Framework to write Wayland compositors with Qt
C++
10
star
18

ostree-image-creator

📀 Tools to create images for OSTree-based operating systems (also known as oic)
Go
10
star
19

qbs-shared

📖 Shared Qbs imports and modules
QML
9
star
20

wayland

📖 Wayland client and server extensions
9
star
21

archbuild

📀 Arch Linux build kit
Shell
9
star
22

qtudev

📖 Qt-style wrapper around udev
9
star
23

themes

🎨 Themes for a uniform look and feel throughout Liri OS
CMake
9
star
24

screencast

🚀 Screencast tool
C++
8
star
25

workspace

🚀 Base applications and settings for Liri OS
QML
8
star
26

session

🚀 Session manager
C++
8
star
27

cmake-shared

📖 Shared CMake functions and macros
CMake
8
star
28

materialdecoration

🐚 Client-side decoration for all Qt-based Wayland clients
C++
8
star
29

vibe

📖 QtQuick modules for shell and applications
C++
7
star
30

music

🚀 The best friend to your music collection
C++
7
star
31

meta-liri

📀 OS image based on Boot2Qt
BitBake
6
star
32

docker-lirios

📀 Docker image to test Liri OS
Shell
6
star
33

qtaccountsservice

📖 Qt-style API for freedesktop.org's AccountsService DBus service
C++
6
star
34

networkmanager

🚀 NetworkManager support for Liri
C++
5
star
35

qtintegration

🐚 Integration of Qt applications with the Liri desktop environment
C++
5
star
36

rpms

📦 RPM packages
Shell
4
star
37

initial-setup

🚀 Initial configuration app for Liri OS
C++
4
star
38

repotools

🌟 Administration tools for git repositories
Python
3
star
39

xdg-desktop-portal-liri

🚀 A backend implementation of xdg-desktop-portal for Liri
C++
3
star
40

platform-snap

📀 Snap packaging for the Liri platform libraries
Python
3
star
41

screenshot

🚀 Screenshot tool
C++
3
star
42

wallpapers

🚀 Wallpapers
CMake
3
star
43

ostree-upload

📀 Upload missing objects to an OSTree repository
Go
2
star
44

calamares-branding

🌟 Calamares configuration and branding for Liri OS
Python
2
star
45

pulseaudio

🚀 PulseAudio support for Liri
C++
2
star
46

media-writer

📀 Write Liri OS images to portable media
C++
2
star
47

samtal

📀 Internet Relay Chat with Material Design
C++
2
star
48

libliri

📖 Library for Liri apps
C++
2
star
49

power-manager

🚀 Manages power consumption settings
C++
2
star
50

docs-hig

📚 Human Interface Guidelines
1
star
51

snap-packages

📀 Liri snap packages
1
star
52

ostree-config

📀 Scripts and configuration to create Liri OS trees
Shell
1
star
53

snapcraft-parts

📀 Snapcraft cloud parts for snaps using the Liri Platform snap
Shell
1
star
54

aurora-client

Qt-style API to interact with Wayland protocols inside Qt-based graphical applications
C++
1
star
55

website

🌏 Server-side code for the Web site
Go
1
star
56

splash

🚀 Splash screen for embedded and mobile devices
1
star
57

docs

📚 Liri developers documentation
1
star
58

meta-odroid

OpenEmbedded layer for Hardkernel ODROID boards
BitBake
1
star
59

snapcraft-plugins

📀 Snapcraft plugins shared by Liri snap packages
Python
1
star
60

artwork

Logo and promotional stuff
1
star
61

blog

🌏 Blog
HTML
1
star