{ pkgs, config, lib, ... }: with lib; let cfg = config.voidconf.fontConfig; in { options.voidconf.fontConfig = { enable = mkEnableOption "Enable opinionated font configuration"; joyPixels = mkEnableOption "Enables the JoyPixels font"; }; config = mkIf cfg.enable { fonts = { fontDir.enable = true; packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" "Iosevka" ]; }) baekmuk-ttf blackout bqn386 fira fira-code font-awesome iosevka ipafont jetbrains-mono liberation_ttf libertine libertinus mononoki mplus-outline-fonts.githubRelease noto-fonts noto-fonts-emoji prociono ubuntu_font_family uiua386 vollkorn ]; fontconfig = { enable = true; includeUserConf = true; antialias = true; hinting.enable = true; defaultFonts = { serif = [ "Vollkorn" "Fira Code" "IPAMincho" "Baekmuk Headline" "Noto Color Emoji" ]; sansSerif = [ "FiraSans" "Fira Code" "IPAGothic" "Baekmuk Headline" "Noto Color Emoji" ]; monospace = [ "Fira Code" "JetBrains Mono" "Iosevka" "IPAGothic" "Baekmuk Headline" "Noto Color Emoji" ]; emoji = [ "Noto Color Emoji" (mkIf cfg.joyPixels "JoyPixels") ]; }; localConf = '' APL385 Unicode 100 BQN386 Unicode 100 Uiua386 100 ''; }; }; }; }