Installing Kvantum from Source on Siduction (Debian Sid)

Published: March 2, 2025, 11 p.m.

Updated: None

Kvantum is a theme engine for Qt based desktop environments, such as KDE's Plasma and other desktop environments such as LXQt. It is based on SVG elements. It is managed with the Kvantum Manager GUI application which allows users to select and customize themes.

Unfortunately, although it is commonly available in many distributions, a version supporting Qt6 -- necessary for the latest release series of Plasma -- is not in Debian's repositories. Fortunately it is fairly trivial to install the source package distributed on the project's Github page.

This article describes the process of installing from source on Siduction a Debian based rolling release distribution that uses the unstable branch of Debian repositories, codenamed Sid.

Introduction

Despite its reputation for a large number of packages in its repositories, Debian (on which Siduction is built) does not provide Kvantum. It is possible to compile and install it manually.

Process

Install Pre-Requisites

Install prerequisites. g++ is listed as a prerequisite in the build instructions on the Kvantum project's website, but it is installed by default or was installed as a result of previous package management transactions. The other prerequisites for compilation are shown in the following apt command.

󰁹 100%  09:32:25  USER: brook HOST: Legion-Siduction   
PCD: 12s ~  ❯$ sudo apt install libx11-dev libxext-dev qt6-base-dev qt6-svg-dev libkf6windowsystem-dev qt6-base-dev-tools
The following packages were automatically installed and are no longer required:
  libbaloowidgets-bin   libgdal35            libspdlog1.12  libtag1v5-vanilla  ruby3.1
  libdirectfb-1.7-7t64  libkf6baloowidgets6  libtag1v5      python3-colorama
Use 'sudo apt autoremove' to remove them.

Installing:
  libkf6windowsystem-dev  libx11-dev  libxext-dev  qt6-base-dev  qt6-base-dev-tools  qt6-svg-dev

Installing dependencies:
  libgl-dev               libxau-dev                         qml6-module-qtquick-nativestyle
  libglx-dev              libxcb1-dev                        qml6-module-qttest
  libkf6windowsystem-doc  libxdmcp-dev                       qml6-module-qtwayland-client-texturesharing
  libopengl-dev           qmake6                             qml6-module-qtwayland-compositor
  libqt6jsonrpc6          qmake6-bin                         qt6-declarative-dev
  libqt6languageserver6   qml6-module-qmltime                qt6-declarative-dev-tools
  libqt6qmlcompiler6      qml6-module-qt-labs-animation      qt6-qmllint-plugins
  libqt6qmlnetwork6       qml6-module-qt-labs-settings       qt6-qmltooling-plugins
  libqt6quicktest6        qml6-module-qt-labs-sharedimage    qt6-wayland-dev
  libqt6test6             qml6-module-qt-labs-wavefrontmesh  qt6-wayland-dev-tools
  libvulkan-dev           qml6-module-qtnetwork              x11proto-dev
  libwayland-bin          qml6-module-qtqml-xmllistmodel     xorg-sgml-doctools
  libwayland-dev          qml6-module-qtquick-localstorage   xtrans-dev

Suggested packages:
  libwayland-doc  libx11-doc  libxcb-doc  libxext-doc  cmake

Summary:
  Upgrading: 0, Installing: 45, Removing: 0, Not Upgrading: 27
  Download size: 13.7 MB
  Space needed: 114 MB / 46.8 GB available

Continue? [Y/n]
      

