This is my system configuration for macOS consisting of config "dotfiles" and shell scripts.
- Clone this repo to a directory in the $HOME folder;
- Run
cd dotfiles
- Run
./dotfiles-setup.sh
. This idempotent script will:- Initialize
/secrets
folder (repo). This is a separate repo that contains secrets that will not be commited/push to the same remote as the main dotfiles repo. - Create symlinks for all files and top level folders in $HOME/dotfiles. For example, $HOME/.zshrc symlink will be created which will point to $HOME/dotfiles/.zshrc.
- Create additional symlinks for applications that do not store config in $HOME. For example, a symlink will be created from /Library/Application Support/Code/User/settings.json to $HOME/.vscode.settings.json so that VS Code will use config residing in dotfiles, even though the original config location is outsite of $HOME.
- Create symlinks for ssh key:
/.ssh/id_rsa > ${HOME}/secrets/id_rsa
and/.ssh/id_rsa.pub > ${HOME}/secrets/id_rsa.pub
targeting key stored in $HOME/dotfiles/secrets. - Replace current user crontab with contents of
/.crontab
- Initialize
dotfiles-link.sh
- If there are files in $HOME that you would like to be moved to the dotfiles repo, you can rundotfiles-link.sh
and pass in the name of the file that resides in $HOME. This will move the file to/home
and create a symlink to it.
When setting up an macOS system initially, the following steps should be performed to get a base system setup. NOTE: These steps should be performed before running ./dotfiles-setup.sh
- Install Homebrew -
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Install apps:
brew install git wget zsh bash vim jq node yarn heroku/brew/heroku postgres && brew tap homebrew/cask-fonts jakehilborn/jakehilborn && brew cask install font-meslo-lg iterm2 github google-chrome visual-studio-code phantomjs phantomjs slack itsycal docker beyond-compare spectacle franz db-browser-for-sqlite displayplacer brew
- Open Chrome and install 1Password X Chrome Extension and login
- Find
id_rsa
file in 1Password and download to .ssh/id_rsa then runchmod 600 ~/.ssh/id_rsa
- Install:
- Oh My Zsh -
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" && git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- RVM -
\curl -sSL https://get.rvm.io | bash
- Status Clock
- Monosnap
- Xcode
- Oh My Zsh -
- Configure:
- Host name:
sudo scutil --set HostName name-you-want
- Tell iTerm2 to look at
~/.iterm
for settings
- Host name:
- Follow steps in "Usage" section above