{
  home.shellAliases = import ./aliases.nix;

  programs.carapace = {
    enable = true;
    enableNushellIntegration = true;
  };
  programs.nushell = {
    enable = true;
    configFile.source = ./nu/pre.nu;
    settings = {
      cursor_shape.vi_insert = "line";
      cursor_shape.vi_normal = "block";
      edit_mode = "vi";
      table.mode = "none";
    };
  };
  programs.starship = {
    enable = true;
    enableZshIntegration = true;
  };
  programs.zoxide = {
    enable = true;
    enableZshIntegration = true;
  };
  programs.zsh = {
    enable = true;
    autocd = true;
    autosuggestion.enable = true;
    enableCompletion = true;
    syntaxHighlighting.enable = true;
    history = {
      ignoreAllDups = true;
      ignoreSpace = true;
      size = 100000000;
    };
    initContent = ''
      [ $SHLVL -eq 1 ] && exec nu
      bindkey -v
    '';
  };
}