> Co-authored-by: paring <paringchan@proton.me>
This commit is contained in:
parent
f6a01b5957
commit
9d233c7b04
1 changed files with 138 additions and 74 deletions
|
|
@ -1,95 +1,159 @@
|
|||
{ stdenv }:
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
symlinkJoin,
|
||||
}:
|
||||
|
||||
let
|
||||
homepage = "https://colorfulstage.com/media/download/";
|
||||
pnameBase = "pjsk-cursor";
|
||||
version = "1.0.0";
|
||||
|
||||
mkCursor = { name, src }:
|
||||
stdenv.mkDerivation rec {
|
||||
inherit name src;
|
||||
version = "1.0.0";
|
||||
meta = {
|
||||
description = "Project Sekai cursor theme";
|
||||
inherit homepage;
|
||||
};
|
||||
|
||||
mkCursor =
|
||||
{ pname, src }:
|
||||
stdenv.mkDerivation {
|
||||
inherit
|
||||
pname
|
||||
src
|
||||
version
|
||||
meta
|
||||
;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -dm 0755 $out/share/icons/${name}
|
||||
install -dm 0755 $out/share/icons/${pname}
|
||||
|
||||
cp -rf . $out/share/icons/${name}
|
||||
cp -rf . $out/share/icons/${pname}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Project Sekai cursor theme";
|
||||
inherit homepage;
|
||||
};
|
||||
};
|
||||
|
||||
makeVariant = group: character:
|
||||
{
|
||||
ani = mkCursor {
|
||||
name = "pjsk-cursor-${group}-${character}-ani";
|
||||
src = ../../assets/${group}-${character}-ani.tar.gz;
|
||||
};
|
||||
makeVariant =
|
||||
group: character:
|
||||
let
|
||||
pnameVariant = "${pnameBase}-${group}-${character}";
|
||||
variants = {
|
||||
ani = mkCursor {
|
||||
pname = "${pnameVariant}-ani";
|
||||
src = ../../assets/${group}-${character}-ani.tar.gz;
|
||||
};
|
||||
|
||||
cur = mkCursor {
|
||||
name = "pjsk-cursor-${group}-${character}-cur";
|
||||
src = ../../assets/${group}-${character}-cur.tar.gz;
|
||||
cur = mkCursor {
|
||||
pname = "${pnameVariant}-cur";
|
||||
src = ../../assets/${group}-${character}-cur.tar.gz;
|
||||
};
|
||||
};
|
||||
in
|
||||
symlinkJoin {
|
||||
pname = pnameVariant;
|
||||
inherit version meta;
|
||||
|
||||
paths = lib.attrsets.attrValues variants;
|
||||
passthru = variants;
|
||||
};
|
||||
|
||||
makeGroup = group: characters:
|
||||
builtins.listToAttrs (map (character: {
|
||||
name = character;
|
||||
value = makeVariant group character;
|
||||
}) characters);
|
||||
makeGroup =
|
||||
group: characters:
|
||||
let
|
||||
pname = "${pnameBase}-${group}";
|
||||
cursors = builtins.listToAttrs (
|
||||
map (character: {
|
||||
name = character;
|
||||
value = makeVariant group character;
|
||||
}) characters
|
||||
);
|
||||
|
||||
mkCursorVariantJoin =
|
||||
pname: selector:
|
||||
symlinkJoin {
|
||||
inherit pname version meta;
|
||||
|
||||
paths = lib.mapAttrsToList (name: selector) cursors;
|
||||
};
|
||||
|
||||
in
|
||||
symlinkJoin {
|
||||
inherit pname version meta;
|
||||
|
||||
paths = lib.attrsets.attrValues cursors;
|
||||
passthru = cursors // {
|
||||
cur = mkCursorVariantJoin "${pname}-cur" (cursor: cursor.cur);
|
||||
ani = mkCursorVariantJoin "${pname}-ani" (cursor: cursor.ani);
|
||||
};
|
||||
};
|
||||
groups = {
|
||||
leoneed = makeGroup "leoneed" [
|
||||
"honami"
|
||||
"ichika"
|
||||
"miku"
|
||||
"saki"
|
||||
"shiho"
|
||||
];
|
||||
|
||||
mmj = makeGroup "mmj" [
|
||||
"airi"
|
||||
"haruka"
|
||||
"miku"
|
||||
"minori"
|
||||
"shizuku"
|
||||
];
|
||||
|
||||
n25 = makeGroup "n25" [
|
||||
"ena"
|
||||
"kanade"
|
||||
"mafuyu"
|
||||
"miku"
|
||||
"mizuki"
|
||||
];
|
||||
|
||||
vbs = makeGroup "vbs" [
|
||||
"akito"
|
||||
"an"
|
||||
"kohane"
|
||||
"miku"
|
||||
"toya"
|
||||
];
|
||||
|
||||
virtualsinger = makeGroup "virtualsinger" [
|
||||
"kaito"
|
||||
"len"
|
||||
"luka"
|
||||
"meiko"
|
||||
"miku"
|
||||
"rin"
|
||||
];
|
||||
|
||||
wxs = makeGroup "wxs" [
|
||||
"emu"
|
||||
"miku"
|
||||
"nene"
|
||||
"rui"
|
||||
"tsukasa"
|
||||
];
|
||||
};
|
||||
|
||||
mkGroupVariantJoin =
|
||||
pname: selector:
|
||||
symlinkJoin {
|
||||
inherit pname version meta;
|
||||
|
||||
paths = lib.mapAttrsToList (name: selector) groups;
|
||||
};
|
||||
in
|
||||
{
|
||||
leoneed = makeGroup "leoneed" [
|
||||
"honami"
|
||||
"ichika"
|
||||
"miku"
|
||||
"saki"
|
||||
"shiho"
|
||||
];
|
||||
|
||||
mmj = makeGroup "mmj" [
|
||||
"airi"
|
||||
"haruka"
|
||||
"miku"
|
||||
"minori"
|
||||
"shizuku"
|
||||
];
|
||||
|
||||
n25 = makeGroup "n25" [
|
||||
"ena"
|
||||
"kanade"
|
||||
"mafuyu"
|
||||
"miku"
|
||||
"mizuki"
|
||||
];
|
||||
|
||||
vbs = makeGroup "vbs" [
|
||||
"akito"
|
||||
"an"
|
||||
"kohane"
|
||||
"miku"
|
||||
"toya"
|
||||
];
|
||||
|
||||
virtualsinger = makeGroup "virtualsinger" [
|
||||
"kaito"
|
||||
"len"
|
||||
"luka"
|
||||
"meiko"
|
||||
"miku"
|
||||
"rin"
|
||||
];
|
||||
|
||||
wxs = makeGroup "wxs" [
|
||||
"emu"
|
||||
"miku"
|
||||
"nene"
|
||||
"rui"
|
||||
"tsukasa"
|
||||
];
|
||||
}
|
||||
symlinkJoin {
|
||||
pname = pnameBase;
|
||||
inherit version meta;
|
||||
paths = lib.attrsets.attrValues groups;
|
||||
passthru = groups // {
|
||||
cur = mkGroupVariantJoin "${pnameBase}-cur" (group: group.cur);
|
||||
ani = mkGroupVariantJoin "${pnameBase}-ani" (group: group.ani);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue