{
  config,
  lib,
  pkgs,
  ...
}: {
  programs = {
    command-not-found.enable = false;

    git = {
      enable = true;
      lfs.enable = true;
    };

    nix-index = {
      enable = true;
      enableBashIntegration = true;
    };

    direnv.enable = true;

    bash = {
      promptInit = ''
        if [[ -v SSH_CLIENT && -v SSH_CONNECTION && -v SSH_TTY ]]; then
          PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
        else
          PS1='\[\033[01;34m\]\w\[\033[00m\]\$ '
        fi
      '';
      interactiveShellInit = ''
        shopt -s histappend
        HISTCONTROL='ignoredups:ignorespace'
        HISTSIZE=1000
        HISTFILESIZE=10000

        shopt -s globstar
        shopt -s nullglob
        shopt -s extglob

        shopt -s checkwinsize

        eval "$(${lib.getExe config.programs.direnv.package} hook bash)"
      '';
    };
  };

  environment = {
    systemPackages = [
      pkgs.bottom
      pkgs.comma
      pkgs.helix
    ];

    variables = {
      EDITOR = lib.getExe pkgs.helix;
      VISUAL = lib.getExe pkgs.helix;
    };
  };
}