Setting default shell (fish) on Ubuntu after installing and configuring fish with Home Manager

I started using home manager on my ubuntu setup so I can get into managing dotfiles and configs.
I declared fish in its own file and imported it into my home.nix and switched config and I was able to run fish and get in just fine.

I know home manager is really just used for configuring packages and not for setting anything system-level so when I try to do sudo chsh -s $(which fish) $(whoami) I get chsh: PAM: Authentication failure. the output of $(which fish) points to my user’s .nix-profile dir which is what I think is the issue.

I tried adding that fish path to the /etc/shells as well but no shot.

Should I just install fish like you normally would on Ubuntu and get home manager to just make changes to that version?

I’ll also, eventually, want to change the default terminal to TMux but I haven’t started on that path yet so any future tips would be great, the shell question is the main one for now.

Thanks in advance!

I also use fish with all of my Linux systems, but not with home-manager. I leave the default shell alone and launch my terminals with fish. When I did try what you did, I made a symlink to /usr/local/bin/fish and added that to /etc/shells.