83 lines
2.1 KiB
Nix
83 lines
2.1 KiB
Nix
{pkgs, ...}: let
|
|
inherit (builtins) mapAttrs;
|
|
|
|
custom-iosevka = pkgs.iosevka.override {
|
|
privateBuildPlan = {
|
|
family = "Iosevka Custom";
|
|
spacing = "normal";
|
|
serifs = "sans";
|
|
|
|
noCvSs = true;
|
|
exportGlyphNames = false;
|
|
variants.inherits = "ss15";
|
|
ligations.inherits = "dlig";
|
|
};
|
|
set = "Fancy";
|
|
};
|
|
in {
|
|
# A (somewhat) sane list of fonts to be installed.
|
|
fonts = {
|
|
fontconfig = {
|
|
# Whether to enable fontconfig configuration. This will, for
|
|
# example, allow fontconfig to discover fonts and configurations
|
|
# installed through home.packages and nix-env.
|
|
enable = true;
|
|
|
|
# Enable font antialiasing.
|
|
antialias = true;
|
|
|
|
# Enable font hinting. Hinting aligns glyphs to pixel boundaries
|
|
# to improve rendering sharpness at low resolution.
|
|
hinting.enable = true;
|
|
# Set the defalt fonts. This was taken from raf,
|
|
# many thanks.
|
|
defaultFonts = let
|
|
common = [
|
|
"Iosevka Nerd Font"
|
|
"Roboto Mono Nerd Font"
|
|
"Fira Code Nerd Font"
|
|
"Symbols Nerd Font"
|
|
"Noto Color Emoji"
|
|
];
|
|
in
|
|
mapAttrs (_: fonts: fonts ++ common) {
|
|
serif = ["Noto Serif"];
|
|
sansSerif = ["Lexend"];
|
|
emoji = ["Noto Color Emoji"];
|
|
monospace = ["Iosevka Nerd Font"];
|
|
};
|
|
};
|
|
packages = builtins.attrValues {
|
|
inherit
|
|
(pkgs)
|
|
# custom-iosevka
|
|
material-icons
|
|
material-design-icons
|
|
papirus-icon-theme
|
|
lexend
|
|
noto-fonts
|
|
noto-fonts-cjk-sans
|
|
noto-fonts-cjk-serif
|
|
noto-fonts-color-emoji
|
|
corefonts
|
|
font-awesome
|
|
;
|
|
inherit
|
|
(pkgs.nerd-fonts)
|
|
iosevka
|
|
jetbrains-mono
|
|
comic-shanns-mono
|
|
symbols-only
|
|
;
|
|
};
|
|
fontDir = {
|
|
# Whether to create a directory with links to all fonts in
|
|
# /run/current-system/sw/share/X11/fonts
|
|
enable = true;
|
|
|
|
# Whether to decompress fonts in
|
|
# /run/current-system/sw/share/X11/fonts
|
|
decompressFonts = true;
|
|
};
|
|
};
|
|
}
|