New Mac Quick Setup Guide

I’ve just setup a new mac and used the following scripts to get it 90% setup to my liking, using Homebrew to install as much as possible in one go. Once this had been run and I copied over my dotfiles I was pretty much ready to go.

  1. Install homebrew package manager:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Create a file call Brewfile (no extension) that has contents like this:
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"
tap "homebrew/services"

# Microsoft Azure CLI 2.0
brew "azure-cli"
# Bourne-Again SHell, a UNIX command interpreter
brew "bash"
# Clone of cat(1) with syntax highlighting and Git integration
brew "bat"
# GNU binary tools for native development
brew "binutils"
# Platform built on V8 to build network applications
brew "node"
# GNU File, Shell, and Text utilities
brew "coreutils"
# Get a file from an HTTP, HTTPS or FTP server
brew "curl"
# Programming language for highly scalable real-time systems
brew "erlang"
# Functional metaprogramming aware language built on Erlang VM
brew "elixir"
# Modern replacement for 'ls'
brew "exa"
# Command-line fuzzy finder written in Go
brew "fzf"
# GitHub command-line tool
brew "gh"
# Distributed revision control system
brew "git"
# GNU implementation of the famous stream editor
brew "gnu-sed"
# Simple jira command-line client in Go
brew "go-jira"
# Ping, but with a graph
brew "gping"
# Image processing tools collection
brew "graphicsmagick"
# Make JSON greppable
brew "gron"
# Improved top (interactive process viewer)
brew "htop"
# Add GitHub support to git on the command-line
brew "hub"
# Configurable static site generator
brew "hugo"
# Interpreted, interactive, object-oriented programming language
brew "python@3.8"
# Tools and libraries to manipulate images in many formats
brew "imagemagick"
# Tools and libraries to manipulate images in many formats
brew "imagemagick@6"
# JSON output from a shell
brew "jo"
# Lightweight and flexible command-line JSON processor
brew "jq"
# Modern load testing tool, using Go and JavaScript
brew "k6"
# Just-In-Time Compiler (JIT) for the Lua programming language
brew "luajit", args: ["HEAD"]
# Package manager for the Lua programming language
brew "luarocks"
# Securely transfers data between computers
brew "magic-wormhole"
# Simple tool to make locally trusted development certificates
brew "mkcert"
# Ambitious Vim-fork focused on extensibility and agility
brew "neovim", args: ["HEAD"]
# Swiss-army knife of markup format conversion
brew "pandoc"
# Object-relational database system
brew "postgresql"
# Monitor data's progress through a pipe
brew "pv"
# Persistent key-value database, with built-in net interface
brew "redis"
# Perl-powered file rename script with many helpful built-ins
brew "rename"
# Search tool like grep and The Silver Searcher
brew "ripgrep"
# Safe, concurrent, practical language
brew "rust"
# Tool for shell commands execution, visualization and alerting
brew "sampler"
# Cross-shell prompt for astronauts
brew "starship"
# Cleans your SVG files by removing unnecessary data
brew "svgcleaner"
# Code-search similar to ack
brew "the_silver_searcher"
# Terminal multiplexer
brew "tmux"
# Display directories as trees (with optional color/HTML output)
brew "tree"
# Truncates a file to a given size
brew "truncate", link: false
# Extract, view, and test RAR archives
brew "unrar"
# Extraction utility for .zip compressed archives
brew "unzip"
# Vi 'workalike' with many additional features
brew "vim"
# Watch files and take action when they change
brew "watchman"
# Internet file retriever
brew "wget"
# HTTP benchmarking tool
brew "wrk"
# JavaScript package manager
brew "yarn"
# Download YouTube videos from the command-line
brew "youtube-dl"
# UNIX shell (command interpreter)
brew "zsh"

# Application launcher and productivity software
cask "alfred"
# Utility that prevents the system from going to sleep
cask "caffeine"
# App to build and share containerized applications and microservices
cask "docker"
# Web browser
cask "firefox"
# Web browser
cask "google-chrome"
# HTTP and GraphQL Client
cask "insomnia"
# Terminal emulator as alternative to Apple's Terminal app
cask "iterm2"
# GPU-based terminal emulator
cask "kitty"
cask "microsoft-teams"
# Collaboration platform for API development
cask "postman"
# QuickLook generator for Markdown files
cask "qlmarkdown"
# Store SSH keys in the Secure Enclave
cask "secretive"
# Block your own access to distracting websites
cask "selfcontrol"
# Team communication and collaboration software
cask "slack"
# Unpacks archive files
cask "the-unarchiver"
# Configurable document editor that supports Markdown
cask "typora"
# Open-source code editor
cask "visual-studio-code"
  1. From the same folder run brew bundle install --file=./Brewfile