From LXDE.org

This site is outdated. Please visit the new wiki

Introduction

Since the original LXDE and razor-qt projects decided to merge the effort and work together on the same project, we formed lxqt. Here is a guide for the brave to build lxqt from git source code. Please note, since this is a work in progress, things are subject to frequent changes. So be prepared and don't expect too much. Things will improve, but it takes time. :-)

Get Qt5

If your Gnu/Linux distribution offers Qt5-packages, it could nevertheless be necessary to use the official Qt5 installer from the Qt-website. Some Lxqt-packages use private header files which are shipped with the official installer but not included in the packages offered by the distribution (tested with Ubuntu).

To install Qt5, get the installer package from http://www.qt.io/download-open-source/, run it and install it at any location. Then, you have to include the qmake binary in your path. Then, cmake can query the qmake binary for the location of the header-files and libs. For example, you could append

export PATH=[path-to-Qt-bin]:$PATH

to your ~/.bashrc.

Get the source code from git

Github: https://github.com/lxde

Or our own git server: http://git.lxde.org/gitweb/?a=project_list;pf=lxde

To clone all lxqt components at once, do the following:

git clone https://github.com/lxde/lxqt cd lxqt git submodule init git submodule update git submodule foreach git checkout master git submodule foreach git pull --rebase

To build all of the code at once, you may optionally use the build_all.sh script:

LXQT_PREFIX=/usr ./build_all.sh

If your distro is 64 bit and it installs libraries to lib64 rather than lib, try LIB_SUFFIX=64 environment variable. The script is a quick and simple hack and may not work correctly. Building all of the components manually is safer at the moment.

Qt4 support

Qt4 support is now limited to libqtxdg only

cmake >= 2.8.11

pass -DUSE_QT4=ON flag to cmake to turn on Qt4 support

LLVM/Clang

To build with LLVM/Clang (the default compiler of FreeBSD), you need to do this.

cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ..

These two cmake parameters can be used to override the default detection of compilers.





Build the base libraries

mimetypes (Qt4 Only)

Mimetypes provider for the Qt4 build of libqtxdg

Prerequisite: qt >= 4.7.2

Build:

cd mimetypes qmake make sudo make install

This library is only needed for the Qt4 build.

libqtxdg

Library providing freedesktop.org specs implementations for Qt.

Prerequisite: for Qt4: cmake >= 2.8.11, qt >= 4.7.2 and QtMimeTypes, for Qt5: cmake >= 2.8.11 and qt >= 5.3.0.

Export USE_QT4 with ON or OFF, as you wish

Build: see below.

mkdir build cd build cmake .. make sudo make install

liblxqt

Common base library for most lxqt components

Prerequisite: cmake >= 2.8.11, qt >= 5.3, KWindowSystem, libqtxdg

Build:

mkdir build cd build cmake .. make sudo make install

liblxqt-mount

Library used to manage removable devices

Prerequisite: cmake >= 2.8.11, qt >= 5.3, liblxqt

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-globalkeys

Daemon and library for global keyboard shortcuts registration

Prerequisite: cmake >= 2.8.11, qt >= 5.3, liblxqt, KWindowSystem

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-notificationd

Notification daemon and library

Prerequisite: cmake >= 2.8.11, qt >= 5.3, liblxqt, KWindowSystem, Xlib

Build:

mkdir build cd build cmake .. make sudo make install

libsysstat

Library used to query system statistics (net status, system resource usage, ...etc)

Prerequisite: cmake >= 2.8.11, qt >= 5.3

Build:

mkdir build cd build cmake .. make sudo make install

menu-cache

Prerequisite: automake >= 1.9, pkg-config, libglib >= ?, gtk-doc, libfm-extra

For menu-cache and libfm, we have a circular dependency: menu-cache depends on libfm-extra which is installed with libfm while libfm depends on menu-cache. To solve this issue, you can build and install libfm-extra only, see libfm-extra_only.

Build:

./autogen.sh ./configure make sudo make install sudo ldconfig

libfm-extra only

In directory libfm

Build:

./autogen.sh ./configure --with-extra-only --sysconfdir=/etc make sudo make install sudo ldconfig

libfm

Prerequisite: automake >= 1.9, intltool, gtk-doctools, pkg-config, glib >= 2.16, libexif (for thumbnails), menu-cache >= 0.5, valac >= 0.14 (optional, for actions support, only needs for build and has no runtime dep)

Build:

./autogen.sh ./configure --without-gtk --sysconfdir=/etc make sudo make install sudo ldconfig

Notice You may have to use --sysconfdir=/etc for some systems (such as Linux); otherwise config files will be install to /usr/local/etc by GNU automake. The flag --without-gtk is also required here since we don't need to build libfm-gtk library. If you install menu-cache in /usr/local, do this prior to running configure



export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Special configure flags: --enable-debug: (add -g -O0, and other compiler flags required for debugging, disable optimization and generate debug symbols) --enable-demo: also build a small demo program libfm-demo for testing libfm.

Runtime dependencies: gvfs (optional, trash can, remote filesystem mounting, and volume management requires gvfs) lxmenu-data (optional, required for menu://application to work, if you have gnome-menus package or other application menu definition files installed, this is not needed).



Build major components

lxqt-panel

Desktop panel

Prerequisite: cmake >= 2.8.11, qt >= 5.3, libqtxdg, liblxqt, KWindowSystem, KGuiAddons, libkf5solid, lxqt-globalkeys, liblxqt-mount (mount plugin), Xlib, libsysstat, libdbusmenu-qt5, xcb-util, xcb-damage

Optional dependencies: libstatgrab (CPU Load Plugin and Network Monitor Plugin), libicu (Weather Plugin), alsa or pulseaudio (Volume Plugin), lm-sensors (Sensors Plugin), menu-cache

Build:

mkdir build cd build cmake .. make sudo make install

pcmanfm-qt

file manager + desktop manager

Prerequisite: libfm >= 1.2, menu-cache >= 0.4, qt >= 4.6, cmake >= 2.8.11, pkg-config, xcb If you install menu-cache or libfm in /usr/local, do this prior to running cmake



export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Build:

mkdir build cd build cmake .. make sudo make install sudo ldconfig

Notice: PCManFM-Qt package also install a companion library, libfm-qt, which is the Qt binding of libfm.

lxqt-session

session manager

Prerequisite: qt >= 5.3, cmake >= 2.8.11, KWindowSystem, liblxqt, Xlib, libudev

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-runner

Launch applications quickly by typing commands

Prerequisite: qt >= 5.3, cmake >= 2.8.11, liblxqt, KWindowSystem, lxqt-globalkeys, menu-cache

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-qtplugin

LxQt platform integration plugin for Qt5 (let all Qt programs apply LxQt settings)

Prerequisite: qt >= 5.3, cmake >= 2.8.11, liblxqt

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-policykit

Policykit authentication agent

Prerequisite: qt >= 5.3, cmake >= 2.8.11, liblxqt, libqtxdg, polkit-qt

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-powermanagement

Daemon use for power management and auto-suspend

Prerequisite: qt >= 5.3, cmake >= 2.8.11, xcb, x11-xcb, xcb-screensaver, xcb-dpms, libkf5solid, liblxqt

Build:

mkdir build cd build cmake .. make sudo make install

lximage-qt

Image viewer

Prerequisite: pcmanfm-qt >= 1.2 (will be used for thumbnail generation and others), qt >= 5.3, cmake >= 2.8.11, pkg-config, libexif

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-config

System configuration (control center)

Prerequisite: qt >= 5.3, cmake >= 2.8.11, KWindowSystem, Xlib, liblxqt, libqtxdg

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-config-randr

Simple monitor configuration

Prerequisite: qt >= 5.3, cmake >= 2.8.11, Xlib, Xrandr

Build:

mkdir build cd build cmake .. make sudo make install

obconf-qt

Window manager configuration (for Openbox)

Prerequisite: qt >= 4.6, cmake >= 2.8.3, pkg-config, openbox development libs

If you want to use Qt5, run "export USE_QT5=ON" before you call "cmake ..". If you have already called "cmake ..", cmake will cache that you use Qt4. Then, you can remove and recreate the "build"-directory.

Build:

mkdir build cd build cmake .. make sudo make install

compton-conf

X composite manager configuration (for compton)

Prerequisite: qt >= 4.6, cmake >= 2.8.3, pkg-config, libconfig

Runtime dependency: compton (running with dbus support turned on)

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-about

About dialog for lxde-qt

Prerequisite: qt >= 5.3, cmake >= 2.8.11, liblxqt

Build:

mkdir build cd build cmake .. make sudo make install

Install data files

lxqt-common

Common data file required for running an lxde-qt session

Prerequisite: cmake >= 2.8.11

Build:

mkdir build cd build cmake .. make sudo make install

lxmenu-data

Data files for application menu

Prerequisite: automake >= 1.9

Build:

./autogen.sh ./configure --sysconfdir=/etc make sudo make install

Note: on some other distros, xdg config dir is not /etc/xdg, then pass appropriate --sysconfdir to the configure script according to the OS you use.

Deprecated components

The following components were used in LXQt previously. They still work now, but they might not get future update.

lxqt-openssh-askpass

Tool used with openssh to prompt the user for password (DEPRACATED)

Prerequisite: qt >= 5.3, cmake >= 2.8.11, liblxqt

Build:

mkdir build cd build cmake .. make sudo make install

lxinput-qt

Now, lxinput-qt is merged to lxqt-config.

* Keyboard and mouse configuration

Prerequisite: qt >= 4.6, cmake >= 2.8.3, Xlib, pkg-config

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-appswitcher

Applications switcher

Prerequisite: qt >= 4.6, cmake >= 2.8.9, liblxqt, lxqt-globalkeys, libX11

Build:

mkdir build cd build cmake .. make sudo make install

lxqt-lightdm-greeter

lxde-qt front-end for lightdm

Prerequisite: qt >= 4.6, cmake >= 2.8.9, liblxqt

Build:

mkdir build cd build cmake .. make sudo make install

Configure: Open /etc/lightdm/lightdm.conf in an editor (with root privileges - eg. sudo vim /etc/lightdm/lightdm.conf) and make the 'greeter-session' line in the SeatDefaults section look like:

greeter-session=lxqt-lightdm-greeter

After restarting lightdm the greeter should show up.

List of external dependencies

For the build process of the Lxqt components, you need a few external dependencies installed on your machine. In general, Google is your friend. Installed packages are checked by cmake itself or via pkg-config. For the cmake-search, you can feed google with PackagenameConfig.cmake. For pkg-config, you could use packagename.pc. (This method worked very well on Ubuntu.)

If I have not missed any of the external dependencies, here is the list of the package names for Ubuntu (maybe the packages have similar names for different distributions?):

alsa -> libasound2-dev

automake -> automake

gtk-doc -> gtk-doc-tools

KF5GuiAddons -> libkf5guiaddons-dev

KWindowSystem -> libkf5windowsystem-dev

libconfig -> libconfig-dev

libdbusmenu-qt5 -> libdbusmenu-qt5-dev

libexif -> libexif-dev

libkf5solid -> libkf5solid-dev

libstatgrab -> libstatgrab-dev

libudev -> libudev-dev

lm-sensors -> libsensors4-dev

openbox development libs -> openbox-dev

Polkit-Qt -> libpolkit-qt5-1-dev && libpolkit-agent-1-dev

pulseaudio -> libpulse-dev

valac -> valac

xcb -> ?

xcb-damage -> libxcb-damage0-dev

xcb-dpms -> libxcb-dpms0-dev

xcb-screensaver -> libxcb-screensaver0-dev

xcb-util -> libxcb-util0-dev





Debian

For any Debian version, first enable the experimental repos by adding them to /etc/apt/source.list. Then, copy paste this in terminal :

sudo apt-get -t experimental install libasound2-dev gtk-doc-tools libkf5guiaddons-dev libkf5windowsystem-dev libconfig-dev libdbusmenu-qt5-dev libexif-dev libkf5solid-dev libstatgrab-dev libudev-dev libsensors4-dev openbox-dev libpolkit-qt5-1-dev libpolkit-agent-1-dev libpulse-dev valac xcb libxcb-damage0-dev libxcb-dpms0-dev libxcb-screensaver0-dev libxcb-util0-dev

You can also get the latest qt5 (list to complete): sudo apt-get -t experimental install qt5-default qt5-qmake

openSUSE

On openSUSE you have to install the following development packages: zypper in libqt5widgets-devel libQt5DBus-devel libQt5xml-devel libQt5concurrent-devel libqt5-qtx11extras-devel libqt5-linguist-devel liblxqt-devel libqt5-qtbase-private-headers-devel

Funtoo / Gentoo

On *ntoo you have to emerge: emerge -a kwindowsystem kguiaddons liboobs polkit-qt qtsvg qtscript qtprintsupport libconfig