First things first, I use iTERM2 as my terminal replacement on macOS.
Change macOS Shell to zsh, if it's not set already.
- System Preferences
- Select Users & Groups
- Right click your account and Select 'Advanced Options'. If nothing is happening, you may need to click on the lock icon in the bottom left corner to allow changes.
- Change the Login Shell options to
- Now that the default shell is set to zsh, you can test your efforts by opening a new terminal window and enter the following:
echo \$SHELL. The output should be:
Zsh is configurable by the
~/.zshrc file. OH MY ZSH is a framework for managing your zsh configurations. Let's get this installed and see up all the cool stuff.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install iterm2 using Homebrew
brew install --cask iterm2
What is the
“To install, drag this icon…” no more. Homebrew Cask installs macOS apps, fonts and plugins and other non-open source software. Read More
Install git, if you don't have it already...
brew install git
Install Oh My Zsh
The install is as easy as executing the curl statement on the website.
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
With the framework installed, open the
open ~/.zshrc (to open using TextEdit),
code ~/.zshrc (to open using VS Code), or
vim ~/.zshrc (to open using Vim) review and modify any zsh properties to your liking.
I'm using the 'itsJCs-agnoster' theme:
This theme is a fork off the original 'agnoster' theme that I customized for myself. You can clone the theme project from github. The downloaded theme must be copied into the hidden .oh-my-zsh home directory in order to read it:
The catch with my theme is that it requires Powerline fonts to support the icons shown in the terminal. The following installation steps on the GitHub page will install the required fonts.
git clone https://github.com/powerline/fonts.git --depth=1
cd fonts ./install.sh
cd .. rm -rf fonts
The list of installed fonts is available on the GitHub page. I like Source Code Pro for Powerline
To activate the fonts, you'll need to change the fonts in your iTerms preferences.
Here is a list of my other custom settings:
You can export your preferences as JSON when you find the settings that suit you best:
- Profiles > Text > Font: Operator Mono Lig, 15pt, Medium
- My font of choice, you can use any Ligature Coding font (Operator Mono, Dank Mono, etc.)
- Profiles > Text > Font: Enable 'Use Ligatures'
- Profiles > Text > Font: Enable 'Use a different font for non-ASCII Text'
Profiles > Text > Non-ASCII Font: Source Code Pro for Powerline, 15pt, Medium
- You will need to install a Powerline-patched font for this theme to render correctly.
Profiles > Text > Font: Vertical Height = 100
- Profiles > Text > Font: Line Height = 100
- Profiles > Colors > Basic Colors: Foreground and Selection = #10ff00
- Profiles > Colors > Basic Colors: Background = #101010
- Profiles > Colors > Cursor Colors: Cursor Guide Enabled, set to #808080
- Profiles > Window > Window Appearance > Transparency: ~ 35-40%
- Profiles > Window > Settings for New Windows > Style: Fullscreen
- Profiles > Session > Miscellaneous: Enable 'Status Bar Enabled'
- Profiles > Session > Configure Status Bar: Add CPU, RAM, Network, Current Dir Components
- Profiles > Session > Configure Status Bar > Advanced: Background = #000000
- Appearance > General > Status Bar Location: Bottom
- General > Startup > Window Restoration Policy: Open Default Window Arrangement
- I like a three tile window, I saved the window arrangement and have it open on program start.
- Appearance > General > Theme: Dark
To test if your terminal and font support it, check that all the necessary characters are supported by copying the following command to your terminal:
echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699". The result should look like this:
What do the icons mean?
- If the previous command failed (✘)
- Git status
- Dirty working directory (±, color change)
- Elevated (root) privileges (⚡)
- Job output (⚙)
Update export path for node modules in your
#NODE MODULES EXPORT export PATH="$HOME/.npm-packages/bin:$PATH"
Your npm packages directory may be different. This is a custom path I have them installing into.
Removing username@hostname from command prompt can be done by adding the following to the .zshrc file:
DEFAULT_USER=`whoami` # Those are back ticks, not single quotes!
VS Code Integrated Terminal
If you use the integrated terminal in VS Code, you will also need to add the Powerline font you used to share the same font compatibility. You can add the font by going into VS Code settings and add the Powerline font to the font family section.
The settings can also be exported/ modified via the following ID:
terminal.integrated.fontFamily: 'Cousine for Powerline'
Before font setup:
After font setup:
Enjoy swapping themes, fonts, colors to your liking.