{ user, pkgs, ... }:
{
  home.packages = with pkgs; [ fd ];
  programs.direnv = {
    enable = true;
    enableZshIntegration = true;
    package = pkgs.direnv;
    nix-direnv = {
      enable = true;
      package = pkgs.nix-direnv;
    };
  };
  programs.zoxide = {
    enable = true;
    enableZshIntegration = true;
  };
  programs.zsh = {
    enable = true;
    autocd = false;
    enableCompletion = true;
    autosuggestion.enable = true;
    syntaxHighlighting.enable = true;
    shellAliases = {
      nrebuild = "sudo nixos-rebuild switch --flake /home/${user}/nixos";
      ndiffbuild = "sudo nixos-rebuild build --flake /home/${user}/nixos && nvd diff /run/current-system /home/${user}/nixos/result";
    };
    initExtra = ''
      bindkey -v
      bindkey '^R' history-incremental-search-backward

      # Prompt stuff
      autoload -Uz promptinit
      promptinit
      prompt pure
      export PATH="''${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

      # Aliases
      alias ls=eza
    '';
    zplug = {
      enable = true;
      plugins = [
        ({
          name = "plugins/git";
          tags = [ "from:oh-my-zsh" ];
        })
        ({
          name = "modules/prompt";
          tags = [ "from:prezto" ];
        })
      ];
    };
  };
}