Add nerd-font patched version of custom Iosevka to fonts
Move all of the logic for configuring and building the custom fonts to iosevka.nix, to keep everything relevant in one place.
This commit is contained in:
parent
5260689aec
commit
7a10373030
|
@ -1,56 +1,109 @@
|
|||
{
|
||||
noCvSs = true;
|
||||
exportGlyphNames = false;
|
||||
ligations.inherits = "dlig";
|
||||
weights = {
|
||||
Regular = {
|
||||
shape = 400;
|
||||
menu = 400;
|
||||
css = 400;
|
||||
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;
|
||||
};
|
||||
};
|
||||
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";
|
||||
ampersand = "closed";
|
||||
at = "fourfold";
|
||||
percent = "dots";
|
||||
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";
|
||||
};
|
||||
};
|
||||
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";
|
||||
ampersand = "closed";
|
||||
at = "fourfold";
|
||||
percent = "dots";
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,7 +26,9 @@
|
|||
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
|
||||
};
|
||||
fonts = let
|
||||
iosevkaCustomBuildPlan = import ./iosevka.nix;
|
||||
iosevkaCustom = import ./iosevka.nix {
|
||||
inherit (pkgs) stdenv iosevka nerd-font-patcher;
|
||||
};
|
||||
in {
|
||||
sizes = {
|
||||
applications = 16;
|
||||
|
@ -34,42 +36,9 @@
|
|||
popups = 20;
|
||||
terminal = 16;
|
||||
};
|
||||
serif = rec {
|
||||
name = "Iosevka Custom Etoile";
|
||||
package = pkgs.iosevka.override {
|
||||
set = "etoile";
|
||||
privateBuildPlan = {
|
||||
inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights;
|
||||
family = name;
|
||||
spacing = "quasi-proportional";
|
||||
serifs = "slab";
|
||||
};
|
||||
};
|
||||
};
|
||||
sansSerif = rec {
|
||||
name = "Iosevka Custom Aile";
|
||||
package = pkgs.iosevka.override {
|
||||
set = "aile";
|
||||
privateBuildPlan = {
|
||||
inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights;
|
||||
family = name;
|
||||
spacing = "quasi-proportional";
|
||||
serifs = "sans";
|
||||
};
|
||||
};
|
||||
};
|
||||
monospace = rec {
|
||||
name = "Iosevka Custom";
|
||||
package = pkgs.iosevka.override {
|
||||
set = "custom";
|
||||
privateBuildPlan = {
|
||||
inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights;
|
||||
family = name;
|
||||
spacing = "normal";
|
||||
serifs = "sans";
|
||||
};
|
||||
};
|
||||
};
|
||||
serif = {inherit (iosevkaCustom.etoile) name package;};
|
||||
sansSerif = {inherit (iosevkaCustom.aile) name package;};
|
||||
monospace = {inherit (iosevkaCustom.nerdfont) name package;};
|
||||
emoji = {
|
||||
name = "Noto Color Emoji";
|
||||
package = pkgs.noto-fonts-emoji;
|
||||
|
|
Loading…
Reference in a new issue