56 lines
1.1 KiB
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;
|
|
};
|
|
})
|
|
];
|
|
}
|