{
  pkgs,
  config,
  ...
}: {
  programs.wezterm = {
    enable = true;
    colorSchemes = {
      "${config.colorscheme.slug}" = with config.colorScheme; {
        foreground = "#${colors.base05}";
        background = "#${colors.base00}";

        ansi = [
          "#${colors.base00}"
          "#${colors.base08}"
          "#${colors.base0B}"
          "#${colors.base0A}"
          "#${colors.base0D}"
          "#${colors.base0E}"
          "#${colors.base0C}"
          "#${colors.base05}"
        ];
        brights = [
          "#${colors.base03}"
          "#${colors.base08}"
          "#${colors.base0B}"
          "#${colors.base0A}"
          "#${colors.base0D}"
          "#${colors.base0E}"
          "#${colors.base0C}"
          "#${colors.base07}"
        ];
        cursor_fg = "#${colors.base00}";
        cursor_bg = "#${colors.base05}";
        selection_fg = "#${colors.base00}";
        selection_bg = "#${colors.base05}";
      };
    };
    extraConfig = ''
      return {
        warn_about_missing_glyphs=false,
        font = wezterm.font("${config.fontProfiles.monospace.family}"),
        font_size = 12.0,
        window_background_opacity = 0.83,
        color_scheme = "${config.colorscheme.slug}",
        hide_tab_bar_if_only_one_tab = true,
        window_close_confirmation = "NeverPrompt",
        set_environment_variables = {
          TERM = 'wezterm',
        },
      }
    '';
  };
}