Fish Shell — The friendly interactive shell

Okay, so I’m a sucker for theming my setups, admitted! I have no idea how many hours I spend tweaking my terminal in order to get the right colors, fonts and let’s not get started on additional git information that one can put in there … and so recently I came across the shell called Fish.

Fish has apparently been around for quite some time, but it never found it’s way to my attention — After all, how often do you actually change your shell?

In any case, Fish comes with a bunch of goodies, like autocompletion (including previewing and tab-completion based on these previews), functions, build-in theming (which also includes git-info) — But it was the extension to Fish, called Oh My Fish! which really caught my attention.

Installing the fish shell

In case you are a Mac user (and you are using Brew, if not, better try that out):

brew install fish

Or maybe you are more of a Linux guy:

sudo apt-add-repository ppa:fish-shell/release-2
sudo apt-get update
sudo apt-get install fish

Once installed, you can change your default shell using the command below (note: fish must be present in /etc/shells). If you skip this, you can always enter your fish shell simply by typing fish and you are all good to go.

chsh -s /usr/bin/fish

Configuration

Basic theme changes can be done from a web based service started by the command:

fish_config

But if you really want to get your fingers dirty, your should take a look at and do editions in the file:

 ~/.config/fish/config.fish

The file above is basically a replacement of your normal shell configuration files like .profile, .bash_*. You’ll find that there are a few syntactical changes, all which I’ve not really figures out yet, but you’ll be notified when logging in to your fish shell for the first time after having applied changes.

To define functions the command functions some-function-name might come in handy ;)

oh-my-fish (for theming)

As mentioned fish in it self come with some pretty neet features, but it was the theming plugin oh-my-fish which really converted me.

You can install oh-my-fish the following way:

curl -L https://get.oh-my.fish | fish

You might need to install Powerline fonts as well, grab it here: https://github.com/powerline/fonts

Once installed you have the command omf available. To install a theme, I’ve personally fallen in love with the “Hogan” theme:

omf install hogan

With the Powerline fonts my terminal now looks like below <3

To find out more, the following resources might come in handy — Happe theming folks.

Resources