I would strongly not advise to make it the default shell though as this can lead to issues. The way I use it is to have bash as my main shell but my .bashrc starting fish if it's not started explicitly from bash: (it's a trick form arch wiki)
if [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" ]] then exec fish fi
I've been using fish for a long time with this setup and never encountered an issue.
I've heard this a lot, but I've been using Fish as my login shell for many years, and it's really not a problem
I think maybe some vim plugins call out to your $SHELL or something, but assume that it's bash-like? but I've never run into a serious issue with just using Fish as my login shell
I've been running Fish as my login shell for almost 10 years now, on Linux and then additionally for ~4 years for intermittent macOS usage (only at work) without issue.
I don't really like launching Fish from ~/.bash_profile because or similar because I don't like having to type `exit` twice to exit, and `exec`ing into Fish leaves you in one shell but with your $SHELL variable set to another.
But if that works for you, more power to ya, and it's good for Fish users to know that that's an option if they run into issues using Fish as a login shell.
From the `exec` manual:
If exec is specified with command, it shall replace the shell
with command without creating a new process. If arguments are
specified, they shall be arguments to command. Redirection
affects the current shell execution environment.
https://man7.org/linux/man-pages/man1/exec.1p.htmlWhat? No it doesn't. Shebang exists for a reason, and you should ALWAYS use it anyway, fish or not.
bash