{
  inputs,
  pkgs,
  lib,
  config,
  ...
}:
let
  cfg = config.modules.fonts;
in
{
  options.modules.fonts = {
    enable = lib.mkEnableOption "fonts";
  };
  config.fonts = lib.mkIf cfg.enable {
    enableDefaultPackages = true;
    packages =
      with pkgs;
      [
        nerd-fonts.jetbrains-mono
        material-design-icons
        material-symbols
        googlesans-code
        nerd-fonts.caskaydia-cove
        nerd-fonts.noto
        noto-fonts-cjk-sans
        noto-fonts-cjk-serif
      ]
      ++ [
        (inputs.font-patcher.lib.patchFont {
          font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
          name = "Google Sans Code Nerd Font";
          inherit system;
        })
      ];
    fontDir.enable = true;
  };
}
