This is my almanac for setting up a new macOS machine to my workflows.

Initial System Setup

Step 1: Basic macOS Configuration

Before installing any applications, let's configure macOS for optimal productivity:

1Enable tap to click:

System Settings → Trackpad → Point & Click → Tap to click

2Speed up key repeat rate:

defaults write -g InitialKeyRepeat -int 15
defaults write -g KeyRepeat -int 2

3Show hidden files in Finder:

defaults write com.apple.finder AppleShowAllFiles YES
killall Finder

4Disable press-and-hold for accented characters:

defaults write -g ApplePressAndHoldEnabled -bool false

Wallpapers & Visual Setup

Desktop Wallpapers

My collection of desktop wallpapers:

Dracula Mac Wallpaper Main Wallpaper Gojo Suguru Wallpaper

Twitter Banners

For your Twitter account banners and social media:

Twitter Banner Social Media Banner Alternative Banner Banner Option

Profile Pictures

For consistency across all your accounts:

Profile Picture Alternative Profile Picture Main Profile Picture

Installing Homebrew & Core Applications

Step 1: Install Homebrew

Homebrew is the essential package manager for macOS. It simplifies installing and managing applications.

Run this command in Terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

After installation, add Homebrew to your PATH:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Step 2: Install Essential Applications

Now let's install all the applications you'll need. I've organized them by category with detailed explanations:

One-Command Installation

Install everything at once with this single command:

brew install node python tmux git uv zoxide atuin yt-dlp fzf eza \ --cask zen-browser superkey protonvpn notion libreoffice ghostty iterm2 \ bettertouchtool postman screen-studio flux forklift fork davinci-resolve \ discord cursor cleanshot chatgpt aldente alfred appcleaner rectangle

Core Command Line Tools

brew install node

Node.js - JavaScript runtime for server-side development

brew install python

Python - Essential programming language for scripting and development

brew install tmux

tmux - Terminal multiplexer for managing multiple terminal sessions

brew install git

Git - Version control system (brew version is more up-to-date than macOS default)

brew install uv

uv - Extremely fast Python package and project manager, written in Rust

brew install zoxide

zoxide - Smarter cd command that remembers your most used directories

brew install atuin

Atuin - Magical shell history with sync across machines

brew install yt-dlp

yt-dlp - Download videos/images from YouTube and 1000+ other sites

brew install fzf

fzf - Command-line fuzzy finder for files, history, and processes

brew install eza

eza - Modern, maintained replacement for ls with colors and icons

Browsers

brew install --cask zen-browser

Zen Browser - Privacy-focused browser with excellent customization

brew install --cask google-chrome

Chrome - Primary browser with excellent DevTools

Development Tools

brew install --cask cursor

Cursor - AI-powered code editor built on VSCode, perfect for AI-assisted development

brew install --cask postman

Postman - API development and testing platform with collaboration features

brew install --cask ghostty

Ghostty - Fast, feature-rich terminal emulator

brew install --cask fork

Fork - Beautiful Git client with intuitive interface

Productivity & System Tools

brew install --cask notion

Notion - All-in-one workspace for notes, documents, and project management

brew install --cask alfred

Alfred - Powerful productivity app with workflows and clipboard history

brew install --cask bettertouchtool

BetterTouchTool - Customize trackpad gestures, keyboard shortcuts, and Touch Bar

brew install --cask superkey

SuperKey - Transform your caps lock into a powerful productivity key

brew install --cask aldente

AlDente - Battery health management to extend MacBook battery life

brew install --cask appcleaner

AppCleaner - Thoroughly uninstall applications and their associated files

brew install --cask flux

f.lux - Adjust screen color temperature based on time of day

brew install --cask rectangle

Rectangle - Window management made simple with keyboard shortcuts

File Management

brew install --cask forklift

ForkLift - Advanced file manager and FTP client

Office & Documents

brew install --cask libreoffice

LibreOffice - Free and powerful office suite

Don't forget to set up Notion Calendar and Notion Mail for seamless integration with your workspace.

