nixos-config/modules/fonts.nix

119 lines
3.0 KiB
Nix
Raw Normal View History

2020-12-05 13:48:06 +01:00
{ config, lib, pkgs, ... }:
let
iosevka-sbruder = pkgs.iosevka.override {
privateBuildPlan = {
family = "Iosevka sbruder";
spacing = "term";
serifs = "sans";
no-cv-ss = false;
export-glyph-names = true;
2020-08-22 17:44:39 +02:00
variants = {
inherits = "ss20";
design = {
capital-g = "toothless-rounded-serifless-hooked";
four = "closed";
six = "closed-contour";
nine = "closed-contour";
number-sign = "upright-tall";
at = "short";
cent = "open";
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";
};
};
widths = {
# ensures that extended wont get built
normal = {
shape = 500;
menu = 5;
css = "normal";
};
};
};
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 {
2020-08-22 17:44:39 +02:00
fonts = {
fonts = with pkgs; [
iosevka-sbruder-nerd-font
] ++ lib.optionals config.sbruder.full [
2020-08-22 17:44:39 +02:00
google-fonts # google font collection (free)
2020-10-11 13:02:48 +02:00
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
2020-08-22 17:44:39 +02:00
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>
'';
2020-08-22 17:44:39 +02:00
};
};
}