Something tells me Fish is not a capable login shell? It was in /etc/shells, but that does not mean it’s a login shell right? Would any shell with job control be a login shell? I’m really scared to logout! Any help is appreciated.
PS: What happens if I choose a shell with no job control whatsover, like Marsh, the shell I’ve been making lately (it has JC, but let’s say it doesn’t!) a my login shell after force-adding it to ‘/etc/shells’? What a design flaw! Or is it?
It’s been my login shell for close to a decade probably. Works just fine. It’s really not that important.
Unless you log in to a text tty specifically, you don’t really need a shell to launch a graphical session. The display manager can directly launch the compositor and everything. Modern systems typically open a logind session through pam_systemd which also sets up your user systemd. It does all the session tracking. It would be a nightmare to use the user’s shell and then try to get it to run a command to start the GUI, and lots of weird things could happen like interactive prompts and whatnot. We do way fancier things than a shell typically does, like cgroups and stuff.