nixos-config/modules/fonts.nix
Simon Bruder b6a903551e
fonts: Use custom Iosevka variant
I don’t like the new defaults.
2022-12-10 16:09:10 +01:00

109 lines
2.8 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, lib, pkgs, ... }:
let
iosevka-sbruder = pkgs.iosevka.override {
privateBuildPlan = {
family = "Iosevka sbruder";
spacing = "normal";
serifs = "sans";
no-cv-ss = false;
export-glyph-names = true;
variants = {
inherits = "ss20";
design = {
capital-g = "toothless-rounded-serifless-hooked";
four = "closed";
six = "closed-contour";
eight = "two-circles";
nine = "closed-contour";
number-sign = "upright-tall";
percent = "dots";
lig-ltgteq = "slanted";
};
};
weights = {
regular = {
shape = 400;
menu = 400;
css = 400;
};
bold = {
shape = 700;
menu = 700;
css = 700;
};
};
slopes = {
upright = {
angle = 0;
shape = "upright";
menu = "upright";
css = "normal";
};
italic = {
angle = 9.4;
shape = "italic";
menu = "italic";
css = "italic";
};
};
};
set = "sbruder";
};
iosevka-sbruder-nerd-font = pkgs.runCommand "iosevka-sbruder-nerd-font" { } ''
${pkgs.parallel}/bin/parallel \
${pkgs.nerd-font-patcher}/bin/nerd-font-patcher \
--adjust-line-height \
--complete \
--careful \
--outputdir $out \
::: ${iosevka-sbruder}/share/fonts/truetype/*.ttf
'';
in
lib.mkIf config.sbruder.gui.enable {
fonts = {
fonts = with pkgs; [
iosevka-sbruder-nerd-font
] ++ lib.optionals config.sbruder.full [
google-fonts # google font collection (free)
lmodern # Latin Modern for non-latex applications
noto-fonts-emoji-blob-bin # The most owo emojis (thanks google for killing them)
source-han-sans
source-han-serif # CJK fonts
] ++ lib.optionals (!config.sbruder.full) [
roboto # default sans-serif font (normally included in google-fonts)
] ++ lib.optionals config.sbruder.unfree.allowAssets [
corefonts # good ol microsoft fonts
vistafonts # newer microsoft fonts
];
enableDefaultFonts = true;
fontconfig = {
defaultFonts = {
emoji = [ "Blobmoji" ];
monospace = [ "Iosevka Nerd Font" "Source Han Sans" ];
sansSerif = [ "Roboto" "Source Han Sans" ];
serif = [ "Georgia" "Source Han Serif" ];
};
localConf = /* xml */ ''
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<alias>
<family>system-ui</family>
<prefer>
<family>sans-serif</family>
</prefer>
</alias>
</fontconfig>
'';
};
};
}