For PDF editing, download PDF Gear - excellent free PDF editor with annotation tools.

Communication

brew install --cask discord

Discord - Community and team communication

brew install --cask whatsapp

WhatsApp - Popular messaging platform

Creative & Media Tools

brew install --cask cleanshot

CleanShot X - Advanced screenshot and screen recording tool

brew install --cask screen-studio

Screen Studio - Professional screen recording with beautiful animations

brew install --cask davinci-resolve

DaVinci Resolve - Professional video editing and color grading

brew install --cask figma

Figma - Collaborative design tool for UI/UX

Media Players

For video playback, use IINA - Modern media player designed specifically for macOS

For music, try YouTube Music Desktop - Unofficial YouTube Music app with additional features

Security & Privacy

brew install --cask protonvpn

ProtonVPN - Secure VPN service with strong privacy focus

brew install --cask chatgpt

ChatGPT - Official OpenAI ChatGPT desktop app

Terminal Setup with Oh My Zsh

Step 1: Install Oh My Zsh

Oh My Zsh is a framework for managing your Zsh configuration with tons of helpful features.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Step 2: Install Powerlevel10k Theme

The most powerful and customizable Zsh theme:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Then edit your ~/.zshrc:

nano ~/.zshrc

Change the theme line to:

ZSH_THEME="powerlevel10k/powerlevel10k"

Step 3: Install Essential Zsh Plugins

zsh-autosuggestions

Suggests commands as you type based on your history:

git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

zsh-syntax-highlighting

Provides syntax highlighting for your shell commands:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

zsh-fast-syntax-highlighting

Faster and more feature-rich syntax highlighting:

git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting

zsh-autocomplete

Real-time auto-completion as you type:

git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git $ZSH_CUSTOM/plugins/zsh-autocomplete

Enabling the Plugins

Edit your ~/.zshrc file and update the plugins line:

nvim ~/.zshrc

Find the line that says plugins=(git) and replace it with:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete)

Apply the changes:

source ~/.zshrc

Configuration Wizard: After restarting your terminal, Powerlevel10k will run a configuration wizard. Choose options that match your aesthetic preferences!

Step 4: Advanced Terminal Tools Setup

Initialize Shell History with Atuin

Set up magical shell history sync:

atuin import auto

Imports your existing shell history

Configure Zoxide for Smart Navigation

Initialize zoxide in your shell:

echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc

Now use z instead of cd - it remembers your most used directories

Setup FZF Integration

Add fuzzy finding to your shell:

$(brew --prefix)/opt/fzf/install

Enables Ctrl+R for history search and Ctrl+T for file search

macOS UI Customization (Advanced)

For power users who want to customize the macOS interface:

iTerm2 Configuration

Essential iTerm2 Settings

Configure iTerm2 for the optimal terminal experience:

Enable Natural Text Editing

iTerm2 → Preferences → Profiles → Keys → Key Mappings

Set up natural text editing shortcuts for smooth cursor movement

Transparency and Blur Settings

iTerm2 → Preferences → Profiles → Window

Set Transparency to 26 and Blur to 32 for the perfect aesthetic

Auto-Activate Python Virtual Environments

Add this to your ~/.zshrc for automatic virtual environment activation:

# Auto-activate Python virtual environment if .env or .venv exists (no auto-deactivate)

function auto_activate_env() {
  local dir=$PWD
  while [ "$dir" != "/" ]; do
    if [ -d "$dir/.venv" ]; then
      source "$dir/.venv/bin/activate"
      echo "✅ Activated virtual environment ($dir/.venv)"
      return
    fi
    dir=$(dirname "$dir")
  done
}

autoload -U add-zsh-hook
add-zsh-hook chpwd auto_activate_env

# Also activate immediately on shell startup
auto_activate_env

# pnpm
export PNPM_HOME="/Users/wimpy/Library/pnpm"
case ":$PATH:" in
  *":$PNPM_HOME:"*) ;;
  *) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end

Hyper Key Setup & Macros

Ultimate Productivity Shortcuts

