Home-manager doesn't like zsh settings I set

So according to this link and here too the ignoreAllDups option should be part of the history submodule

However, when I try setting it in my config it errors:

user@nixos:~/ > home-manager switch               
error: The option `programs.zsh.history.ignoreAllDups' does not exist. Definition values:
       - In `/home/user/.config/home-manager/home.nix': true
(use '--show-trace' to show detailed location information)
user@nixos:~/ > 

Here’s my zsh section in home.nix for reference. Any help would be appreciated

  programs.zsh = {
    enable = true;
    enableAutosuggestions = true;
    enableCompletion = true;
    dotDir = ".config/zsh";
    history = {
      ignoreAllDups = true;
      path = "${config.xdg.dataHome}/zsh/history";
      save = 10000;
      size = 10000;
      share = true;

    historySubstringSearch = {
      enable = true;

    shellAliases = {
      ls = "lsd -al";

    oh-my-zsh = {
      enable = true;
      plugins = [ "zsh-syntax-highlighting" ];
      theme = "powerlevel10k/powerlevel10k";

It’s on master branch. Maybe your home-manager input is on release-23.05, for example?

Oh, is there a way I can check if it’s release-23.05? And if so, how do i set it to be the master branch?

nix-channel --list. Also, if you have enabled manual.html.enable running a command home-manager-help should open a browser with current home-manager documentation. You could also check man home-configuration in a terminal.

Another edit. It’s man home-configuration.nix.

1 Like

Yeah the issue that home-managers documentation is not versioned has bitten me multiple times while configuring ZSH.
I ended up having a tab with appendix a and the 23.05 zsh module source code open in parallel to double-check if an option is available.