Terminal Makeover: From Boring to Beautiful 🎨
Your terminal is where you live as a dev. This guide turns that bland default setup into something you'll actually want to open — autocompletion, syntax highlighting, a clean prompt, and pro tools included.
Let’s be real: the default terminal is ugly. Plain text, no color, no context. And you’re going to spend hours in there.
This guide takes you from zero to a setup that looks professional and feels comfortable — no prior customization experience needed.
What you’ll end up with
- A modern prompt with useful context (git branch, errors, current directory)
- Autocompletion that feels like mind-reading
- Real-time syntax highlighting
- Aliases and tools that save actual time
- Dotfiles versioned with Git + Stow
Works on macOS, Linux, and WSL. About 30 minutes of your time.
1. Install Homebrew
The package manager that ties everything together.
macOS:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
Linux / WSL:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
2. Switch to Zsh
Bash is fine. Zsh is better — more plugins, smarter autocompletion, better ecosystem.
brew install zsh
chsh -s $(which zsh)
3. Oh My Zsh
The framework that makes Zsh actually usable out of the box.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
4. Essential plugins
Two plugins that will permanently change how you type commands.
brew install zsh-syntax-highlighting zsh-autosuggestions
echo 'source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc
echo 'source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
- syntax-highlighting → shows commands in red if they don’t exist, before you hit enter
- autosuggestions → suggests commands from your history, accept with
→
5. Nerd Font
Starship (next step) uses icons. You need a font that supports them.
macOS:
brew tap homebrew/cask-fonts
brew install --cask font-fira-code-nerd-font
Linux / WSL: download Fira Code Nerd Font and install it manually.
Then go to your terminal preferences and set the font to FiraCode Nerd Font.
6. Starship — the prompt
Replaces the boring default prompt with one that shows: current directory, git branch, exit codes, project language, and more.
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
Starship works across any shell. If you ever switch to Fish or Bash, you don’t lose a thing.
7. Dev tools you’ll use every day
brew install bat eza ripgrep gh
echo 'alias ls="eza --icons --git"' >> ~/.zshrc
echo 'alias cat="bat"' >> ~/.zshrc
| Tool | Replaces | Why |
|---|---|---|
bat |
cat |
Syntax highlighting, pagination, line numbers |
eza |
ls |
Icons, git status, colors |
ripgrep |
grep |
Way faster, respects .gitignore by default |
gh |
browser | GitHub’s official CLI |
8. Version your setup with dotfiles
When you switch machines, you don’t want to redo all of this.
brew install stow
mkdir ~/dotfiles && cd ~/dotfiles
git init
mv ~/.zshrc ~/dotfiles/.zshrc
mv ~/.config/starship.toml ~/dotfiles/starship.toml
stow dotfiles
GNU Stow creates symlinks automatically. Your configs live in the repo, but behave as if they’re in ~.
Quick troubleshooting
Icons not showing → Make sure you selected the Nerd Font in your terminal preferences.
Command not found after installing something → Run source ~/.zshrc or restart your terminal.
Weird characters in the prompt → The Nerd Font isn’t active in your terminal emulator.
What’s next
Your setup is solid. If you want to go further:
- Browse Starship presets to restyle your prompt
- Explore Oh My Zsh themes:
ls ~/.oh-my-zsh/themes - Build aliases for your most-repeated commands
- Push your dotfiles to GitHub — future you will be grateful
