{ pkgs, ... }:
{
  fonts = {
    enableDefaultFonts = true;

    # extra font packages
    fonts = with pkgs; [
      corefonts
      noto-fonts
      noto-fonts-cjk
      noto-fonts-emoji
      noto-fonts-lgc-plus
      dejavu_fonts
      liberation_ttf
      mplus-outline-fonts.githubRelease
      dina-font
      proggyfonts
      open-fonts
      open-sans
      gyre-fonts
      font-awesome
      source-han-sans
      vistafonts
      inconsolata # monospaced
      vazir-fonts # persian font
      unifont # some international languages
      # nerd fonts
      (nerdfonts.override {
        fonts = [
          "Hack"
          "FiraCode"
          "DroidSansMono"
        ];
      })
    ];

    fontDir.enable = true;

    fontconfig = {
      enable = true;
      defaultFonts = {
        serif = [ "Noto Serif" ];
        sansSerif = [ "Noto Sans" ];
        emoji = [ "Noto Color Emoji" ];
        monospace = [ "Noto Sans Mono" "Noto Sans" "Noto Color Emoji" ];
      };
    };
  };
}