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)"
    
  2. 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 "[email protected]"
    # Tools and libraries to manipulate images in many formats
    brew "imagemagick"
    # Tools and libraries to manipulate images in many formats
    brew "[email protected]"
    # 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"
       
    
  3. From the same folder run brew bundle install --file=./Brewfile