Skip to content

New Mac Setup Guide

Updated:
New Mac Setup Guide

As someone who builds software for a living & as a hobby - I go through lots of computers. I also like to occasionally wipe my machines and reinstall from a clean state. Therefore I spend a lot of time setting up new Apple computers. This blog is intended to be a living document of steps I take when setting up a new Mac.

Stock Apps to Delete

Apps to Install

Browser: Brave

As of March 2025, my daily driver are Safari + Brave.

Set up Brave Sync

Utilities to Install

Terminal

Terminal Theme

Terminal Preferences

Terminal Utilities

.zshrc

Create a .zshrc with touch ~/.zshrc and add the following:

# Colors
export CLICOLOR=1

# Prompt
export PS1="%n@%m %1~ %# "

# Aliases
alias ll="ls -Flht"
alias ls="ls -F"
alias la="ls -Flhta"
alias activate="source env/bin/activate"
alias vactivate="source venv/bin/activate"

# Node.js
export PATH="/opt/homebrew/opt/node@18/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/node@18/lib"
export CPPFLAGS="-I/opt/homebrew/opt/node@18/include"

# Set PATH, MANPATH, etc., for Homebrew.
eval "$(/opt/homebrew/bin/brew shellenv)"

# Case insensitive tab completion
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'

# Automatic CD
setopt AUTO_CD

# ZSH History
export HISTSIZE=20000
export SAVEHIST=10000
setopt sharehistory # share history across multiple zsh sessions

# History search completion
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end

# Load the ZSH config changes
autoload -Uz compinit && compinit

# Prompt, git branch on right
function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}
setopt PROMPT_SUBST
COLOR_DEFAULT=$'%f'
COLOR_ORANGE=$'%F{214}'
COLOR_GRAY=$'%F{243}'
export PROMPT='${COLOR_ORANGE}%1~ ➤${COLOR_DEFAULT} '
export RPROMPT='${COLOR_GRAY}$(parse_git_branch)${COLOR_DEFAULT}'

# Fun greeting from a random pokemon
fortune -s 50% computers 50% all | pokemonsay

# Docker fix for apple silicon
export DOCKER_DEFAULT_PLATFORM="linux/amd64"
source /Users/ryan/.docker/init-zsh.sh || true # Added by Docker Desktop

VSCode Config

System Settings

Finder

Finder List View by Default

Finder + Desktop

Finder Sidebar:

Notification Center

Messages

Dock

TextEdit



Previous Post
A Journey Through Time: Three Nostalgic 404 Pages