A set of config files and itempotent scripts used to automate and synchronize my system environment across multiple machines.
This repository contains the personal dotfiles of Mike Greiling. Originally forked from https://mths.be/dotfiles, it has subsequently been almost entirely rewritten and adapted to utilize chezmoi (ʃeɪmwɑː | shay-mwah) for easy installation, maintenance, and synchronization. The aim is to make my preferred system configuration portable across workstations and operating systems in a deterministic way. All scripts are meant to be idempotent.
Anyone is free to use any or all of this repository for their own purposes, however I do not recommend using it verbatim. This script will prompt you for a decryption key (which you do not have) in order to enable it to install my private SSH and GPG keys.
# if chezmoi is not installed already
BINDIR=/tmp/bin sh -c "$(curl -fsLS get.chezmoi.io)" -- init --use-builtin-git on --apply mikegreiling
# if chezmoi is installed (e.g. via a package manager like homebrew)
chezmoi init mikegreiling
The --use-builtin-git on
is necessary if Xcode is not currently installed. On macOS, the git
command is stubbed with a prompt to install Xcode, so chezmoi does not detect when it is actually unavailable.
You will be prompted to supply the decryption key to install SSH and GPG keys, followed by your full name and email address which will allow git to be configured properly, further followed by an option to override the computer and hostname settings. Once all of that information is collected, it will install the dotfiles and run setup scripts.
export PATH="/usr/local/bin:$PATH"
Once chezmoi has run, a checklist with further manual steps will be placed on the Desktop.
It contains a list of items which cannot be done programatically (yet) like entering license keys, signing in to apps, and populating the dock.
Mike Greiling |
- Mathias Bynens and the original dotfiles repository I based mine off of
- Tom Payne the creator of chezmoi and his own dotfiles repository which I referenced extensively
- Katrin Leinweber's dotfiles repository
- Paul Irish's dotfiles repository
- Matthew Mueller and his "Hacker's Guide to Setting Up Your Mac" article which inspired me to research this