nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
2023-04-28 13:48:48 +02:00

68 lines
2.8 KiB
Nix

{ lib, iosevka, fetchFromSourcehut, fetchFromGitHub, buildNpmPackage }:
let
sets = [
# Family | Shapes | Spacing | Style | Ligatures |
# ------------------------+--------+---------+------------+-----------|
"comfy" # Sans | Compact | Monospaced | Yes |
"comfy-fixed" # Sans | Compact | Monospaced | No |
"comfy-duo" # Sans | Compact | Duospaced | Yes |
# ------------------------+--------+---------+------------+-----------|
"comfy-motion" # Slab | Compact | Monospaced | Yes |
"comfy-motion-fixed" # Slab | Compact | Monospaced | No |
"comfy-motion-duo" # Slab | Compact | Duospaced | Yes |
# ------------------------+--------+---------+------------+-----------|
"comfy-wide" # Sans | Wide | Monospaced | Yes |
"comfy-wide-fixed" # Sans | Wide | Monospaced | No |
"comfy-wide-duo" # Sans | Wide | Duospaced | Yes |
# ------------------------+--------+---------+------------+-----------|
"comfy-wide-motion" # Slab | Wide | Monospaced | Yes |
"comfy-wide-motion-fixed" # Slab | Wide | Monospaced | No |
"comfy-wide-motion-duo" # Slab | Wide | Duospaced | Yes |
];
version = "1.2.0";
src = fetchFromSourcehut {
owner = "~protesilaos";
repo = "iosevka-comfy";
rev = version;
sha256 = "sha256-gHDERf3eDsb59wz+kGa2wLY7RDRWs2woi5P2rZDYjL0=";
};
privateBuildPlan = src.outPath + "/private-build-plans.toml";
makeIosevkaFont = set:
let superBuildNpmPackage = buildNpmPackage; in
(iosevka.override rec {
inherit set privateBuildPlan;
buildNpmPackage = args: superBuildNpmPackage
(args // {
inherit version;
src = fetchFromGitHub {
owner = "be5invis";
repo = "iosevka";
rev = "d3b461432137b36922e41322c2e45a2401e727a5";
hash = "sha256-Sm+eG6ovVLmvKvQFEZblQV3jCLQRrc9Gga3pukwteLE=";
};
npmDepsHash = "sha256-pikpi9eyo1a+AFLr7BMl1kegy3PgYFjzmE3QJqPXpNM=";
meta = with lib; {
inherit (src.meta) homepage;
description = ''
Customised build of the Iosevka typeface, with a consistent
rounded style and overrides for almost all individual glyphs
in both roman (upright) and italic (slanted) variants.
'';
license = licenses.ofl;
platforms = iosevka.meta.platforms;
maintainers = [ maintainers.DamienCassou ];
};
});
});
in
builtins.listToAttrs (builtins.map
(set: {
name = set;
value = makeIosevkaFont set;
})
sets)