{ pkgs, config, inputs, ... }: { imports = [ inputs.qtengine.nixosModules.default ]; environment.systemPackages = let inherit (config) rice; in (with pkgs.kdePackages; [ pkgs.gtk-engine-murrine breeze breeze.qt5 ]) ++ [ rice.gtk-theme.package rice.fonts.sans.package rice.icons.package ]; programs.qtengine = { enable = true; config = { theme = { colorScheme = let ui = config.rice.roles config.rice.palette.hex; in pkgs.runCommand "theme.colors" { } '' sed \ -e "s|@bg@|${ui.bg}|g" \ -e "s|@fg@|${ui.fg}|g" \ -e "s|@surface@|${ui.surface}|g" \ -e "s|@overlay@|${ui.overlay}|g" \ -e "s|@selection@|${ui.highlight}|g" \ -e "s|@accent@|${ui.accent}|g" \ -e "s|@error@|${ui.error}|g" \ -e "s|@warning@|${ui.warning}|g" \ -e "s|@success@|${ui.success}|g" \ ${./qt-color.template} \ > $out ''; iconTheme = config.rice.icons.name; style = "breeze"; font = with config.rice.fonts.sans; { family = name; size = size; weight = -1; }; fontFixed = with config.rice.fonts.monospace; { family = name; size = size; }; }; misc = { singleClickActivate = false; }; }; }; programs.dconf = { enable = true; profiles.user.databases = [ { settings = let inherit (config) rice; in { "org/gnome/desktop/interface" = { gtk-theme = rice.gtk-theme.name; icon-theme = rice.icons.name; font-name = "${rice.fonts.sans.name} ${builtins.toString rice.fonts.sans.size}"; color-scheme = "prefer-dark"; }; }; } ]; }; }