dput-ng: fix eval (#364540)
[NixPkgs.git] / pkgs / by-name / ma / magnetic-catppuccin-gtk / package.nix
blob7f2dcb4650cc70c37a8e9ab380da6ffa48512551
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   gtk-engine-murrine,
6   jdupes,
7   sassc,
8   accent ? [ "default" ],
9   shade ? "dark",
10   size ? "standard",
11   tweaks ? [ ],
13 let
14   validAccents = [
15     "default"
16     "purple"
17     "pink"
18     "red"
19     "orange"
20     "yellow"
21     "green"
22     "teal"
23     "grey"
24     "all"
25   ];
26   validShades = [
27     "light"
28     "dark"
29   ];
30   validSizes = [
31     "standard"
32     "compact"
33   ];
34   validTweaks = [
35     "frappe"
36     "macchiato"
37     "black"
38     "float"
39     "outline"
40     "macos"
41   ];
43   single = x: lib.optional (x != null) x;
44   pname = "Catppuccin-GTK";
46 lib.checkListOfEnum "${pname} Valid theme accent(s)" validAccents accent lib.checkListOfEnum
47   "${pname} Valid shades"
48   validShades
49   (single shade)
50   lib.checkListOfEnum
51   "${pname} Valid sizes"
52   validSizes
53   (single size)
54   lib.checkListOfEnum
55   "${pname} Valid tweaks"
56   validTweaks
57   tweaks
59   stdenv.mkDerivation
60   {
61     pname = "magnetic-${lib.toLower pname}";
62     version = "0-unstable-2024-11-06";
64     src = fetchFromGitHub {
65       owner = "Fausto-Korpsvart";
66       repo = "Catppuccin-GTK-Theme";
67       rev = "be79b8289200aa1a17620f84dde3fe4c3b9c5998";
68       hash = "sha256-QItHmYZpe7BiPC+2CtFwiRXyMTG7+ex0sJTs63xmkAo=";
69     };
71     nativeBuildInputs = [
72       jdupes
73       sassc
74     ];
76     propagatedUserEnvPkgs = [ gtk-engine-murrine ];
78     postPatch = ''
79       find -name "*.sh" -print0 | while IFS= read -r -d ''' file; do
80         patchShebangs "$file"
81       done
82     '';
84     dontBuild = true;
86     installPhase = ''
87       runHook preInstall
89       mkdir -p $out/share/themes
91       ./themes/install.sh \
92         --name ${pname} \
93         ${toString (map (x: "--theme " + x) accent)} \
94         ${lib.optionalString (shade != null) ("--color " + shade)} \
95         ${lib.optionalString (size != null) ("--size " + size)} \
96         ${toString (map (x: "--tweaks " + x) tweaks)} \
97         --dest $out/share/themes
99       jdupes --quiet --link-soft --recurse $out/share
101       runHook postInstall
102     '';
104     meta = with lib; {
105       description = "GTK Theme with Catppuccin colour scheme";
106       homepage = "https://github.com/Fausto-Korpsvart/Catppuccin-GTK-Theme";
107       license = licenses.gpl3Only;
108       maintainers = with maintainers; [ icy-thought ];
109       platforms = platforms.all;
110     };
111   }