final: prev: rec { nerd-fonts = let mkNerdFont = final.callPackage ../lib/mkNerdFont.nix {}; in prev.nerd-fonts // { iosevka = mkNerdFont { font = iosevka; extraArgs = [ "--name {/.}-NFM" "--use-single-width-glyphs" ]; }; }; iosevka = prev.iosevka.override { set = "custom"; /* Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md Use `term` spacing to avoid dashed arrow issue https://github.com/ryanoasis/nerd-fonts/issues/1018 */ privateBuildPlan = { family = "Iosevka"; noLigation = true; serifs = "sans"; spacing = "term"; variants = { design = { ampersand = "et-tailed"; capital-q = "crossing"; capital-z = "straight-serifless-with-crossbar"; cent = "open"; dollar = "open"; lig-double-arrow-bar = "with-notch"; lig-equal-chain = "with-notch"; lig-hyphen-chain = "with-notch"; lig-plus-chain = "with-notch"; lig-single-arrow-bar = "with-notch"; lower-lambda = "tailed-turn"; number-sign = "slanted"; percent = "rings-continuous-slash-also-connected"; seven = "straight-serifless-crossbar"; }; italic = { v = "cursive-serifless"; w = "cursive-serifless"; }; }; weights = { Bold = { shape = 680; menu = 680; css = 680; }; Regular = { shape = 480; menu = 480; css = 480; }; }; widths = { Extended = { shape = 600; menu = 7; css = "expanded"; }; Normal = { shape = 500; menu = 5; css = "normal"; }; }; slopes = { Upright = { angle = 0; css = "normal"; menu = "upright"; shape = "upright"; }; Italic = { angle = 9.4; shape = "italic"; menu = "italic"; css = "italic"; }; }; }; }; }