Using BetterTouchTool's Hyper Key (⌘⌥⌃⇧). Never use your eyes for navigation (vision search is slow), use your muscle memory:

Configure these shortcuts in BetterTouchTool:

  • Hyper + ← → Act as Hyper Key
  • Hyper + Q → Launch Zen Browser
  • Hyper + W → Launch Cursor
  • Hyper + E → Launch iTerm
  • Hyper + R → Launch Notion
  • Hyper + T → Launch WhatsApp
  • Hyper + F → Launch Finder
  • Hyper + D → Launch Discord
  • Hyper + Y → Launch YouTube Music
  • Hyper + P → Launch Postman
  • Hyper + M → Launch MongoDB Compass
  • Hyper + S → Launch ChatGPT
  • Hyper + 1-5 → Switch to Desktop 1-5

Tip: The Hyper Key eliminates conflicts with existing shortcuts while giving you instant access to any app. It's the most efficient way to navigate your Mac!

Development Environment Setup

Node.js & npm

Install Node Version Manager (nvm) for managing Node.js versions:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

Install the latest LTS Node.js:

nvm install --lts
nvm use --lts
nvm alias default node

Python Environment

Install pyenv for Python version management:

brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc

Install Python:

pyenv install 3.11.0
pyenv global 3.11.0

Git Configuration

Set up your Git identity and preferences:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global init.defaultBranch main
git config --global pull.rebase true

SSH Keys for GitHub

Generate and add SSH keys for secure GitHub access:

ssh-keygen -t ed25519 -C "your.email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
pbcopy < ~/.ssh/id_ed25519.pub

Now go to GitHub → Settings → SSH Keys and paste

System Maintenance

Regular Updates

Keep your system and applications up to date:

# Update Homebrew and all packages
brew update && brew upgrade

# Update Oh My Zsh
omz update

# Update npm packages globally
npm update -g

Cloud Backup: Additionally, use iCloud to sync your important folders.

Essential Extensions & Productivity Tools

Raycast Extensions

Supercharge your macOS workflow with these must-have Raycast extensions:

  • GitHub - Search repos, issues, and PRs
  • Linear - Task management integration
  • Kill Process - Quickly terminate hanging processes
  • Clipboard History - Access your clipboard history
  • Window Management - Alternative to Rectangle
  • Speedtest - Quick internet speed tests
  • Color Picker - Pick colors from anywhere

VS Code Extensions

These are some very useful VScode Extensions:

Core Productivity Extensions

  • All Autocomplete - Enhanced autocomplete across all files
  • AutoClose Find - Automatically close find dialog when you stop typing
  • Better Comments - Styled comments with alerts, todos, and highlights
  • Code Spell Checker - Catch spelling errors in your code
  • Color Highlighter - Highlight color values in your code
  • Error Lens - See errors and warnings inline with your code
  • Path Intellisense - Autocomplete for file paths
  • Todo Highlight - Highlight TODO, FIXME comments

Theme & Icons

  • Dracula Theme Official - The perfect dark theme for long coding sessions
  • Material Icon Theme - Beautiful file and folder icons

Git Integration

  • GitLens - Supercharge Git capabilities with blame annotations
  • Git History - View git log, file history, and compare branches

Code Quality & Formatting

  • ESLint - JavaScript/TypeScript linting
  • Prettier - Code Formatter - Opinionated code formatter

Python Development

  • Python - Core Python language support
  • Pylance - Fast, feature-rich Python language server
  • Python Debugger - Debug Python code with breakpoints
  • isort - Sort Python imports automatically

Web Development

  • Live Server - Launch local development server with live reload

Data & Documentation

  • Rainbow CSV - Highlight CSV files with colors
  • Markdown Preview Enhanced - Enhanced markdown preview with math support

Final Tips & Tricks

Quick Look Enhancements

Enhance Quick Look (spacebar preview) with plugins:

brew install --cask qlmarkdown qlstephen qlcolorcode quicklook-json

Touch ID for sudo

Enable Touch ID for sudo commands:

sudo nano /etc/pam.d/sudo

