Zsh configuration defaults with Nix Home Manager

Much like Nix’s tmux defaults, the Home Manager’s defaults for zsh have a lot of configurations set by default:

cat ~/.zshrc

typeset -U path cdpath fpath manpath

for profile in ${(z)NIX_PROFILES}; do
  fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions)
done

HELPDIR="/nix/store/xkr4dr8zhi1r1k4x0w17hhprj62cjxw2-zsh-5.9/share/zsh/$ZSH_VERSION/help"





# Oh-My-Zsh/Prezto calls compinit during initialization,
# calling it twice causes slight start up slowdown
# as all $fpath entries will be traversed again.
autoload -U compinit && compinit









# History options should be set in .zshrc and after oh-my-zsh sourcing.
# See https://github.com/nix-community/home-manager/issues/177.
HISTSIZE="10000"
SAVEHIST="10000"

HISTFILE="$HOME/.zsh_history"
mkdir -p "$(dirname "$HISTFILE")"

setopt HIST_FCNTL_LOCK
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
unsetopt HIST_EXPIRE_DUPS_FIRST
setopt SHARE_HISTORY
unsetopt EXTENDED_HISTORY




# Aliases


# Named Directory Hashes



I’m not too familiar with how Nix works, but I’d assume that the first part is there to make sure Nix can properly function. Then, the compinit line can be disabled by switching off enableCompletion:

programs.zsh = {
  enable = true;
  enableCompletion = false;
};

Aside from that, there doesn’t seem to be a way to turn the hisotry settings off outside of overwriting their values.