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.
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.
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]
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.
100% 10:01:36 USER: brook HOST: Legion-Siduction PCD: 4s ~/kvantum-git-clone-demo ❯$ cd Kvantum/Kvantum/
100% 09:51:35 USER: brook HOST: Legion-Siduction on master Kvantum/Kvantum ❯$ mkdir build && cd build
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
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
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
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 ...
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/