@@ -1,26 +1,67 @@
1−{ lib, stdenv, fetchFromGitHub, libxml2, gdk-pixbuf, librsvg, gtk-engine-murrine }:
1+{ lib
2+, stdenv
3+, fetchFromGitHub
4+, gdk-pixbuf
5+, gtk-engine-murrine
6+, jdupes
7+, librsvg
8+, libxml2
9+, buttonVariants ? [] # default to all
10+, colorVariants ? [] # default to all
11+, opacityVariants ? [] # default to all
12+, sizeVariants ? [] # default to all
13+}:
214
3−stdenv.mkDerivation rec {
15+let
416 pname = "sierra-gtk-theme";
5− version = "2019-12-16";
17+in
18+lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
19+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
20+lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
21+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
22+
23+stdenv.mkDerivation {
24+ inherit pname;
25+ version = "unstable-2021-05-24";
626
727 src = fetchFromGitHub {
828 owner = "vinceliuice";
929 repo = pname;
10− rev = version;
11− sha256 = "14hlz8kbrjypyd6wyrwmnj2wm9w3kc8y00ms35ard7x8lmhs56hr";
30+ rev = "05899001c4fc2fec87c4d222cb3997c414e0affd";
31+ sha256 = "174l5mryc34ma1r42pk6572c6i9hmzr9vj1a6w06nqz5qcfm1hds";
1232 };
1333
14− nativeBuildInputs = [ libxml2 ];
34+ nativeBuildInputs = [
35+ jdupes
36+ libxml2
37+ ];
1538
16− buildInputs = [ gdk-pixbuf librsvg ];
39+ buildInputs = [
40+ gdk-pixbuf
41+ librsvg
42+ ];
1743
18− propagatedUserEnvPkgs = [ gtk-engine-murrine ];
44+ propagatedUserEnvPkgs = [
45+ gtk-engine-murrine
46+ ];
1947
2048 installPhase = ''
21− patchShebangs .
49+ runHook preInstall
50+
51+ patchShebangs install.sh
52+
2253 mkdir -p $out/share/themes
23− name= ./install.sh --dest $out/share/themes
54+ name= ./install.sh --dest $out/share/themes \
55+ ${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
56+ ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
57+ ${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
58+ ${lib.optionalString (sizeVariants != []) "--flat " + builtins.toString sizeVariants}
59+
60+ # Replace duplicate files with hardlinks to the first file in each
61+ # set of duplicates, reducing the installed size in about 79%
62+ jdupes -L -r $out/share
63+
64+ runHook postInstall
2465 '';
2566
2667 meta = with lib; {