Bootstrap my macOS machines, for fun & profit.
I decided to migrate all Ansible playbooks to Dotbot and plain shell scripts. Switch to ansible branch if you still want to use Ansible.
Ansible has served me well for years, but the Playbooks grew over time into multiple long-running scripts. Moreover, I think I messed up the configuration and the dependencies between the playbooks as well. Now to add just a new symlink I have to edit multiple files and my setup.sh
file is badly designed too.
Some Ansible playbooks will still be here until I moved all scripts to Makefile
and Dotbot config files.
git clone [email protected]:narze/laptop.git ~/laptop
cd ~/laptop && make bootstrap
$ make
help Print command list
bootstrap Bootstrap new machine
dotfiles Update dotfiles
code Clone Repositories with ghq
brew Install brew & cask packages
tools Install non-brew tools eg. tmux package manager
asdf Install asdf-vm
all Run all tasks at once
- Homebrew
- Homebrew Cask
- Mas
- zsh with zinit (Formerly zplugin)
- asdf with Ruby & Node.js
- tmux
- macOS defaults
- Actual dotfiles
- ~/Code for workspace with public repos
- etc.
Some packages needs reloading shell (eg. asdf
) On a fresh macOS you may have to run setup command once, and run again in a new tab which has $PATH reloaded.
- Modify system preferences
- Keyboard shortcuts
- Keyboard layouts
- Migrate Ansible Playbooks to Dotbot config
- Add folders to Favorites in Finder
- Redesign setup script
- Separate bootstrap script (first run on vanilla) from update script
- Print readme when bootstrap script is done, eg. login & sync Dropbox & Google Drive & 1Password & Restore mackup
- Remember & retry on failed step