blob: 1a46f4370bfb71539a9c8f36a383d2d388b7f27d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
{ lib
, stdenvNoCC
, fetchFromGitHub
, inkscape
, just
, xcursorgen
, hyprcursor
}:
let
dimensions = {
palette = [ "frappe" "latte" "macchiato" "mocha" ];
color = [ "Blue" "Dark" "Flamingo" "Green" "Lavender" "Light" "Maroon" "Mauve" "Peach" "Pink" "Red" "Rosewater" "Sapphire" "Sky" "Teal" "Yellow" ];
};
variantName = { palette, color }: palette + color;
variants = lib.mapCartesianProduct variantName dimensions;
version = "0.3.0";
in
stdenvNoCC.mkDerivation {
pname = "catppuccin-cursors";
inherit version;
src = fetchFromGitHub {
owner = "catppuccin";
repo = "cursors";
rev = "v${version}";
hash = "sha256-LJyBnXDUGBLOD4qPI7l0YC0CcqYTtgoMJc1H2yLqk9g=";
};
nativeBuildInputs = [ just inkscape xcursorgen hyprcursor ];
outputs = variants ++ [ "out" ]; # dummy "out" output to prevent breakage
outputsToInstall = [];
buildPhase = ''
runHook preBuild
patchShebangs .
just all_with_hyprcursor
runHook postBuild
'';
installPhase = ''
runHook preInstall
for output in $(getAllOutputNames); do
if [ "$output" != "out" ]; then
local outputDir="''${!output}"
local iconsDir="$outputDir"/share/icons
mkdir -p "$iconsDir"
# Convert to kebab case with the first letter of each word capitalized
local variant=$(sed 's/\([A-Z]\)/-\1/g' <<< "$output")
local variant=''${variant,,}
mv "dist/catppuccin-$variant-cursors" "$iconsDir"
fi
done
# Needed to prevent breakage
mkdir -p "$out"
runHook postInstall
'';
meta = {
description = "Catppuccin cursor theme based on Volantes";
homepage = "https://github.com/catppuccin/cursors";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ dixslyf ];
};
}
|