{ pkgs, lib, ... }: let
  name = {
    type = lib.types.str;
    example = "Terminess Nerd Font";
  };
  size = {
    type = with lib.types; nullOr int;
    default = null;
  };
  packages = {
    type = with lib.types; listOf path;
    example = "[ pkgs.terminus-nerdfont ]";
  };
in {
  options.global.font = {
    sans = {
      size = lib.mkOption size;
      name = lib.mkOption (name // {
        default = "DeepMind Sans";
      });
      packages = lib.mkOption (packages // {
        default = [ pkgs.dm-sans ];
      });
    };

    monospace = {
      size = lib.mkOption size;
      name = lib.mkOption (name // {
        default = "Terminess Nerd Font";
      });
      packages = lib.mkOption (packages // {
        default = [ pkgs.terminus-nerdfont ];
      });
    };
  };
}
