programs.zsh.interactiveShellInit not being invoked

My programs.zsh.interactiveShellInit setting doesn’t seem to be getting invoked when I enter zsh.

When I run nixos-option programs.zsh.interactiveShellInit, which I think shows what my setting is currently set to, it outputs the following:

  # This function is called whenever a command is not found.
  command_not_found_handler() {
    ...(truncated for brevity)...
  }

  # Show current working directory in VTE terminals window title.
  # Supports both bash and zsh, requires interactive shell.
  . /nix/store/1m956zyjh8sxpxyf01b374f9wfj8yi70-vte-0.64.1/etc/profile.d/vte.sh

But despite the above, when I run type command_not_found_handler, it shows that command_not_found_handler function isn’t defined. So I can conclude that the interactiveShellInit code is never getting invoked.

I tried:

  • Registering my own programs.zsh.interactiveShellInit with echo TESTING and nothing gets printed.
  • Disabling my oh-my-zsh to get back to a basic zsh prompt. Same problem.

Here’s my current configuration.nix and home.nix.

Anyone have any ideas?