Change Bash shell - eviltoast

I recently received a Steam Deck and I love it!

I also planning to use it for development. On my PC I get used to Fish shell and usually use it instead of Bash. I can install it on Steam Deck and set it to the default shell, but after a system update it will be wiped. I can create a script and run it after each update, will I be able to login if my user points to /usr/bin/fish that doesn’t exist in the system?..

  • Shatur@lemmy.mlOP
    link
    fedilink
    arrow-up
    5
    ·
    5 months ago

    Ah, sorry, I realized that fish is already installed by default. Same about zsh. So no additional steps needed, I just changed my default shell for my user and it works.

  • Desmond373@slrpnk.net
    link
    fedilink
    arrow-up
    5
    ·
    5 months ago

    Dont own a steam deck, but at a guess you might be able to add the terminal lines to change shells to you bashrc, should load it in on first start and then fish will be default from then on.

  • Fubarberry@sopuli.xyzM
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 months ago

    I think you can install fish from the discover store, which will persist between updates. You may need to also update its permissions through flatseal so that it has full file system access.

    Some other options for packages are to install them through nix or distrobox. There’s also a set of commands for installing a package locally, but I would have to look it up. It involves setting a temporary cache directory, downloading the package there without installing it, and then installing the contents of cache to a folder in user-space.

    • MajinBlayze@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      5 months ago

      It’s not on flathub, so it won’t show up in discover.

      Generally, it doesn’t have command line programs, just gui ones

      • Fubarberry@sopuli.xyzM
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        Ok, I knew I had fish installed on my LCD deck which is why I was thinking it was available through discover. I must have installed it through distrobox instead.

  • MajorHavoc@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    5 months ago

    Simplest answer would be to launch Fish as the last step in your bash profile.

    I imagine the SteamOS update process probably needs the default system shell to be bash, (if they’re changing it with each update) but that won’t stop you from getting the benefits of Fish during your login terminal sessions.

    Source: I don’t like bash much, but have encountered other cases where changing the default shell was too invasive. It’s about an 80% solution, and the next 15% is covered well enough by invoking my preferred shell before invoking my script written for my preferred shell.

  • siftmama@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    5 months ago

    I don’t have an answer for your specific question (you can easily find out testing such a scenario on docker on your personal computer), but you should look into bazzite and use either brew or if you feel adventurous enough use package layering to add fish to the image.