Clone Git Repository and Prepare Build

  1. Clone the Git repository. This will create /Kvantum/Kvantum in the directory where the clone command was executed.
    󰁹 100%  10:01:27  USER: brook HOST: Legion-Siduction   
        ~/kvantum-git-clone-demo  ❯$ git clone https://github.com/tsujan/Kvantum.git
        Cloning into 'Kvantum'...
        remote: Enumerating objects: 24366, done.
        remote: Counting objects: 100% (162/162), done.
        remote: Compressing objects: 100% (86/86), done.
        remote: Total 24366 (delta 86), reused 79 (delta 76), pack-reused 24204 (from 3)
        Receiving objects: 100% (24366/24366), 45.50 MiB | 18.38 MiB/s, done.
        Resolving deltas: 100% (16525/16525), done.
    
                
  2. Change directory to ./Kvantum/Kvantum
    
    󰁹 100%  10:01:36  USER: brook HOST: Legion-Siduction   
    PCD: 4s ~/kvantum-git-clone-demo  ❯$ cd Kvantum/Kvantum/
    
                
  3. Create the build directory and cd into it.
    󰁹 100%  09:51:35  USER: brook HOST: Legion-Siduction  on  master  
     Kvantum/Kvantum  ❯$ mkdir build && cd build
    

Configure the Compilation and Compile

  1. Configure the build with cmake. Note that I chose the prefix /usr/local, against the Kvantumproject installation recommendation, but conforming to Linux standards for installations not provided by the distribution. Following the project's recommendation, the command would be:
    cmake ..
    instead of
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
    󰁹 100%  09:51:38  USER: brook HOST: Legion-Siduction  on  master  
     Kvantum/Kvantum/build  ❯$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
    -- The C compiler identification is GNU 14.2.0
    -- The CXX compiler identification is GNU 14.2.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
    -- Found Threads: TRUE
    -- Performing Test HAVE_STDATOMIC
    -- Performing Test HAVE_STDATOMIC - Success
    -- Found WrapAtomic: TRUE
    -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    -- Found WrapOpenGL: TRUE
    -- Could NOT find XKB (missing: XKB_LIBRARY XKB_INCLUDE_DIR) (Required is at least version "0.5.0")
    -- Found WrapVulkanHeaders: /usr/include
    -- Could NOT find XKB (missing: XKB_LIBRARY XKB_INCLUDE_DIR) (Required is at least version "0.5.0")
    -- Found X11: /usr/include
    -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
    -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
    -- Looking for gethostbyname
    -- Looking for gethostbyname - found
    -- Looking for connect
    -- Looking for connect - found
    -- Looking for remove
    -- Looking for remove - found
    -- Looking for shmat
    -- Looking for shmat - found
    -- Could NOT find XKB (missing: XKB_LIBRARY XKB_INCLUDE_DIR) (Required is at least version "0.5.0")
    -- Could NOT find XKB (missing: XKB_LIBRARY XKB_INCLUDE_DIR) (Required is at least version "0.5.0")
    -- Configuring done (1.1s)
    -- Generating done (0.0s)
    -- Build files have been written to: /home/brook/Kvantum/Kvantum/build
    
  2. Compile Kvantum.
    󰁹 100%  09:51:52  USER: brook HOST: Legion-Siduction  on  master  [?] 
     Kvantum/Kvantum/build  ❯$ make
    [  0%] Built target kvantum_autogen_timestamp_deps
    [  2%] Automatic MOC for target kvantum
    [  2%] Built target kvantum_autogen
    [  5%] Automatic RCC for themeconfig/defaulttheme.qrc
    [  8%] Building CXX object style/CMakeFiles/kvantum.dir/kvantum_autogen/mocs_compilation.cpp.o
    [ 11%] Building CXX object style/CMakeFiles/kvantum.dir/Kvantum.cpp.o
    [ 13%] Building CXX object style/CMakeFiles/kvantum.dir/eventFiltering.cpp.o
    [ 16%] Building CXX object style/CMakeFiles/kvantum.dir/polishing.cpp.o
    [ 19%] Building CXX object style/CMakeFiles/kvantum.dir/rendering.cpp.o
    [ 22%] Building CXX object style/CMakeFiles/kvantum.dir/standardIcons.cpp.o
    [ 25%] Building CXX object style/CMakeFiles/kvantum.dir/viewItems.cpp.o
    [ 27%] Building CXX object style/CMakeFiles/kvantum.dir/KvantumPlugin.cpp.o
    [ 30%] Building CXX object style/CMakeFiles/kvantum.dir/shortcuthandler.cpp.o
    [ 33%] Building CXX object style/CMakeFiles/kvantum.dir/blur/blurhelper.cpp.o
    [ 36%] Building CXX object style/CMakeFiles/kvantum.dir/drag/windowmanager.cpp.o
    [ 38%] Building CXX object style/CMakeFiles/kvantum.dir/themeconfig/ThemeConfig.cpp.o
    [ 41%] Building CXX object style/CMakeFiles/kvantum.dir/animation/animation.cpp.o
    [ 44%] Building CXX object style/CMakeFiles/kvantum.dir/kvantum_autogen/VR2NXP72AJ/qrc_defaulttheme.cpp.o
    [ 47%] Linking CXX shared library libkvantum.so
    [ 50%] Built target kvantum
    [ 50%] Built target kvantumpreview_autogen_timestamp_deps
    [ 52%] Automatic MOC for target kvantumpreview
    [ 52%] Built target kvantumpreview_autogen
    [ 55%] Generating ui_KvantumPreviewBase.h
    [ 58%] Automatic RCC for KvantumPreviewResources.qrc
    [ 61%] Building CXX object kvantumpreview/CMakeFiles/kvantumpreview.dir/kvantumpreview_autogen/mocs_compilation.cpp.o
    [ 63%] Building CXX object kvantumpreview/CMakeFiles/kvantumpreview.dir/main.cpp.o
    [ 66%] Building CXX object kvantumpreview/CMakeFiles/kvantumpreview.dir/kvantumpreview_autogen/EWIEGA46WW/qrc_KvantumPreviewResources.cpp.o
    [ 69%] Linking CXX executable kvantumpreview
    [ 72%] Built target kvantumpreview
    [ 72%] Built target kvantummanager_autogen_timestamp_deps
    [ 75%] Automatic MOC and UIC for target kvantummanager
    [ 75%] Built target kvantummanager_autogen
    [ 77%] Automatic RCC for kvantummanager.qrc
    [ 80%] Building CXX object kvantummanager/CMakeFiles/kvantummanager.dir/kvantummanager_autogen/mocs_compilation.cpp.o
    [ 83%] Building CXX object kvantummanager/CMakeFiles/kvantummanager.dir/main.cpp.o
    [ 86%] Building CXX object kvantummanager/CMakeFiles/kvantummanager.dir/KvantumManager.cpp.o
    [ 88%] Building CXX object kvantummanager/CMakeFiles/kvantummanager.dir/KvCommand.cpp.o
    [ 91%] Building CXX object kvantummanager/CMakeFiles/kvantummanager.dir/svgicons.cpp.o
    [ 94%] Building CXX object kvantummanager/CMakeFiles/kvantummanager.dir/kvantummanager_autogen/EWIEGA46WW/qrc_kvantummanager.cpp.o
    [ 97%] Linking CXX executable kvantummanager
    [100%] Built target kvantummanager
    

