Skip to content
This repository has been archived by the owner on Aug 18, 2019. It is now read-only.

📖 Wayland client and server extensions, additions to QtWayland and eglfs fork

License

GPL-2.0 and 2 other licenses found

Licenses found

GPL-2.0
LICENSE.GPLv2
GPL-3.0
LICENSE.GPLv3
LGPL-3.0
LICENSE.LGPLv3
Notifications You must be signed in to change notification settings

liri-archive/wayland-archived

Liri Wayland

ZenHub.io

License GitHub release Build Status GitHub issues Maintained

Wayland client and server libraries for Liri OS.

Features

This project includes:

  • Qt-style API for Wayland clients
  • Client and server extensions for screenshots, screencast, applicaion manager, task manager and output management
  • XWayland support
  • Screen configuration
  • Qt-style API for libinput
  • QPA plugin
  • QtWaylandClient fullscreen shell integration
  • Pluggable hardware abstraction with support for:
    • DRM/KMS

Dependencies

Compiler requirements:

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

And the following modules:

The following modules and their dependencies are required:

If you enable DRM/KMS device integration you also need:

If you enable XWayland support you also need:

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

Then, from the root of the repository, run:

qbs -d build -j $(nproc) profile:qt5 # use sudo if necessary

To the qbs call above you can append additional configuration parameters:

  • modules.lirideployment.prefix:/path/to/prefix where most files are installed (default: /usr/local)
  • modules.lirideployment.dataDir:path/to/lib where data files are installed (default: /usr/local/share)
  • modules.lirideployment.libDir:path/to/lib where libraries are installed (default: /usr/local/lib)
  • modules.lirideployment.qmlDir:path/to/qml where QML plugins are installed (default: /usr/local/lib/qml)
  • modules.lirideployment.pluginsDir:path/to/plugins where Qt plugins are installed (default: /usr/local/lib/plugins)
  • modules.lirideployment.qbsModulesDir:path/to/qbs where Qbs modules are installed (default: /usr/local/share/qbs/modules)

See lirideployment.qbs for more deployment-related parameters.

You can also specify the following options:

  • products.kms.condition:false: Do not build KMS EGL device integration.
  • products.lirixwaylandplugin.condition:false: Do not build XWayland support.
  • products.fullscreen-shell.condition:false: Do not build fullscreen-shell integration.
  • products.lirieglfs.condition:false: Do not build QPA plugin.

Environment variables

The liri QPA plugin supports different graphics hardware through EGL device integration plugins.

The environment variables that can influence the QPA plugin are the same as those of eglfs.

Logging categories

Qt 5.2 introduced logging categories and Liri takes advantage of them to make debugging easier.

Please refer to the Qt documentation to learn how to enable them.

Available categories

  • Server-side:

    • liri.wlserver: Core compositor classes
    • liri.wlserver.qml: Liri.WaylandServer QML plugin
    • liri.wlserver.outputmanagement: The liri_outputmanagement protocol
    • liri.wlserver.gtkshell: The gtk_shell protocol
    • liri.wlserver.gtkshell.trace: The gtk_shell protocol trace
    • liri.wlserver.screencaster: The liri_screencaster protocol
    • liri.wlserver.screenshooter: The liri_screenshooter protocol
    • liri.wlserver.taskmanager: The liri_windows
    • liri.xwayland: xwayland
    • liri.xwayland.trace: xwayland protocol trace
  • Client-side:

    • liri.wlclient.registry: Registry
    • liri.wlclient.shmpool: Shared memory pool
    • liri.wlcient.cursortheme: Cursor theme
    • liri.wlclient.fullscreenshell: Full screen shell
  • Platform:

    • liri.qpa.deviceintegration: Device integration
    • liri.qpa.input: Input management on device integration plugins
  • EGL Device Integrations:

    • liri.qpa.kms: KMS/DRM EGL device integration
    • liri.qpa.vthandler: Vt handler

Licensing

Licensed under the terms of the GNU General Public License version 3.