{ lib, config, pkgs, ... }:
let
  userName = "jaci";
  fullName = "Jaci Anderson";
  email = "jaci.s.anderson@gmail.com";
in
{
  # nixpkgs.overlays = [
  #   inputs.nur.overlay
  # ];

  # nixpkgs.config.allowUnfree = true;
  # inputs.nixpkgs-stable.config.allowUnfree = true;
  # options.homeConfig = {
  #   userName = lib.mkOption {
  #       type = lib.types.str;
  #       description = "Main username for system";
  #   };
  #   hostName = lib.mkOption {
  #       type = lib.types.str;
  #       description = "Hostname for system";
  #   };
  #   fullName = lib.mkOption {
  #       type = lib.types.str;
  #       description = "Hostname for system";
  #   };
  # };

  home.username = userName;
  home.homeDirectory = "/home/${userName}";

  programs.home-manager.enable = true;

  home.stateVersion = "23.11"; # Please read the comment before changing.

  fonts.fontconfig.enable = true;
  home.packages = with pkgs; [
    helix
    jq

    #
    # Better Unix
    #
    bat
    duf
    fd
    fzf
    lsd
    ripgrep
    tre-command
    gtop
    htop
    neofetch

    # Normies
    unzip

    imv
    mpv
    ffmpeg
  ];

  home.file."${config.xdg.configHome}" = {
    source = ../../dotfiles;
    recursive = true;
  };

  home.sessionVariables = {
    EDITOR = "hx";
  };

  # Git setup
  programs.git = {
      enable = true;
      userEmail = email;
      userName = fullName;
  };

  programs = {
    direnv = {
      enable = true;
      enableZshIntegration = true; # see note on other shells below
      nix-direnv.enable = true;
    };
    bash.enable = true; # see note on other shells below
  };

  # Zsh setup
  programs.zsh = {
      enable = true;
      oh-my-zsh = {
          enable = true;
          plugins = [ "git" ];
          theme = "half-life";
      };
      initExtra = ''
          eval "$(direnv hook zsh)"

          alias ls="lsd"
          alias l="lsd --almost-all --long"
          alias llm="lsd --timesort --long"
          alias lS="lsd --oneline --classic"
          alias lt="lsd --tree --depth=2"
          alias grep="rg"
       '';
  };

}