My scripts for bootstrapping a dev environment on a fresh macOS installation.
- New machine? Read the Instructions
- Looking for my dotfiles? Here they are.
- About to reformat? See the Preflight Checklist
- Looking for more? Check out the Postinstall Checklist
Somewhat Sane Defaults:
- The OS X defaults file is heavily commented so you can take out the parts you don’t want
- Homebrew for managing operating system libraries
- The Silver Searcher for finding things in files
- fzf for finding files in things
- 🍣 fish on the command-line
- oh-my-fish as your shell package manager
- HTTPie for making REST requests from the command-line
- See out the full list of apps this script installs
- Clone this repo anywhere on your machine
- Read the scripts!
osx.sh
in particular does a lot of opinonated stuff to your machine - Run
sh bootstrap/bootstrap.sh
That’s it! Altogether it takes around 20 minutes.
Upon bootstrap, this script generates an SSH key and uses it to install my dotfiles repo.
If you configure this on your own dotfiles repo, be warned that this script will symlink every file and folder you have in there to your home directory, unless:
- it’s an
.org
or.md
file - it lives inside the
.excludes/
directory (files you need/want to install manually here) - it’s something you’d probably add to a
/.gitignore
file (for example/.DS_Store
)
This can lead to surprising behavior if you’re not expecting it.
See excluded files regex to alter this behavior.
Homebrew installs a bunch of packages and applications for you.
See brew.sh to change what will be installed. Note that Cask will force app installs.
Meaning if an app already exists in your Applications folder, it will be removed and reinstalled. This will ensure you get the latest version, but might also lose that app’s config.
See the Postinstall Checklist if something goes wrong (or if you’re looking to do more advanced config).
TODO: oh-my-fish gets excited sometimes and interrupts
During shell configuration, sometimes OMF will decide to launch fish, interrupting the process.
This doesn’t break anything, you just have to run the bootstrap script again (I’d skip the SSH and Homebrew steps the 2nd time around).
TODO: fix fzf being fishy.
If fzf
doesn’t work right away after configuring fish, try making sure Oh My Fish is up to date and on the dev
channel by doing:
$ omf channel dev
$ omf update
You’ll know it’s working if you can hit ^+R
or ^+F
to search through history, or find a file.