nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix
2024-02-17 21:25:29 +01:00

39 lines
1.1 KiB
Nix

{ lib
, callPackage
, runCommand
, gtk-engine-murrine
, gnome-themes-extra
}:
let
prefix = "tokyonight-gtk-theme";
packages = lib.mapAttrs' (type: content: {
name = type;
value = lib.mapAttrs' (variantName: variant: {
name = variantName;
value = callPackage ./generic.nix { inherit prefix type variantName variant; };
}) content;
}) (lib.importJSON ./variants.json);
in packages // {
# Not using `symlinkJoin` because it's massively inefficient in this case
full = runCommand "${prefix}_full" {
preferLocalBuild = true;
propagatedUserEnvPkgs = [
gtk-engine-murrine
gnome-themes-extra
];
} ''
mkdir -p $out/share/{icons,themes,${prefix}}
${lib.concatStrings (lib.forEach (lib.attrValues (lib.attrsets.mergeAttrsList (lib.attrValues packages))) (variant:
''
ln -s ${variant}/share/${variant.ptype}/Tokyonight-${variant.pvariant} $out/share/${variant.ptype}/Tokyonight-${variant.pvariant}
ln -s ${variant}/share/${prefix}/LICENSE $out/share/${prefix}/LICENSE 2>/dev/null || true
''
))}
'';
}