diff options
Diffstat (limited to 'nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix')
-rw-r--r-- | nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix | 70 |
1 files changed, 36 insertions, 34 deletions
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix b/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix index b9bc042dd09c..47cdc6e8ce9c 100644 --- a/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix +++ b/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix @@ -2,69 +2,71 @@ , stdenvNoCC , fetchFromGitHub , gtk3 +, colloid-gtk-theme , gnome-themes-extra , gtk-engine-murrine +, python3 , sassc -, which -, tweaks ? [ ] +, accents ? [ "blue" ] , size ? "standard" +, tweaks ? [ ] +, variant ? "frappe" }: let + validAccents = [ "blue" "flamingo" "green" "lavender" "maroon" "mauve" "peach" "pink" "red" "rosewater" "sapphire" "sky" "teal" "yellow" ]; validSizes = [ "standard" "compact" ]; - validTweaks = [ "nord" "dracula" "black" "rimless" "normal" ]; - - unknownTweaks = lib.subtractLists validTweaks tweaks; - illegalMix = !(lib.elem "nord" tweaks) && !(lib.elem "dracula" tweaks); - - assertIllegal = lib.assertMsg illegalMix '' - Tweaks "nord" and "dracula" cannot be mixed. Tweaks: ${toString tweaks} - ''; - - assertSize = lib.assertMsg (lib.elem size validSizes) '' - You entered a wrong size: ${size} - Valid sizes are: ${toString validSizes} - ''; + validTweaks = [ "black" "rimless" "normal" ]; + validVariants = [ "latte" "frappe" "macchiato" "mocha" ]; - assertUnknown = lib.assertMsg (unknownTweaks == [ ]) '' - You entered wrong tweaks: ${toString unknownTweaks} - Valid tweaks are: ${toString validTweaks} - ''; + pname = "catppuccin-gtk"; in -assert assertIllegal; -assert assertSize; -assert assertUnknown; +lib.checkListOfEnum "${pname}: theme accent" validAccents accents +lib.checkListOfEnum "${pname}: color variant" validVariants [variant] +lib.checkListOfEnum "${pname}: size variant" validSizes [size] +lib.checkListOfEnum "${pname}: tweaks" validTweaks tweaks stdenvNoCC.mkDerivation rec { - pname = "catppuccin-gtk"; - version = "unstable-2022-08-01"; + inherit pname; + version = "0.4.1"; src = fetchFromGitHub { - repo = "gtk"; owner = "catppuccin"; - rev = "87a79fd2bf07accc694455df30a32a82b1b31f4f"; - sha256 = "sha256-dKHTQva0BYkO6VPNfY/pzRn/V1ghX+tYqbnM9hTAMeE="; + repo = "gtk"; + rev = "v${version}"; + sha256 = "sha256-dzRXt9/OdPyiy3mu9pmPYeu69OXCnR+zEqbD1C5BKqM="; }; - nativeBuildInputs = [ gtk3 sassc which ]; + nativeBuildInputs = [ gtk3 sassc ]; - buildInputs = [ gnome-themes-extra ]; + buildInputs = [ + gnome-themes-extra + (python3.withPackages (ps: [ ps.catppuccin ])) + ]; propagatedUserEnvPkgs = [ gtk-engine-murrine ]; + postUnpack = '' + rm -rf source/colloid + cp -r ${colloid-gtk-theme.src} source/colloid + chmod -R +w source/colloid + ''; + postPatch = '' - patchShebangs --build clean-old-theme.sh install.sh + patchShebangs --build colloid/clean-old-theme.sh colloid/install.sh ''; installPhase = '' runHook preInstall + mkdir -p $out/share/themes export HOME=$(mktemp -d) - mkdir -p $out/share/themes - bash install.sh -d $out/share/themes -t all \ - ${lib.optionalString (size != "") "-s ${size}"} \ - ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} + python3 install.py ${variant} \ + ${lib.optionalString (accents != []) "--accent " + builtins.toString accents} \ + ${lib.optionalString (size != []) "--size " + size} \ + ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \ + --dest $out/share/themes runHook postInstall ''; |