A comprehensive and automated setup script for macOS, designed to install essential CLI tools, GUI applications, and customize the development environment (Zsh, oh-my-zsh, iTerm2 themes).
This script automates the tedious process of setting up a new Mac. It uses Homebrew to manage installations and includes custom helper functions to ensure a smooth, idempotent installation process (skipping already installed tools).
- Zsh: The default shell for macOS.
- Node.js: JavaScript runtime.
- Python 3: General-purpose programming language.
- uv: An extremely fast Python package manager.
- OrbStack: Fast, light, and simple Docker & Linux environment.
- Slack: Team communication.
- Google Chrome: Web browser.
- Cloudflare WARP: Safer and faster internet.
- iTerm2: Terminal emulator.
- Visual Studio Code: Code editor.
- IntelliJ IDEA: Java & Scala IDE.
- Notion: Note-taking and organization.
- Lens: Kubernetes IDE.
- Dia: Diagramming tool.
- GoTiengViet: Vietnamese input method.
- oh-my-zsh: Framework for managing Zsh configuration.
- Agnoster Theme: A beautiful Zsh theme.
- Fira Code: Monospaced font with programming ligatures.
- Dracula for iTerm2: Essential color scheme for the terminal.
fancy_echo: Beautiful command-line output with icons (Info, Success, Skip, Error).brew_install&brew_cask_install: Intelligent wrappers that check if a package is already installed (including checking/Applications) before fetching it.append_to_zshrc: Safely appends configuration to~/.zshrcwithout duplicates.
git clone https://github.com/flynn3103/mac-setup.git
cd mac-setupchmod +x setup.sh./setup.shAfter the script completes, there are a few manual steps required to finalize the visual setup:
-
iTerm2 Dracula Theme:
- Open iTerm2.
- Go to
Preferences > Profiles > Colors. - Select
Color Presets... > Import. - Choose
~/dracula-iterm/Dracula.itermcolors. - Select
Draculafrom the preset list.
-
Fira Code Font:
- In iTerm2, go to
Preferences > Profiles > Text. - Click
Change Fontand select Fira Code.
- In iTerm2, go to
-
Restart Terminal:
- Close and reopen your terminal to apply the Zsh theme and configurations.