Install Kvantum Manager

  1. Use the make install command to install Kvantum
    󰁹 100%  09:52:53  USER: brook HOST: Legion-Siduction  on  master  [?] 
    PCD: 51s Kvantum/Kvantum/build  ❯$ sudo make install
    [sudo] password for brook: 
    Sorry, try again.
    [sudo] password for brook: 
    [  0%] Built target kvantum_autogen_timestamp_deps
    [  2%] Built target kvantum_autogen
    [ 50%] Built target kvantum
    [ 50%] Built target kvantumpreview_autogen_timestamp_deps
    [ 52%] Built target kvantumpreview_autogen
    [ 72%] Built target kvantumpreview
    [ 72%] Built target kvantummanager_autogen_timestamp_deps
    [ 75%] Built target kvantummanager_autogen
    [100%] Built target kvantummanager
    Install the project...
    -- Install configuration: "Release"
    -- Installing: /usr/lib/x86_64-linux-gnu/qt6/plugins/styles/libkvantum.so
    -- Installing: /usr/local/share/color-schemes/Kvantum.colors
    -- Installing: /usr/local/bin/kvantumpreview
    -- Installing: /usr/local/bin/kvantummanager
    -- Installing: /usr/local/share/applications/kvantummanager.desktop
    -- Installing: /usr/local/share/icons/hicolor/scalable/apps/kvantum.svg
    -- Installing: /usr/local/share/Kvantum/
    -- Installing: /usr/local/share/Kvantum//KvAdapta
    -- Installing: /usr/local/share/Kvantum//KvAdapta/KvAdapta.kvconfig
    
    ... excised ...
    
    -- Installing: /usr/local/share/Kvantum//KvRoughGlass/KvRoughGlass.svg
    -- Installing: /usr/local/share/Kvantum//KvSimplicity
    -- Installing: /usr/local/share/Kvantum//KvSimplicity/KvSimplicity.kvconfig
    -- Installing: /usr/local/share/Kvantum//KvSimplicity/KvSimplicity.svg
    -- Installing: /usr/local/share/Kvantum//KvSimplicityDark
    -- Installing: /usr/local/share/Kvantum//KvSimplicityDark/KvSimplicityDark.kvconfig
    -- Installing: /usr/local/share/Kvantum//KvSimplicityDark/KvSimplicityDark.svg
    -- Installing: /usr/local/share/Kvantum//KvSimplicityDarkLight
    -- Installing: /usr/local/share/Kvantum//KvSimplicityDarkLight/KvSimplicityDarkLight.kvconfig
    -- Installing: /usr/local/share/Kvantum//KvSimplicityDarkLight/KvSimplicityDarkLight.svg
    -- Installing: /usr/local/share/Kvantum//KvSimplicityTurquoise
    -- Installing: /usr/local/share/Kvantum//KvSimplicityTurquoise/KvSimplicityTurquoise.kvconfig
    
    ... excised ...
    
    -- Installing: /usr/local/share/color-schemes//KvMojaveMixed.colors
    -- Installing: /usr/local/share/color-schemes//KvMojaveMixed1.colors
    -- Installing: /usr/local/share/color-schemes//KvOxygen.colors
    -- Installing: /usr/local/share/color-schemes//KvRoughGlass.colors
    -- Installing: /usr/local/share/color-schemes//KvSimplicity.colors
    -- Installing: /usr/local/share/color-schemes//KvSimplicityDark.colors
    -- Installing: /usr/local/share/color-schemes//KvSimplicityDarkLight.colors
    -- Installing: /usr/local/share/color-schemes//KvSimplicityTurquoise.colors
    -- Installing: /usr/local/share/color-schemes//KvYaru.colors
    -- Installing: /usr/local/share/color-schemes//KvantumAlt.colors
    
  2. Verify Kvantum installation by viewing the standard themes that are distributed by Kvantum upstream.
    󰁹 100%  09:55:19  USER: brook HOST: Legion-Siduction  on  master  [?] 
    PCD: 11s Kvantum/Kvantum/build  ❯$ ls -la /usr/local/share/Kvantum/
    total 0
    drwxr-xr-x 1 root root 754 Jan 25 09:55 ./
    drwxr-xr-x 1 root root 152 Jan 25 09:55 ../
    drwxr-xr-x 1 root root  58 Jan 25 09:55 KvAdapta/
    drwxr-xr-x 1 root root  74 Jan 25 09:55 KvAdaptaDark/
    drwxr-xr-x 1 root root  66 Jan 25 09:55 KvAmbiance/
    drwxr-xr-x 1 root root  66 Jan 25 09:55 KvAmbience/
    drwxr-xr-x 1 root root  66 Jan 25 09:55 KvantumAlt/
    
    ... truncated ...
    
    
  3. I copied some custom Kvantum themes from my Arch installation to the Siduction installation's newly created Kvantum themes folder (under /usr/local).
    󰁹 100%  09:55:55  USER: brook HOST: Legion-Siduction  on  master  [?] 
    Kvantum/Kvantum/build  ❯$ sudo cp -r /media/brook/ARCH_ROOT/usr/share/Kvantum/Prof* /usr/local/share/Kvantum/