about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/themes/mojave/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/themes/mojave/default.nix')
-rw-r--r--nixpkgs/pkgs/data/themes/mojave/default.nix48
1 files changed, 40 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/data/themes/mojave/default.nix b/nixpkgs/pkgs/data/themes/mojave/default.nix
index bf2014344a6e..56d7dfcf3752 100644
--- a/nixpkgs/pkgs/data/themes/mojave/default.nix
+++ b/nixpkgs/pkgs/data/themes/mojave/default.nix
@@ -10,24 +10,42 @@
 , optipng
 , sassc
 , which
+, buttonSizeVariants ? [] # default to standard
+, buttonVariants ? [] # default to all
+, colorVariants ? [] # default to all
+, opacityVariants ? [] # default to all
+, themeVariants ? [] # default to MacOS blue
+, wallpapers ? false
 }:
 
-stdenv.mkDerivation rec {
+let
   pname = "mojave-gtk-theme";
-  version = "2021-07-20";
+in
+lib.checkListOfEnum "${pname}: button size variants" [ "standard" "small" ] buttonSizeVariants
+lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink" "red" "orange" "yellow" "green" "grey" "all" ] themeVariants
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  version = "unstable-2021-12-20";
 
   srcs = [
     (fetchFromGitHub {
       owner = "vinceliuice";
       repo = pname;
-      rev = version;
-      sha256 = "08j70kmjhvh06c3ahcracarrfq4vpy0zsp6zkcivbw4nf3bzp2zc";
+      rev = "c148646ccab382f7a2d5fdc421fc32d843cb4172";
+      sha256 = "sha256-h4MSSh8cu9M81bM+WJSyl1SQ7CVth1DvjIVOUJXqpxs";
     })
+  ]
+  ++
+  lib.optional wallpapers
     (fetchurl {
       url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
       sha256 = "18zzkwm1kqzsdaj8swf0xby1n65gxnyslpw4lnxcx1rphip0rwf7";
     })
-  ];
+  ;
 
   sourceRoot = "source";
 
@@ -76,9 +94,23 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    name= ./install.sh --theme all --dest $out/share/themes
-    install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
-    jdupes -l -r $out/share
+
+    name= ./install.sh \
+      ${lib.optionalString (buttonSizeVariants != []) "--small " + builtins.toString buttonSizeVariants} \
+      ${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      --dest $out/share/themes
+
+    ${lib.optionalString wallpapers ''
+      install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
+    ''}
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 53%
+    jdupes -L -r $out/share
+
     runHook postInstall
   '';