anchor.diff:          ++ optional cfg.enableCompletion nix-zsh-completions
           ++ optional cfg.oh-my-zsh.enable oh-my-zsh;
   
  +      programs.zsh.sessionVariables = {
  +        HISTSIZE = cfg.history.size;
  +        HISTFILE = "$HOME/" + cfg.history.path;
  +      };
  +
         home.file."${relToDotDir ".zshenv"}".text = ''
           ${envVarsStr}
         '';
   
         home.file."${relToDotDir ".zshrc"}".text = ''
  -        ${export "HISTSIZE" cfg.history.size}
  -        ${export "HISTFILE" ("$HOME/" + cfg.history.path)}
  -
           setopt HIST_FCNTL_LOCK
           ${if cfg.history.ignoreDups then "setopt" else "unsetopt"} HIST_IGNORE_DUPS
           ${if cfg.history.share then "setopt" else "unsetopt"} SHARE_HISTORY
  
positive.code: 
          ${optionalString cfg.oh-my-zsh.enable ''
              # oh-my-zsh configuration generated by NixOS
              export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh
              export ZSH_CACHE_DIR=''${XDG_CACHE_HOME:-$HOME/.cache}/oh-my-zsh
  
              ${optionalString (cfg.oh-my-zsh.plugins != [])
                "plugins=(${concatStringsSep " " cfg.oh-my-zsh.plugins})"
              }
  
negative.code:         source ${zdotdir}/.zshenv
        '';
      })
  
      (mkIf cfg.oh-my-zsh.enable {
        # Oh-My-Zsh calls compinit during initialization,
        # calling it twice causes sight start up slowdown
        # as all $fpath entries will be traversed again.
        programs.zsh.enableCompletion = mkForce false;
      })
  
      (mkIf (cfg.plugins != []) {
        # Many plugins require compinit to be called
        # but allow the user to opt out.
  