nixos-config/sets/fonts.nix

119 lines
3.3 KiB
Nix

{ pkgs, ... }:
{
fonts = {
fontconfig = {
enable = true;
defaultFonts = {
sansSerif = [ "Inter" ];
# Not really compatible with inter but i'm used to it
monospace = [ "Fira Code" ];
serif = [ "DejaVu Serif" ];
emoji = [
"Noto Color Emoji"
"Noto Emoji"
];
};
localConf = ''
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- For some reason websites really want ui font instead of default -->
<match target="pattern">
<test qual="any" name="family">
<string>ui-monospace</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>monospace</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family">
<string>system-ui</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>sans-serif</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family">
<string>BlinkMacSystemFont</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>sans-serif</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family">
<string>-apple-system</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>sans-serif</string>
</edit>
</match>
<match target="font">
<test name="family">
<string>Inter</string>
</test>
<edit name="fontfeatures" mode="append">
<string>tnum on</string>
<string>ss01 on</string>
<string>ss02 on</string>
</edit>
</match>
<match target="font">
<test name="family">
<string>Fira Code</string>
</test>
<edit name="fontfeatures" mode="append">
<string>cv06 on</string>
<string>ss02 on</string>
<string>ss04 on</string>
</edit>
</match>
</fontconfig>
'';
};
enableDefaultPackages = true;
packages =
with pkgs;
[
corefonts
dejavu_fonts
libertine
ocr-a
source-code-pro
source-sans-pro
source-serif-pro
# Code fonts
fira-code
iosevka
# UI fonts
b612
cantarell-fonts
inter
roboto
# Large multilingual fonts
fira-go
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
noto-fonts-extra
# Constructed languages
nasin-nanpa
# Weird symbols
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
]
++ (builtins.attrValues pkgs.extraFonts);
};
}