I use Ansible to provision my macOS installation. My idea is to keep it simple, so the basic approach is:
- Setup all the software packages using homebrew.
- Clone my dotfiles git repo, and setup symlinks to it.
- I use kitty as my terminal emulator, because I like it's speed and customizability. The stock terminal is pretty bland, so most of my focus is to get kitty looking good.
- I use neovim as my text editor and vim-plug as package manager.
- I use amethyst as tiling window manager. It's free, lightweight and does not involve disabling key security features like yabai requires. Besides, I don't need anything crazy or highly configurable here.
My kitty and neovim configurations will be constantly evolving, but they will all be tracked in the dotfiles git repo.
Ultimately, there will always be some manual configuration needed. I will try to keep track of that here.
-
Install ansible into a virtual environment
mkdir ~/venvs && cd ~/venvs
python3 -m venv ansible
source ansible/bin/activate
python3 -m pip install ansible
-
Clone this repository, and
cd
into it. -
Run
make install
for all the prerequisites. -
Run
make setup
to run the complete setup.
There are some steps that are not readily automated (by me), so do the following:
- Set
System Preferences
->General
->Appearance: Dark
- Open nvim using
v
(from aliasing) ornvim
- Run
:PlugInstall
to install all the defined vim-plug plugins
- Enable
Window Margins
of 5px and check `Smart Window Margins1, which is left to default of 0px. - Enable any layouts you need on the
Layouts
tab. - Restart Amethyst.
- Google drive and Nextcloud will require login information
- Reaper will require license key
- I'll try to keep track of other software packages here as I add them
Everything here is inspired by Jeff Geerling's ansible playbook for mac, and I use his ansible galaxy roles to write my own playbooks here, which makes it much easier.