Setup

My Fish Shell config

My shell of choice is Fish, and here's my basic setup, including setting the locale to English for Terminal, while my main system language is German.

Wolfgang Rittner

updated June 22, 2024 · 2 min read

My shell of choice is Fish. I'm not entirely sure why I ended up with it, and keep ending up with it when I set up a new computer, but I do. I love it's auto-completion, and for some reason I feel more at ease with it than with alternatives like zsh. It just works, and it makes my shell life more pleasant.

Here's my setup:

Terminal Locale

My native language as an Austrian is German, and I have the OS and most of the software I use set to German. Yet there are some things I prefer having set to English. One of them is the Terminal, or rather the shell environment.
Some tools' german translations are hilarious, others are quite cringe. No offense, they are certainly well intended and mostly correct, I'm just way more comfortable with keeping my terminal English ☕️.

There are two settings needed to have the Terminal and anything inside of it use the English locale. First thing is to uncheck one checkbox in the terminal profile settings: blub This makes the locale shell variables fall back to C, which makes most but not all applications default to the English locale.

Second thing that needs to be set is the LANG environment variable. I'm adding that to my ~/.config/fish.config file:

bash
# use english locale (my system's set to german)
set -gx LANG "en_US.utf-8"
Add this to ~/.config/fish/config.fish

When opening a new Terminal window, run locale to double check:

bash
> locale
LANG="en_US.utf-8"
LC_COLLATE="en_US.utf-8"
LC_CTYPE="en_US.utf-8"
LC_MESSAGES="en_US.utf-8"
LC_MONETARY="en_US.utf-8"
LC_NUMERIC="en_US.utf-8"
LC_TIME="en_US.utf-8"
LC_ALL=

Wire up brew in fish

bash
eval (/opt/homebrew/bin/brew shellenv)

Add this to ~/.config/fish/config.fish

Getting rid of "last login" message and fish's greeting

bash
touch .hushlogin

https://osxdaily.com/2010/06/22/remove-the-last-login-message-from-the-terminal/

bash
set -U fish_greeting

And that's about it for my basic setup. Are you using fish too and have some cool tips? Let me know!