{ options
, config
, lib
, pkgs
, ...
}:
with lib;
with lib.metacfg;
let
  cfg = config.metacfg.base;
in
{
  options.metacfg.base = with types; {
    enable = mkBoolOpt false "Whether or not to enable the base config.";

  };

  config = mkIf cfg.enable {
    environment = {
      systemPackages = with pkgs; [
        alacritty
        age
        delta
        git
        git-crypt
        git-delete-merged-branches
        home-manager
        htop
        mosh
        nixpkgs-fmt
        openssl
        restic
        rrsync
        sops
        tmux
        vim
        wget
        starship
      ];
      shells = [ pkgs.fish pkgs.bash ];
    };

    programs = {
      bash = {
        ## shellInit = ''
        interactiveShellInit = ''
          bind '"\e[A": history-search-backward'
          bind '"\e[B": history-search-forward'
        '';
      };
      fish.enable = true;
    };

    security = {
      pam.enableSudoTouchIdAuth = true;
    };
  };
}