This is why I like fish shell so much. It has the same features as zsh, but requires no config. They have a guiding principle of "if users need to configure something, that means that the defaults are broken".
All I do is "sudo apt install fish" and I'm good to go with the 100s of out-of-the-box improvements it has over bash.
It's not that config is impossible, but it tries very hard to make the defaults work for the largest subset of users possible. And then provides a much easier config experience than most shells, since if things are broken for you they should damn well be easy to fix!
All I do is "sudo apt install fish" and I'm good to go with the 100s of out-of-the-box improvements it has over bash.