diff --git a/modules/style/fonts.nix b/modules/style/fonts.nix index 27df32d..1675458 100644 --- a/modules/style/fonts.nix +++ b/modules/style/fonts.nix @@ -3,23 +3,62 @@ pkgs, ... }: let - inherit (config.modules.system.fonts) extraFonts; inherit (config.modules.other.system) username; + inherit (builtins) mapAttrs; in { - # A (somewhat) sane list of default fonts to be installed. - fonts.packages = with pkgs; - [ - etBook + # 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" + "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 = with pkgs; [ + material-icons material-design-icons papirus-icon-theme - (nerdfonts.override {fonts = ["ComicShannsMono"];}) # ComicShanns my beloved + (nerdfonts.override {fonts = ["Iosevka" "JetBrainsMono" "ComicShannsMono" "NerdFontsSymbolsOnly"];}) + + lexend noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif noto-fonts-color-emoji corefonts - ] - ++ extraFonts; + ]; + 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; + }; + }; # this fixes emoji stuff home-manager.users.${username} = { fonts.fontconfig = { @@ -27,7 +66,6 @@ in { monospace = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; sansSerif = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; serif = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; - emoji = ["Noto Color Emoji"]; }; }; };