diff options
Diffstat (limited to 'nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix')
-rw-r--r-- | nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix new file mode 100644 index 000000000000..b56b0aadd3ed --- /dev/null +++ b/nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix @@ -0,0 +1,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 + '' + ))} + ''; +} |