this post was submitted on 01 Jun 2024
17 points (94.7% liked)

Steam Deck

14797 readers
50 users here now

A place to discuss and support all things Steam Deck.

Replacement for r/steamdeck_linux.

As Lemmy doesn't have flairs yet, you can use these prefixes to indicate what type of post you have made, eg:
[Flair] My post title

The following is a list of suggested flairs:
[Discussion] - General discussion.
[Help] - A request for help or support.
[News] - News about the deck.
[PSA] - Sharing important information.
[Game] - News / info about a game on the deck.
[Update] - An update to a previous post.
[Meta] - Discussion about this community.

Some more Steam Deck specific flairs:
[Boot Screen] - Custom boot screens/videos.
[Selling] - If you are selling your deck.

These are not enforced, but they are encouraged.

Rules:

Link to our Matrix Space

founded 3 years ago
MODERATORS
 

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?..

top 9 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 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.

[–] [email protected] 5 points 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.

[–] [email protected] 3 points 5 months ago (1 children)

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.

[–] [email protected] 2 points 5 months ago* (last edited 5 months ago) (1 children)

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

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

[–] [email protected] 1 points 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 2 points 5 months ago* (last edited 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.

[–] [email protected] 1 points 5 months ago

There are only two system partitions, you might only have to make the change twice

[–] [email protected] 1 points 5 months ago

you might have to do https://wiki.archlinux.org/title/Command-line_shell#Changing_your_default_shell after every update. Maybe put it in a shell script and make .bashrc execute it, so that it switches your default to fish, after it has been reset to bash. This script could also be used to reinstall fish after the update.

[–] [email protected] 1 points 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.