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
-
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.
-
Change directory to ./Kvantum/Kvantum
100% 10:01:36 USER: brook HOST: Legion-Siduction
PCD: 4s ~/kvantum-git-clone-demo ❯$ cd Kvantum/Kvantum/
-
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
-
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
-
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
-
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
-
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 ...
-
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/