AHA!
Got it working! I manually wrote the configuration files for qt5ct
and qt6ct
this way:
xdg.configFile = lib.mkIf hasSeat {
kvantum = {
target = "Kvantum/kvantum.kvconfig";
text = lib.generators.toINI { } {
General.theme = "Catppuccin-Mocha-Blue";
};
};
qt5ct = {
target = "qt5ct/qt5ct.conf";
text = lib.generators.toINI { } {
Appearance = {
icon_theme = "Papirus-Dark";
};
};
};
qt6ct = {
target = "qt6ct/qt6ct.conf";
text = lib.generators.toINI { } {
Appearance = {
icon_theme = "Papirus-Dark";
};
};
};
My hasSeat
is a boolean that only writes this file if I have a systemd-seat (graphical interface), I use the same configuration files for my headless server. I need this because I use impermanence (Erase your darlings: immutable infrastructure for mutable systems - Graham Christensen). Also, I don’t want to have to manually setup my icons in the other laptop.
My complete configuration file is now this: wm-theme with these extra packages system-wide:
libsForQt5.qtstyleplugin-kvantum.
libsForQt5.qt5ct # Magic for some Qt apps keep functionality.
But it seems those two could be moved to my user.