How to jazz up your WSL shell with fish and oh-my-fish.

Install a fancier shell

Bash (Bourne Again Shell) is the default shell in most Linux distributions so when you fire up WSL, you'll find yourself at a bash prompt. While it's a great default, it's pretty dull to look at and out of the box is missing features that I really love such as case insensitive autosuggestion and tab completion.

Fortunately, fish shell comes with these features, and plenty more so let's start by installing it. I'm using Ubuntu here, but you can find installation instructions for most distros on the fish homepage.

sudo apt install fish
Install fish

Once apt's done its thing when I run the fish command, I should jump into a friendly new fish shell complete with helpful auto complete and even some nice git integration.

fish doesn't care if you've got your casing right it'll help you anyway

There are of course plugin/package managers for fish that extend the core functionality. Personally, the only extra functionality I need is easy prompt theming so let's install oh-my-fish for that.

curl | fish
Install oh-my-fish

Now I can list and select available themes (I can also preview them on github) and I can install my favourite, sashimi, as well as the dracula colour scheme.

omf install sashimi
omf theme sashimi
omf install
Install sashimi and dracula

And now I have my shell just the way I like it.

Finally, I'll set fish as my default shell, so it loads whenever I open this wsl distro, if fish was installed to a different location by your distro, you can always find it using the whereis fish command.

chsh -s /usr/bin/fish
Make fish my default shell
The fish shell is amazing
I’ve been lurking the fish shell for a couple of years now (and thenushell but it is another story foranother time). Not so long ago, I decided to try it, and it’s simply… amazing. If I had to state one feature that makes me like to use it, it’ll be theautocompletion, hands down. It’s the first t…