After cloning this repo, run install
to set up the user environment. The install script is idempotent --- running it multiple times has no effect.
Dotfiles uses Dotbot and Dotbot-Pip for installation.
The intent of this repo is to bring a new macOS account to a 'standard' state. It's entirley suited to my personal preference1. Effectively, it's a barebones bootstrapping system for machines that aren't part of a larger configuration management infrastructure.
macOS doesn't come with any git available 'out of the box'; while I'd love to have everything available after a single git clone $FOO && cd $FOO && ./install
one does need to take some preparatory steps.
-
Ensure you have the Xcode Command Line Tools installed; this is a requirement for Homebrew and grants a basic version of git (which the Brewfile will then update).
xcode-select --install
-
Install Homebrew --- sensible installation requires reading the installation script to make sure it's not been tampered with, rather than just executing an arbitrary ruby script pulled via
curl
. Even non-sensible installation requires command-line interaction; as such I'd much rather this happen as a separate step. -
Clone this repo
git clone --recursive https://github.com/digitalraven/dotfiles
-
Sign in to the App Store;
mas
is flaky on Catalina and above, and command-line signin is completely broken. Signing in via the app is a workaround that makes it kinda-work-ish. Sometimes. If the moon's in the right phase and the chicken entrails show fortune in your future. -
Install
cd dotfiles && ./install
-
Go for any or all of a cigarette, a gin and tonic, or a hot beverage of your choice. The brewfile pulls down a lot of casks, so you might as well do something useful with your time.
-
For development-heavy machines, add the additional packages required (node, various DB engines)
brew bundle install --file=Brewfile-work
- Commands, packages, and software from the App Store are managed using Homebrew. This is all controlled using a
Brewfile
, a list of packages to install. Read that file to find out what's being installed. vim
configuration and plugins are installed directly, and managed via Pathogen.- Standard git configuration comes from
gitconfig
andgitignore
. - Shell customisation is done via
oh-my-zsh
, with a custom set of aliases and functions. Most plugins are in thebrewfile
, butzsh-apple-touchbar
is brought down in thepre-install.sh
as it uses a feature branch not included in the main repo. - Python modules not in homebrew are installed using Dotbot-Pip, from a list in
packages.pip
Some installed software will require purchase of a licence for full functionality. This includes (but is not limited to):
- Hyperdock
- iStat Menus
- Kaleidoscope
- Microsoft Office
- Paste
- Scrivener
- Scapple
Finding where to purchase a licence and making that purchase is left as an exercise for the user.
1: One of my personal preferences includes getting a computer to do a lot of boring, repetitive tasks2 --- such as installing software and managing configuration files. If I had to try to remember which packages to install every time, each machine I use would be in a completely different state. 2: Configuration management is a topic close to my heart, but often I end up with machines that can't (for political rather than technological reasons) be enrolled in a proper CM environment. I will happily talk about the need for suitable CM for days at a time if given appropriate conversational lubricant (beer, gin, or whisky).