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/