lol
1{ lib
2, stdenvNoCC
3, fetchFromGitHub
4, gtk3
5, hicolor-icon-theme
6, jdupes
7, roundedIcons ? false
8, blackPanelIcons ? false
9, allColorVariants ? false
10, colorVariants ? [ ]
11,
12}:
13let pname = "Fluent-icon-theme";
14in
15lib.checkListOfEnum "${pname}: available color variants" [ "standard" "green" "grey" "orange" "pink" "purple" "red" "yellow" "teal" ] colorVariants
16
17stdenvNoCC.mkDerivation rec {
18 inherit pname;
19 version = "2024-02-25";
20
21 src = fetchFromGitHub {
22 owner = "vinceliuice";
23 repo = pname;
24 rev = version;
25 hash = "sha256-Cadp2+4kBZ74kdD5x0O85FszxvN6/sg6yccxughyX1Q";
26 };
27
28 nativeBuildInputs = [ gtk3 jdupes ];
29
30 buildInputs = [ hicolor-icon-theme ];
31
32 # Unnecessary & slow fixup's
33 dontPatchELF = true;
34 dontRewriteSymlinks = true;
35 dontDropIconThemeCache = true;
36
37 postPatch = ''
38 patchShebangs install.sh
39 '';
40
41 installPhase = ''
42 runHook preInstall
43
44 ./install.sh --dest $out/share/icons \
45 --name Fluent \
46 ${builtins.toString colorVariants} \
47 ${lib.optionalString allColorVariants "--all"} \
48 ${lib.optionalString roundedIcons "--round"} \
49 ${lib.optionalString blackPanelIcons "--black"}
50
51 jdupes --quiet --link-soft --recurse $out/share
52
53 runHook postInstall
54 '';
55
56 meta = with lib; {
57 description = "Fluent icon theme for linux desktops";
58 homepage = "https://github.com/vinceliuice/Fluent-icon-theme";
59 license = licenses.gpl3Plus;
60 platforms = platforms.linux;
61 maintainers = with maintainers; [ icy-thought ];
62 };
63}