I just upgraded my personal laptop from a 2019 Intel MacBook Pro to an M4 MacBook Pro. Like all my new devices, instead of restoring from a backup, I try to Marie Kondo my digital life and start from a clean slate. This also lets me reexamine my existing tools and explore new options. Here’s my minimal Mac setup guide if you want to follow along.
# show Library folder
chflags nohidden ~/Library
# show hidden files
defaults write com.apple.finder AppleShowAllFiles YES
# add pathbar to title
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
# restart finder
killall Finder;
CMD + SHIFT + F5
and change setting in “Option” menu. This lets me screenshot and paste into docs, chats, social media, etc directly (without saving a separate file). If I need to save it, open Preview and CMD + N
./bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# add brew to default shell path
echo >> /Users/eugeneyan/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/eugeneyan/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
# check for updates
brew update
brew install --cask warp
brew install --cask font-inconsolata-for-powerline
# Update warp font: Settings -> Appearance -> Terminal font
brew install fish
# make fish default shell
echo $(which fish) | sudo tee -a /etc/shells
chsh -s $(which fish)
# add brew to fish path
echo >> /Users/eugeneyan/.config/fish/config.fish
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/eugeneyan/.config/fish/config.fish
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install htop
ssh-keygen -t ed25519 -C "[email protected]"
eval "$(ssh-agent -s)"
touch ~/.ssh/config
open ~/.ssh/config
# add to config
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
Also see the Github docs to generate a new ssh key and add to ssh agent, and add a new ssh key to Github account.
brew install git
git config --global core.editor "nano"
git config --global init.defaultBranch main
git config --global user.name "eugeneyan"
git config --global user.email [email protected]
brew install --cask obsidian
# clone obsidian vault (i use obsidian-git for syncing)
git clone [email protected]:<github-username>/<obsidian-vault>.git
brew install --cask zotero
# enable zotero plugin in safari
brew install --cask cursor
# old machine: cmd+shift+p > export profile
# new machine: cmd+shift+p > import profile
brew install --cask sublime-text
brew install --cask google-chrome
brew install postgresql@16
# very fast python package manager
brew install uv
# install the latest python
uv python install 3.12
brew install node
brew install nvm
# still deciding between pnpm and bun
brew install pnpm
brew install oven-sh/bun/bun
brew install chruby-fish ruby-install ruby-build
brew install rbenv
# workaround for fish shell
set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims
rbenv global 3.3.5
rbenv rehash
brew install --cask docker
brew install ollama
ollama serve
# in another terminal, pull some models to try
ollama pull llama3.2 nemotron # 3B and 70B respectively
uv tool install open-webui
uv tool run open-webui serve
brew install --cask raycast
brew install --cask rectangle
While Raycast already has window management, Rectangle lets you hit the hotkey again (e.g., CTRL + CMD + LEFT
) to resize windows from 1/3 to 1/2 to 2/3. Great for widescreens.
Update: Turns out Raycast has this too (h/t @mwheatfill), and also has presets for Rectangle hotkeys. I’ve since moved to Raycast window management.
Wispr Flow: Download and set output language = English. Speech-to-text. Returns accurate transcripts with decent punctuation and formatting. (If you use my referral link you earn good karma and I get $15 in credits! )
Google Drive: Syncing documents, files, media, etc.
brew install --cask google-drive
brew install stats
brew install jordanbaird-ice
brew install --cask vlc
brew install --cask spotify
brew install --cask telegram
brew install --cask discord
brew install --cask slack
If you found this useful, please cite this write-up as:
Yan, Ziyou. (Nov 2024). My Minimal MacBook Pro Setup Guide. eugeneyan.com. https://eugeneyan.com/writing/mac-setup/.
or
@article{yan2024macsetup,
title = {My Minimal MacBook Pro Setup Guide},
author = {Yan, Ziyou},
journal = {eugeneyan.com},
year = {2024},
month = {Nov},
url = {https://eugeneyan.com/writing/mac-setup/}
}
Join 9,300+ readers getting updates on machine learning, RecSys, LLMs, and engineering.