Customizing your terminal is one of the ways you can express yourself while also keeping yourself informed with current project, context, or git information on the screen. I use Oh My Zsh with a collection of plugins and a small update to the agnoster theme. For me, I’m primarily in Docker, Kubernetes, Gcloud, and working in Shell and Python (3.7) in MacOS.
This Guide is angled towards Mac users, I’m sure similar steps can be taken on a linux OS. (I’ve done most of this setup on lubuntu, so it is possible.)
Tools/Resources Used
- Homebrew
- Powerline Fonts
- iTerm2
- Oh My Zsh
- git
brew install git
- docker
brew cask install docker
- kubectx
brew install kubectx
- gcloud sdk (For the custom in line portion)
Homebrew Setup
Homebrew is your bread and butter unofficial package manager for MacOS. Go here to download and set it up. Once you have it set up you should be able to install many common development tools in brew, just as you would in a linux system with apt, yum, or apk.
Powerline Fonts
Go to the Powerline Fonts git repository and give it a clone with git clone https://github.com/powerline/fonts.git
.
Once you have it cloned, run the install script inside of the repository.
iTerm2 Setup
The iTerm2 Setup is quite simple, it’s just a color scheme change, a font change, and some status bars.
Colors
For the color scheme, use Solarized Dark. It’s easy on the eyes and not hard to read.
Font
For the fonts, Set a font to one of the Powerline fonts that was installed.
Status Bar
For the Status Bars, enable it and arrange your choice of widgets to display.
Once enabled, pick the widgets you want to show
Oh My Zsh Setup
Check out this to install Oh My Zsh. Say yes to the installation prompts.
Note: If you install OMZSH after you have the Gcloud SDK installed you will have to add back the following lines to your ~/.zshrc
file:
1 | source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc' |
Once you have it installed you now have the choice of choosing a OMZSH theme. I went with the agnoster
theme and the following plugins.
1 | plugins=( |