Davis Cat

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.

terminal productivity tools

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
ToolReplacesWhy
batcatSyntax highlighting, pagination, line numbers
ezalsIcons, git status, colors
ripgrepgrepWay faster, respects .gitignore by default
ghbrowserGitHub’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