This commit is contained in:
2026-09-01 10:45:21 -04:00
commit ac32649783
51 changed files with 4837 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
{ inputs, ... }:
{
perSystem =
{
pkgs,
...
}:
let
makeV2Package =
name:
(pkgs.callPackage ./package.nix {
inherit inputs name;
});
in
{
packages = {
affinity-photo = makeV2Package "Photo";
affinity-designer = makeV2Package "Designer";
affinity-publisher = makeV2Package "Publisher";
};
};
}
+71
View File
@@ -0,0 +1,71 @@
{
makeDesktopItem,
lib,
photo ? null,
publisher ? null,
designer ? null,
}:
{
photo = makeDesktopItem rec {
desktopName = "Affinity Photo 2";
name = "affinity-photo";
exec = "${lib.getExe photo} %U";
icon = name;
type = "Application";
categories = [ "Graphics" ];
keywords = [
"Graphics"
"2DGraphics"
"RasterGraphics"
"image"
"editor"
"vector"
"drawing"
];
mimeTypes = [ "application/afphoto" ];
startupWMClass = "photo.exe";
};
designer = makeDesktopItem rec {
desktopName = "Affinity Designer 2";
name = "affinity-designer";
exec = "${lib.getExe designer} %U";
icon = name;
type = "Application";
categories = [ "Graphics" ];
keywords = [
"Graphics"
"2DGraphics"
"VectorGraphics"
"image"
"editor"
"vector"
"drawing"
];
mimeTypes = [ "application/afdesign" ];
startupWMClass = "designer.exe";
};
publisher = makeDesktopItem rec {
desktopName = "Affinity Publisher 2";
name = "affinity-publisher";
exec = "${lib.getExe publisher} %U";
icon = name;
type = "Application";
categories = [ "Graphics" ];
keywords = [
"Graphics"
"2DGraphics"
"RasterGraphics"
"VectorGraphics"
"image"
"editor"
"vector"
"drawing"
];
mimeTypes = [
"application/afdesign"
"application/afphoto"
# Note that there is no mime type for a `.afpub` file
];
startupWMClass = "publisher.exe";
};
}
+35
View File
@@ -0,0 +1,35 @@
{
fetchurl,
pkgs,
lib,
}:
rec {
icons = {
photo = fetchurl {
url = "https://cdn.serif.com/store/img/logos/affinity-photo-2-020520191502.svg";
sha256 = "04bnf12znp9dgkwpk46c01381cw298gq14ga7j7dwccyl3m556d7";
};
designer = fetchurl {
url = "https://cdn.serif.com/store/img/logos/affinity-designer-2-020520191502.svg";
sha256 = "025j4aq8py2a5r34hx39nlhdmps06z6506h7wxchyxbbz6xz3d11";
};
publisher = fetchurl {
url = "https://cdn.serif.com/store/img/logos/affinity-publisher-2-020520191502.svg";
sha256 = "16ghh3mc2vjhvphbyy9zgan066ccp3xj1ilb6z5lmvsb94dp37aj";
};
};
mkIconPackageFor =
name:
pkgs.runCommand "${name}-icons" { } ''
mkdir -p $out/share/icons/hicolor/{256x256,scalable}/apps
cp ${icons.${lib.toLower name}} \
$out/share/icons/hicolor/scalable/apps/affinity-${lib.toLower name}.svg
${lib.getExe pkgs.inkscape} \
-w 256 -h 256 \
${icons.${lib.toLower name}} \
-o - > $out/share/icons/hicolor/256x256/apps/affinity-${lib.toLower name}.png
'';
}
+59
View File
@@ -0,0 +1,59 @@
{
symlinkJoin,
callPackage,
lib,
name,
inputs,
...
}:
let
wine-packages = callPackage ../wine/packages.nix {
inherit inputs;
};
apl-combined = callPackage ../apl/apl-combined.nix {
src = inputs.plugin-loader-src;
};
prefixBase = callPackage ../prefixWithAffinity.nix {
inherit inputs wine-packages apl-combined;
v3 = false;
};
runner = callPackage ../runner/package.nix {
inherit
prefixBase
inputs
wine-packages
name
;
registry-patches = (callPackage ../registry-patches.nix { }).combined;
};
desktop = callPackage ./desktopItems.nix {
${lib.toLower name} = runner.package;
};
icons = callPackage ./icons.nix { };
icon-package = icons.mkIconPackageFor name;
# last version of affinity v2 released
lastV2Version = "2.6.5";
in
symlinkJoin {
name = "affinity-${lib.toLower name}-${lastV2Version}";
pname = "affinity-${lib.toLower name}";
paths = [
runner.package
desktop.${lib.toLower name}
icon-package
];
meta = {
mainProgram = "affinity-${lib.toLower name}";
description = "Affinity ${name} ${lastV2Version}";
license = lib.licenses.unfree;
homepage = "https://affinity.serif.com/";
platforms = [ "x86_64-linux" ];
};
}