Add this line at the top:

auth sufficient pam_tid.so

Show Path Bar in Finder

defaults write com.apple.finder ShowPathbar -bool true

Faster Dock Auto-Hide

defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0.4
killall Dock

Paste Without Formatting (Essential for Cursor)

Set up ⌘⇧V for paste without formatting - crucial when working in Cursor:

System Settings → Keyboard → Keyboard Shortcuts → App Shortcuts

Add shortcut for "Paste and Match Style" with ⌘⇧V

Paste without formatting setup

Reference: Reddit guide on paste without formatting

CleanShot X Auto Copy Setup

Enable auto copy to clipboard in CleanShot X for seamless screenshot workflow:

CleanShot X → Preferences → General → Auto copy to clipboard

Position the setting on the right side for easy access

Remove Full Screen Shortcut Conflict

Disable ⌘⇧F full screen shortcut to avoid conflicts with code search:

System Settings → Keyboard → Keyboard Shortcuts → App Shortcuts

Find "Enter Full Screen" and remove ⌘⇧F shortcut

VS Code Auto Close Tags

Enable automatic tag closing in VS Code for faster HTML/JSX editing:

VS Code → Settings → Search "auto close tags"

Enable "Auto Close Tags" setting

VS Code Block Highlighting & Bracket Colorization

Enhanced code readability with Dracula-themed bracket colors and block highlighting:

Step 1: Open Command Palette (⌘⇧P) → "Preferences: Open User Settings (JSON)"

Step 2: Add this configuration for perfect Dracula integration:

{
  // --- Block Highlighter core settings ---
  // Semi-transparent Dracula purple (#bd93f9) with ~10% alpha
  "blockHighlighter.background": [189, 147, 249, 0.10], // RGBA
  "blockHighlighter.isWholeLine": true,
  "blockHighlighter.omit": ["plain", "markdown"],

  // --- Bracket pair colorization (VS Code built-in) ---
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": "active",
  "editor.guides.bracketPairsHorizontal": "active",

  // --- Theme-scoped workbench colors for Dracula ---
  "workbench.colorCustomizations": {
    "[Dracula]": {
      // Keep the highlight subtle against Dracula background
      "editor.selectionHighlightBackground": "#bd93f933",
      "editor.wordHighlightBackground": "#8be9fd22",
      // Bracket highlights that echo Dracula palette
      "editorBracketHighlight.foreground1": "#bd93f9",
      "editorBracketHighlight.foreground2": "#50fa7b",
      "editorBracketHighlight.foreground3": "#ff79c6",
      "editorBracketHighlight.foreground4": "#8be9fd",
      "editorBracketHighlight.foreground5": "#ffb86c",
      "editorBracketHighlight.foreground6": "#f1fa8c",
      "editorBracketHighlight.unexpectedBracket.foreground": "#ff5555"
    }
  },

  // Optional: fine-tune token colors only when Dracula is active
  "editor.tokenColorCustomizations": {
    "[Dracula]": {
      "textMateRules": [
        { 
          "scope": "punctuation.definition.block", 
          "settings": { "foreground": "#bd93f9" } 
        },
        { 
          "scope": "punctuation.section.block", 
          "settings": { "foreground": "#bd93f9" } 
        }
      ]
    }
  }
}

What this does: Adds subtle purple block highlighting, colorized bracket pairs using Dracula colors, and enhanced code structure visibility while maintaining the beautiful Dracula aesthetic.

Shortcuts to Live By

These keyboard shortcuts will save you time:

VS Code / Cursor Shortcuts

  • ⌘ + ← Collapse all folders in file explorer

Dracula Theme Setup

For complete Dracula theming across all your applications, check out my detailed guide:

Dracula Theme Setup Guide
→ Complete Dracula Theming Guide

This guide covers theming for VS Code, iTerm2, browsers with Stylus, Discord, Obsidian, and more!

Conclusion

This setup will give you a powerful, efficient, and beautiful macOS development environment.

"The best time to set up your development environment was when you got your Mac. The second best time is now."