> 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,49 +1,95 @@
|
||||||
{ stdenv }:
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
symlinkJoin,
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
homepage = "https://colorfulstage.com/media/download/";
|
homepage = "https://colorfulstage.com/media/download/";
|
||||||
|
pnameBase = "pjsk-cursor";
|
||||||
mkCursor = { name, src }:
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
inherit name src;
|
|
||||||
version = "1.0.0";
|
version = "1.0.0";
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
install -dm 0755 $out/share/icons/${name}
|
|
||||||
|
|
||||||
cp -rf . $out/share/icons/${name}
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Project Sekai cursor theme";
|
description = "Project Sekai cursor theme";
|
||||||
inherit homepage;
|
inherit homepage;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkCursor =
|
||||||
|
{ pname, src }:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
inherit
|
||||||
|
pname
|
||||||
|
src
|
||||||
|
version
|
||||||
|
meta
|
||||||
|
;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -dm 0755 $out/share/icons/${pname}
|
||||||
|
|
||||||
|
cp -rf . $out/share/icons/${pname}
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
makeVariant = group: character:
|
makeVariant =
|
||||||
{
|
group: character:
|
||||||
|
let
|
||||||
|
pnameVariant = "${pnameBase}-${group}-${character}";
|
||||||
|
variants = {
|
||||||
ani = mkCursor {
|
ani = mkCursor {
|
||||||
name = "pjsk-cursor-${group}-${character}-ani";
|
pname = "${pnameVariant}-ani";
|
||||||
src = ../../assets/${group}-${character}-ani.tar.gz;
|
src = ../../assets/${group}-${character}-ani.tar.gz;
|
||||||
};
|
};
|
||||||
|
|
||||||
cur = mkCursor {
|
cur = mkCursor {
|
||||||
name = "pjsk-cursor-${group}-${character}-cur";
|
pname = "${pnameVariant}-cur";
|
||||||
src = ../../assets/${group}-${character}-cur.tar.gz;
|
src = ../../assets/${group}-${character}-cur.tar.gz;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in
|
||||||
|
symlinkJoin {
|
||||||
|
pname = pnameVariant;
|
||||||
|
inherit version meta;
|
||||||
|
|
||||||
makeGroup = group: characters:
|
paths = lib.attrsets.attrValues variants;
|
||||||
builtins.listToAttrs (map (character: {
|
passthru = variants;
|
||||||
|
};
|
||||||
|
|
||||||
|
makeGroup =
|
||||||
|
group: characters:
|
||||||
|
let
|
||||||
|
pname = "${pnameBase}-${group}";
|
||||||
|
cursors = builtins.listToAttrs (
|
||||||
|
map (character: {
|
||||||
name = character;
|
name = character;
|
||||||
value = makeVariant group character;
|
value = makeVariant group character;
|
||||||
}) characters);
|
}) characters
|
||||||
in
|
);
|
||||||
{
|
|
||||||
|
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" [
|
leoneed = makeGroup "leoneed" [
|
||||||
"honami"
|
"honami"
|
||||||
"ichika"
|
"ichika"
|
||||||
|
|
@ -92,4 +138,22 @@ in
|
||||||
"rui"
|
"rui"
|
||||||
"tsukasa"
|
"tsukasa"
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
mkGroupVariantJoin =
|
||||||
|
pname: selector:
|
||||||
|
symlinkJoin {
|
||||||
|
inherit pname version meta;
|
||||||
|
|
||||||
|
paths = lib.mapAttrsToList (name: selector) groups;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
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