This page describes building of KWin against Qt 4. For compilation of the frameworks branch please follow the instructions on KWin/Frameworks

There are several options to build KWin from sources. The easiest one is probably to use kdesrc-build and just build the module kde-workspace. But it's also possible to build KWin standalone without the other parts of kde-workspace. This article aims to describe how to build current master.

Obtaining Source Code

KWin is part of the kde-workspace module and is located in the sub-folder kwin of this module. To obtain the KWin source code you have therefore to clone the git repository:

git clone git://

In case you cannot use the git protocol please have a look to the repository website for other options.

As master branch is requiring Qt 5 you have to switch to the KDE/4.11 branch.


The dependencies to build KWin should best be resolved using your distribution. On Debian based systems just use:

sudo apt-get build-dep kde-workspace

Given that the KDE 4 libraries are currently frozen it should be possible to build KWin with kdelibs version 4.8 or later.

Running cmake

First create a directory where you want to build kwin, which we assume to be in $BUILD. Furthermore create a directory where to install to, which we will call $KWIN_INSTALL_DIR. We assume the cloned kde-workspace repository is located in $KDE_WORKSPACE

Now run cmake from the build directory and specify the build options you want to have. KWin specific build options are documented on techbase.

      -DCMAKE_BUILD_TYPE=debugfull \

Build and install

After cmake has run sucessfully you can just make and make install from the kwin directory in your build tree:

cd kwin
make install


The default window decoration Oxygen is known to provide problems from time to time when running KWin from master. The reason is that the decoration shares an internal library with the kstyle. This can result in ABI problems and if KWin is started with an Oxygen linked against an old version it won't start.

To circumvent this problem a build option is available to disable building Oxygen. In the cmake snippet above this build option is set to disable building Oxygen to make building KWin as easy as possible. If you want to build Oxygen (e.g. to work on the window decoration) just remove the line with KWIN_BUILD_OXYGEN.

Running KWin

Now after successfully building KWin all that is left is adjusting your local environment, so that it finds your KWin version. For an overview on available variables to adjust have a look at Build/Environment.

export KDEDIRS=$KDEDIR:$KDEDIRS # remove the added $KDEDIRS if you don't want to find your distribution KDE version

# Add the KDE plugins to the Qt plugins path
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins

# Export the standard paths to include KDE
export PATH=$KDEDIR/bin:$PATH

In case you don't want KWin to pick up your standard configuration file, also adjust $KDEHOME, please see referenced documentation above.

To start KWin from this environment just run:

kwin --replace &

In case you run from a tty, don't forget to export the $DISPLAY variable. You can also start KWin on an embedded X-Server (Xephyr) or in a separate X session by adjusting the $DISPLAY variable.

This page was last edited on 17 October 2013, at 06:48. Content is available under Creative Commons License SA 4.0 unless otherwise noted.