blob: b56b0aadd3ed46dc8022520f102b2a30aa3e464b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
{ 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
''
))}
'';
}
|