nix/graphical/platform-themes.nix
2026-04-08 11:51:33 +10:00

83 lines
1.9 KiB
Nix

{
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";
};
};
}
];
};
}