about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix')
-rw-r--r--nixpkgs/pkgs/data/themes/tokyonight-gtk-theme/default.nix38
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
+      ''
+    ))}
+  '';
+}