Skip to content

GTK, Qt, Kvantum, Icons, and Cursors ​

HyprFlux ships toolkit configuration for GTK, Qt5, Qt6, and Kvantum. The settings are static, and first-boot overrides can take precedence over the installer defaults. There is no single wallpaper-derived or unified theme state, so check what is actually active rather than assuming one source wins.

Configuration ownership ​

AreaOwner
Qt packagesqt5ct, qt6ct, qt6-svg, and kvantum in the main package batch
Qt configuration~/.config/qt5ct/ and ~/.config/qt6ct/, deployed by modules/02-dotfiles.sh
Kvantum~/.config/Kvantum/, deployed by module 02
GTK themesBundled .themes, installed by modules/04-themes.sh. Settings written by modules/07-gtk.sh
IconsPapirus packages and the Papirus-Dark selection from modules 04 and 07
XcursorFuture Black during theme setup, with Bibata values in the Hyprland environment
HyprcursorBibata Modern Classic, set at every session start by startup-apps.lua
First-boot overrides~/.config/hypr/initial-boot.sh

See dotsSetup.sh for the module order.

Qt5ct and Qt6ct ​

Both shipped controller files select:

SettingValue
Color schemeBundled Catppuccin Mocha color file
PaletteCustom
Icon themePapirus-Dark
Widget styleFusion
Fixed fontAdwaita Sans 10
General fontAdwaita Sans 12

During deployment, module 02 replaces the repository home placeholder in the Qt color-file paths with the installing user's home directory. Quick Settings also exposes the controllers.

Kvantum ​

HyprFlux bundles exactly two Kvantum themes:

  • catppuccin-mocha-blue
  • catppuccin-latte-blue

The shipped Kvantum configuration and the first-boot script select Mocha Blue:

bash
kvantummanager --set catppuccin-mocha-blue

However, Qt5ct and Qt6ct both select Fusion, and HyprFlux does not set QT_STYLE_OVERRIDE=kvantum. Kvantum is therefore installed and configured but is not the active Qt widget style under the shipped controller settings.

Environment conflict ​

env-variables.lua sets QT_QPA_PLATFORMTHEME first to qt5ct and then to qt6ct. One process environment cannot keep both values, so the later value wins. Check the application environment instead of assuming each Qt major version reaches its matching controller. See Diagnose the active theme.

Install and first-boot precedence ​

SettingInstaller and modulesFirst Hyprland bootResult
GTK themeHyprFlux-CompactMaterial-DeepOcean-BL through gsettingsGsettings-aware apps receive Material. GTK settings files still name HyprFlux-Compact
IconsPapirus-DarkPapirus-DarkConsistent
GTK cursorFuture-black CursorsMoga-CursorConflicting. Moga is not installed by this source
HyprcursorBibata-Modern-Classic, size 24hyprctl setcursor reapplies itInstalled and selected for Hyprland-native cursors
XcursorEnvironment names BibataUnchangedNo legacy Bibata cursors/ payload is installed, so legacy clients may fall back
GTK fontAdwaita Sans 11UnchangedRemains the intended GTK font
Kvantum themeCatppuccin Mocha BlueSelected againTheme exists, but the Qt controllers still use Fusion

The first-boot marker is written without validating all backgrounded commands. If theming looks inconsistent, inspect the current settings rather than rerunning the whole installer. See Diagnose the active theme.

Static colors ​

Qt, Kvantum, GTK, icons, and cursors use bundled static theme data. They are not generated from the current wallpaper. The central HyprFlux color generator updates Rofi, Waybar, Kitty, SwayNC, and Wlogout, but not these toolkit themes.

Diagnose the active theme ​

Because installer defaults, first-boot overrides, and the Qt environment conflict can each win, check what is actually active.

Open the controllers directly:

bash
qt5ct
qt6ct

Check which QT_QPA_PLATFORMTHEME value a running Qt application received. Replace <process-name> with its executable name:

bash
tr '\0' '\n' < /proc/$(pgrep -n '<process-name>')/environ | grep '^QT_'

Check the GTK and Qt settings that first-boot and the installer each wrote:

bash
gsettings get org.gnome.desktop.interface gtk-theme
gsettings get org.gnome.desktop.interface icon-theme
gsettings get org.gnome.desktop.interface cursor-theme
grep -E '^(style|icon_theme|color_scheme_path)=' ~/.config/qt5ct/qt5ct.conf ~/.config/qt6ct/qt6ct.conf

Released under the MIT License.