diff --git a/pkgs/data/themes/mojave/default.nix b/pkgs/data/themes/mojave/default.nix index bf2014344a6e..56d7dfcf3752 100644 --- a/pkgs/data/themes/mojave/default.nix +++ b/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 '';