iTerm 2 + Fish Shell + Fisher + Themes\Plugins
This guide is targeted for those, who wants to have a nice UI in the terminal with the rich features.
Please, raise your issue if something strange happened. I’d like to improve this script, so it could work without any errors during the installation.
Every time, I’ve re-installed my operating system, I spend around ~30 minutes to set up my terminal environment again. I bored of it, so I decided to make a list of all actions I doing, when setting it up, alongside with automatic script to do so, and share it with you all.
Screenshots & GIFs
They are available here.
The script installs things related to terminal environment only:
- Installs Command Line Tools, Homebrew, iTerm2, Fish, Fisher.
- Installs Material Design color preset for iTerm2 and patched Meslo Nerd Font.
bobthefish, which is based on popular
- Completions for
Installs a lot of useful plugins for Fish Shell:
bassplugin that makes easy to use scripts written for Bash Shell in Fish Shell.
donethat notifies you when the process is finished. i.e. you can run
npm installcommand and switch back into your browser. When
npm installis done, you will get OSX notification.
fzyplugin adds a hotkey Ctrl+R that allows to show and search in your command history.
pjfunction allows to easily jump between your favorite directories. It installs with configured
~/Library/Projectsfolder, so you can jump to any of your projects by calling
uptofunction gets you to a parent folder. I.e. you’re inside
upto bwill navigate you into
- …and others, you can find the full list below in manual guide.
How To Setup
Highly recommended to run the script below under Bash session in default Terminal.app. I can not guarantee proper installation outside of Terminal.app + Bash Shell.
bash <(curl -s https://raw.githubusercontent.com/ghaiklor/iterm-fish-fisher-osx/master/install.sh)
Command Line Tools
You don’t need to install the whole Xcode for it. By executing the command below, you will get only the command line tools without heavy IDE and dependencies it take:
Homebrew is a software manager for MacOS.
Its purpose is like the purpose of
apt-get on Debian-based systems or
yum on Fedora.
You can install command line tools from there or even full-featured applications.
Install iTerm 2
- Download and install iTerm2 (it has better color fidelity than the built in Terminal).
or install it via Homebrew:
brew cask install iterm2
Install Color Scheme
Get the iTerm color settings:
Just save it somewhere and open the file(s). The color settings will be imported into iTerm2. Apply them in iTerm through iTerm -> Preferences -> Profiles -> Colors -> Load Presets. You can create a different profile, other than Default if you wish to do so.
Install Patched Font
Open the downloaded font and press “Install Font”.
Set this font in iTerm2 (iTerm -> Preferences -> Profiles -> Text).
- Regular Font -> “Change Font”
- Non-ASCII Font -> “Change Font”
Restart iTerm2 for all changes to take effect.
Install Fish Shell
Download and install Fish Shell.
or using Homebrew:
brew install fish echo "/usr/local/bin/fish" | sudo tee -a /etc/shells chsh -s /usr/local/bin/fish
Fisher is a plugin manager for Fish Shell.
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
Install Themes and Plugins
Find arbitrary unicode characters matching a search pattern. The last result match will be copied to your clipboard.
Bass makes it easy to use utilities written for Bash in fish shell.
A Powerline-style, Git-aware fish theme optimized for awesome.
Fish shell completions for Homebrew.
A fish plugin to automatically receive notifications when long processes finish.
Search for error codes, labels or messages via
fzy picks up history item and adds it to your shell.
You need to execute manually.
fkill and type process you want to kill.
fkill kills immediately.
Press enter and process will be killed.
Generic Colouriser is yet another colouriser for beautifying your logfiles or output of commands.
PATH when present.
Pure-fish, Node.js version manager.
pj allows you to easily jump between your favourite directories in a predictable manner.
You tell pj where to look for your projects, and it will allow you to jump to them easily with tab completion.
It even provides a convenient ability to open an editor in that directory from anywhere!
Gets you to a parent folder, heavily inspired by the plugin upto made by driv.
z tracks the directories you visit.
With a combination of frequency and recency, it enables you to jump to the directory in mind.