Logo maphew

Fish as default shell

I chose option 2, modify terminal default via preferences.

I'm changing to fish because I'm tired of Atuin periodically losing new command history under bash, and it's a long standing problem [bluefin#3730]. And with vsocde using fish instead of bash solved some issues with AI agents being able to read the terminal and detect when command had completed.

 

from https://deepwiki.com/search/how-to-switch-default-shell-to_cf075116-9d01-48cc-bb99-953cc5621639?mode=fast

The chsh command is not available in Bluefin because the util-linux package (which provides chsh) is not explicitly installed in the base image. 1

Alternative Methods to Change Default Shell#

Since chsh is unavailable, you have these options:

1. Manual User Configuration#

Edit your user shell directly by modifying /etc/passwd as root:

sudo sed -i "s|/bin/bash|/usr/bin/fish|g" /etc/passwd

2. Terminal Profile Configuration#

Set Fish as your default terminal in GNOME Terminal preferences:

  • Open Terminal → Preferences → Profiles → Command
  • Select "Run a custom command" and enter /usr/bin/fish

3. Shell Wrapper in Bash#

Add this to your ~/.bashrc:

if [[ $- == *i* ]]; then
    exec /usr/bin/fish
fi

Fish Location Issue#

Your which fish shows /usr/sbin/fish, but the package installation expects it in /usr/bin/fish. 2 This suggests either:

  • A non-standard installation
  • A symlink or alias issue
  • Package installation variation

Verify the correct location with:

ls -la /usr/bin/fish /usr/sbin/fish

Notes#

Bluefin's immutable nature means system-wide changes should be made through layering or custom builds rather than direct system file modifications. The recommended approach for shell changes is user-level configuration through terminal profiles or shell wrappers rather than modifying system files directly. 3

Wiki pages you might want to explore:

 #