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?

  • maorofl@lemy.lol
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    7 months ago

    Fish works fine as a login shell. If you’re worried, you can create a temporary new user with fish as a login shell and test it before switching your current one.

  • Max-P@lemmy.max-p.me
    link
    fedilink
    arrow-up
    7
    ·
    7 months ago

    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.

  • devfuuu@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    7 months ago

    Been using it for years. Works fine. Probably needs some care for some weird things that may want to be exported by some scripts but usually it’s easy to workaround.

  • lurch (he/him)@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    7 months ago

    I’m really scared to logout! Any help is appreciated.

    dood. this fear is as old as unix. the solution as old as multi user login: go to a different terminal/tty/connection and log in as your user. if it works it means it’s safe to log out because you can log in again. also always do this when you change your ssh public key on a server. keep one log in open while you try a second login, so you can fix it if it broke.

  • Shareni@programming.dev
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    7 months ago

    It’s either going to work or not, and that only depends on your setup. Fish isn’t inherently bad, but you might get errors because your machine is trying to run bash commands in fish.

    If it doesn’t, I’m pretty sure you can just boot a live disk, chroot to change the shell, and reboot.

  • lemmyreader@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    7 months ago

    Fish is fine as login shell. If you run into trouble on the command line with the * sign for some things the easiest and fastest way around that is to type : bash and when done, type exit (or control d).

    • ChubakPDP11+TakeWithGrainOfSalt@programming.devOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      7 months ago

      @[email protected] @[email protected] @[email protected] @[email protected] @[email protected] @[email protected]

      Thanks a lot. I had reverted it to Zsh, now made it Fish again.

      However, there’s a problem that I hope this will fix, but I don’t count on it. I don’t know wtf happened, but whenever I launch a terminal emulator, it just hangs? I have to SIGINT to launch into the shell sessions. I hope this fixes, but what if it won’t? What is keeping it? Is there a startup program idling it?

      Like, the REPL won’t show, just a blank terminal, I use Kitty; but the emulator that is default (GNOME?) won’t work either. My full specs are in my Github profile -> github.com/Chubek

      Thanks.

      • Shareni@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        7 months ago

        Google how to set the default shell for kitty. That’s going to be the least problematic solution AFAIK since you’re only modifying the user terminal emulator, not the default shell for your entire system.

      • lemmyreader@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 months ago

        Like, the REPL won’t show, just a blank terminal, I use Kitty; but the emulator that is default (GNOME?) won’t work either.

        Here on an Arch Linux install with GNOME, Fish shell is doing fine as login shell on Tilix and GNOME terminal. A search engine search for “fish kitty” does show results which appear to indicate other people with issues.

  • chrash0@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    7 months ago

    i used fish as a login shell for years before i switched to nushell. it’s not super risky. bash is just as capable of having a system breaking config. worst case login as root with a minimal bash config and fix it up from there. if that’s fucked you need a rescue ISO.

    • pixeltree@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      I fucked up my bashrc once. I copied and pasted something meant to be copied and pasted off of our confluence, and it fucked up the path. So, when I’d boot, it’d put me into the desktop environment and nothing could run because the path was unset. Eventually figured out how to boot into shell, looked up the location of a text editor, and removed the offending addition. And then fixed the shit on confluence and checked the edit history to see who fucked it up so I could talk shit about them with my close coworkers.