about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/themes/vimix/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/themes/vimix/default.nix')
-rw-r--r--nixpkgs/pkgs/data/themes/vimix/default.nix33
1 files changed, 27 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/data/themes/vimix/default.nix b/nixpkgs/pkgs/data/themes/vimix/default.nix
index dc13b4abfb6b..f9dbf73b3a99 100644
--- a/nixpkgs/pkgs/data/themes/vimix/default.nix
+++ b/nixpkgs/pkgs/data/themes/vimix/default.nix
@@ -1,26 +1,41 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
 , gnome-shell
 , gtk-engine-murrine
 , gtk_engines
+, jdupes
 , sassc
 , gitUpdater
+, themeVariants ? [] # default: doder (blue)
+, colorVariants ? [] # default: all
+, sizeVariants ? [] # default: standard
+, tweaks ? []
 }:
 
-stdenv.mkDerivation rec {
+let
   pname = "vimix-gtk-themes";
-  version = "2022-04-24";
+
+in
+lib.checkListOfEnum "${pname}: theme variants" [ "doder" "beryl" "ruby" "amethyst" "jade" "grey" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" "all" ] sizeVariants
+lib.checkListOfEnum "${pname}: tweaks" [ "flat" "grey" "mix" "translucent" ] tweaks
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2023-01-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0q0ahm060qvr7r9j3x9lxidjnwf032c2g1pcqw9mz93iy7vfn358";
+    sha256 = "4IJMLSUsZvtPfuMS+NYkKo8K3laec2YJk20d5tL0vKI=";
   };
 
   nativeBuildInputs = [
     gnome-shell  # needed to determine the gnome-shell version
+    jdupes
     sassc
   ];
 
@@ -39,12 +54,18 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/themes
-    name= HOME="$TMPDIR" ./install.sh --all --dest $out/share/themes
+    name= HOME="$TMPDIR" ./install.sh \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (sizeVariants != []) "--size " + builtins.toString sizeVariants} \
+      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
+      --dest $out/share/themes
     rm $out/share/themes/*/{AUTHORS,LICENSE}
+    jdupes --quiet --link-soft --recurse $out/share
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Flat Material Design theme for GTK based desktop environments";