rose-pine-nix/modules/home-manager/gtk.nix

56 lines
1.1 KiB
Nix

{
config,
pkgs,
lib,
...
}: let
inherit
(lib)
rp
mkIf
mkMerge
;
cfg = config.gtk.rose-pine;
enable = cfg.enable && config.gtk.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.gtk.rose-pine =
rp.mkRosePineOpt {
name = "gtk";
enableDefault = false;
}
// {
icon = rp.mkRosePineOpt {
name = "GTK icon theme";
# NOTE: we exclude this from the global `catppuccin.enable` as there
# is no `enable` option in the upstream module to guard it.
enableDefault = false;
};
};
config = mkMerge [
(mkIf enable {
gtk.theme = {
name = "${themeName}-gtk";
package = pkgs.rose-pine-gtk-theme;
};
xdg.configFile = let
gtk4Dir = "${config.gtk.theme.package}/share/themes/${themeName}/gtk-4.0";
in {
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css";
};
})
(mkIf cfg.icon.enable {
gtk.iconTheme = {
name = "${themeName}-icons";
package = pkgs.rose-pine-icon-theme;
};
})
];
}