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.
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/passwd2. 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
fiFish 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/fishNotes#
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: