Mac Bootstrap was a fun project that ran for several years. In the end, the maintenance became too much, and I began looking for simpler solutions. I've recently completed a major overhaul of my dotfiles, also with simplicity and easier maintenance in mind. The README there presents my new approach for bootstrapping a Mac computer based on my fork of Laptop + my dotfiles.
This script will provision a new machine running a fresh install of macOS Catalina (10.15). It installs and configures the software, dotfiles, and general preferences I use for web development — primarily Rails, React, and Vue. The command line environment is based on Fish (or Zsh), Neovim, and Tmux running in iTerm2 or Alacritty.
The bootstrap
script is very specific to the Mac platform. Version 5.x has been successfully tested on the following versions of macOS:
Previous versions of Mac Bootstrap have been successfully tested on the following versions of macOS:
▹ Looking for dotfiles only? Check out My Dotfiles for macOS
Make sure your software is up to date:
sudo softwareupdate -i -a --restart
Install Apple's command line tools:
xcode-select --install
Reboot, check for additional updates, then reinstall and reboot as needed.
To install with a one-liner, run this:
curl --remote-name https://raw.githubusercontent.com/joshukraine/mac-bootstrap/master/bootstrap && sh bootstrap 2>&1 | tee ~/bootstrap.log
Want to read through the script first?
curl --remote-name https://raw.githubusercontent.com/joshukraine/mac-bootstrap/master/bootstrap
less bootstrap
sh bootstrap 2>&1 | tee ~/bootstrap.log
WARNING: This script will ask for your sudo password multiple times. You'll need to babysit it for a while. 😉
When you invoke bootstrap
, here's what it does:
install/laptop
. Step 1 also installs a variety of packages via Homebrew Bundle.$HOME/bin
.$HOME
or $XDG_CONFIG_HOME
as needed.NOTE: Previously, I used the bootstrap
script to set up many of the standard directories I use in my work. But since I now have Dropbox Plus, all those directories are downloaded automatically after Dropbox is installed. Once they've synced, I symlink them into place in $HOME
.
After running bootstrap
there are still a few things that need to be done.
These are my (current) primary macOS keyboard shortcuts:
No one else's development setup will ever be a perfect match for you. That said, if your needs are close enough to mine, you might benefit from using the same shell scripts and overall structure, and just swapping out the particulars with your own. Here's my recommended approach to doing that:
Fork this repo and clone your new fork to your local machine.
Review the VARIABLE DECLARATIONS
section and customize as desired.
Review the 7 steps in bootstrap
and make your own customizations. Here's an overview of what's going on:
brew bundle
list of packages and casks that will be installed. Customize as needed. Laptop also sets up some basics that are required by the bootstrap script later on.install/macos-defaults
and adjust as needed. This script also sets things like HostName
which are needed later for the dotfiles installation.~/bin
?$DOTFILES_*
variables (see bootstrap
under "VARIABLE DECLARATIONS") to reference your dotfiles. As a starting point, you can fork mine and then point to your fork.Create ~/dotfiles/local/config.fish.local
or ~/.zshrc.local
, ~/.gitconfig.local
, and ~/.vimrc.local
and add in your personal information. These files are sourced in ~/.config/fish/config.fish
or ~/.zshrc
, ~/.gitconfig
, and ~/.vimrc
respectively.
Update the README with your own info, instructions/reminders so you don't forget what you did, and especially the correct install URL:
curl --remote-name https://raw.githubusercontent.com/YOUR-GITHUB-USERNAME/mac-bootstrap/master/bootstrap && sh bootstrap 2>&1 | tee ~/boostrap.log
Copyright © 2020 Joshua Steele. MIT License