{ stdenv, iosevka, nerd-font-patcher, }: let customBuildPlan = { noCvSs = true; exportGlyphNames = false; ligations.inherits = "dlig"; weights = { Regular = { shape = 400; menu = 400; css = 400; }; Bold = { shape = 700; menu = 700; css = 700; }; }; variants.design = { capital-g = "toothless-corner-serifless-hooked"; capital-j = "serifed-both-sides"; capital-q = "crossing"; capital-r = "curly-serifless"; e = "rounded"; f = "tailed"; g = "double-storey-open"; i = "tailed-serifed"; j = "serifed"; k = "cursive-serifless"; l = "tailed-serifed"; q = "diagonal-tailed-serifless"; y = "cursive-serifless"; z = "straight-serifless-with-horizontal-crossbar"; lower-delta = "flat-top"; lower-lambda = "tailed-turn"; lower-xi = "flat-top"; lower-chi = "semi-chancery-straight"; zero = "tall-slashed"; one = "no-base"; two = "straight-neck"; three = "flat-top"; four = "semi-open"; five = "oblique-arched"; six = "open-contour"; seven = "bend-serifless-crossbar"; eight = "two-circles"; nine = "open-contour"; asterisk = "hex-low"; underscore = "high"; caret = "high"; paren = "normal"; brace = "straight"; number-sign = "slanted"; ampersand = "closed"; at = "fourfold"; percent = "dots"; question = "corner"; lig-ltgteq = "flat"; lig-neq = "more-slanted"; lig-equal-chain = "without-notch"; lig-hyphen-chain = "without-notch"; lig-double-arrow-bar = "without-notch"; lig-single-arrow-bar = "without-notch"; }; }; in { etoile = rec { name = "Iosevka Custom Etoile"; package = iosevka.override { set = "etoile"; privateBuildPlan = { inherit (customBuildPlan) noCvSs exportGlyphNames variants weights; family = name; spacing = "quasi-proportional"; serifs = "slab"; }; }; }; aile = rec { name = "Iosevka Custom Aile"; package = iosevka.override { set = "aile"; privateBuildPlan = { inherit (customBuildPlan) noCvSs exportGlyphNames variants weights; family = name; spacing = "quasi-proportional"; serifs = "sans"; }; }; }; nerdfont = let font = iosevka.override { set = "custom"; privateBuildPlan = { inherit (customBuildPlan) noCvSs exportGlyphNames variants weights; family = "Iosevka Custom"; spacing = "normal"; serifs = "sans"; }; }; in { name = "IosevkaCustomNerdFont"; package = stdenv.mkDerivation { name = "${font.name}-nerd-font-patched"; src = font; nativeBuildInputs = [nerd-font-patcher]; buildPhase = '' find \( -name \*.ttf -o -name \*.otf \) -execdir nerd-font-patcher -c {} \; ''; installPhase = "cp -a . $out"; }; }; }