New Mac setup (circa 2023 to 2025)

Setup steps for a new Mac, late 2022/early 2023 through 2025

(about 2 months ago)
~4 min read

Rough notes from setting up a new Mac, late 2022/early 2023. WIP and probably not up to date.

Hardware.

  • MacBook Pro 14" (2021), M1 Pro 10 core (8 performance and 2 efficiency), 32GB RAM, 512GB SSD
  • CalDigit USB-C Gen2 10Gb/s SOHO Dock- for single cable connectivity - usually in clam shell mode
  • LG 34GP950G-B 34 Inch Ultragear QHD (3440 x 1440) Nano IPS Display
  • IOGEAR 4x2 USB 3.0 Peripheral Sharing Switch - to easily switch keyboard, mouse, and video camera between Mac and PC.
  • Camera is an Anker PowerConf C300
  • Keyboard is a Keychron K8 Pro with Gateron Silent Brown's
  • Mouse is a Razer DeathAdder V2 Pro Wireless
  • Speakers are Audioengine HD3's
  • Desk is Uplift V2 with a 72" wide top
  • Chair is a Herman Miller Embody
  • Ubiquiti UniFi Dream Machine Pro (UDM-Pro) for networking and security cameras
  • Synology DS720+ NAS with 2x 4TB Seagate IronWolf Pro drives

Apps (Personally owned/licensed).

Web apps (Personal).

AI Subscriptions (Personal)

  • Cursor
  • Anthropic

AI Tools

npm install -g @anthropic-ai/claude-code
npm install -g repomix

Command line tools.

  • Homebrew - Package manager
  • Go - Programming language
  • gcloud - Google Cloud CLI

Fonts

  • JetBrainsMono Nerd Font - Nerd front version of JetBrains Mono - may need to set vscode "terminal.integrated.fontFamily": "JetBrainsMono Nerd Font"

Brew installed apps.

Apps I should install via brew.

# fnm - faster Node version manager
brew install fnm
# pyenv - Python version manager
brew install pyenv pyenv-virtualenv
# wget - download files
brew install wget
# gh - GitHub CLI
brew install gh

# fancy cd alternative
brew install zoxide
# fuzzy search util
brew install fzf
# neovim
brew install neovim

Random post setup.

Random bash commands to run after a fresh install and after installing brew and brew apps.

# setup oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# setup fnm
fnm install 18
# add fnm to .zshrc
echo 'eval "$(fnm env)"' >> ~/.zshrc
# install and setup `delta` for diffing
brew install git-delta
# setup startship
curl -sS https://starship.rs/install.sh | sh
# append to .zshrc
eval "$(starship init zsh)"

Git config:

git config --global init.defaultBranch main
git config --global user.name ""
git config --global user.email me@ronin.sh
git config --global core.pager "delta"
git config --global interactive.diffFilter "delta --color-only"
git config --global merge.conflictstyle "diff3"
git config --global diff.colorMoved "default"

Ghostty Config

indow-height = 25
window-width = 100
theme = dracula+
keybind = shift+enter=text:\x1b\r

VS Code extensions

WIP

āžœ ~ cursor --list-extensions
adpyke.codesnap
adpyke.vscode-sql-formatter
anysphere.cursorpyright
anysphere.pyright
apollographql.vscode-apollo
astro-build.astro-vscode
bradlc.vscode-tailwindcss
codeforge.remix-forge
codium.codium
dbaeumer.vscode-eslint
donjayamanne.githistory
dracula-theme.theme-dracula
eamodio.gitlens
enkia.tokyo-night
esbenp.prettier-vscode
github.vscode-github-actions
golang.go
inferrinizzard.prettier-sql-vscode
kumar-harsh.graphql-for-vscode
lokalise.i18n-ally
marnix.tokyo-night-pro
mechatroner.rainbow-csv
ms-azuretools.vscode-containers
ms-azuretools.vscode-docker
ms-playwright.playwright
ms-python.black-formatter
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
ms-vscode-remote.remote-wsl
ms-vscode-remote.vscode-remote-extensionpack
ms-vscode.makefile-tools
ms-vscode.remote-explorer
ms-vscode.remote-server
prisma.prisma
streetsidesoftware.code-spell-checker
ub1que.add-only
unifiedjs.vscode-mdx
yoavbls.pretty-ts-errors
yzhang.markdown-all-in-one

.zshrc

.zshrc - gist of my zshrc


Built with React Router v7, deployed on Cloudflare Workers, powered by D1 database. Vibe coded with Claude