{
  config,
  lib,
  pkgs,
  ...
}: let
  inherit (lib) attrValues mkIf;

  cfg = config.roles.base;
in {
  config = mkIf cfg.enable {
    fonts = {
      fontconfig = {
        enable = true;
        defaultFonts = {
          emoji = ["Noto Color Emoji"];
          monospace = ["JetBrainsMono Nerd Font"];
          sansSerif = ["Noto Nerd Font"];
          serif = ["Noto Nerd Font"];
        };
      };

      packages = attrValues {
        jetbrainsMono = pkgs.jetbrains-mono;
        jetbrainsMonoNF = pkgs.nerd-fonts.jetbrains-mono;

        inherit
          (pkgs)
          noto-fonts
          noto-fonts-cjk-sans
          noto-fonts-emoji
          liberation_ttf
          font-awesome
          meslo-lgs-nf
          ubuntu_font_family
          ;

        inherit
          (pkgs.nerd-fonts)
          go-mono
          iosevka
          symbols-only
          space-mono
          ubuntu
          noto
          ;
      };
    };

    # Select internationalisation properties.
    i18n.defaultLocale = "en_CA.UTF-8";
    console.useXkbConfig = true;
  };

  # For accurate stack trace
  _file = ./default.nix;
}