This repo contains my dotfiles, terminal configs, a "manifest" of apps that should be installed on my system and an installation script to make the process of setting up a new computer as seamless as possible.
If you have a working computer, make sure you first go through this checklist before reinstalling everything from scratch...
- commit and push changes/branches to your git repos
- save/backup all important documents from non-iCloud directories
- save all your work from apps which aren't synced through iCloud
- export important data from your local databases
- update mackup to the latest version and run
mackup backup
# 1. Update macOS to the latest version with the App Store
sudo softwareupdate -i -a
# 2. Copy your public and private SSH keys to ~/.ssh and make sure they're set to 600
chmod 600 <name_of_the_key>
# 3. Clone this repo to ~/.dotfiles
cd ~; git clone git@github.com:marcaube/dotfiles.git .dotfiles
# 4. Run install.sh to start the installation
cd ~/.dotfiles; ./install; cd -
# 5. Login with your Apple ID, check iCloud Drive and let it sync for a while
# 6. Restore preferences
mackup restore
# 7. Check that homebrew installations are A1
brew doctor
# 8. Restart your computer to finalize the process
shutdown -r nowTo pull the latest changes from the repo and update your setup.
# 1. Move into the dotfiles directory
dotfiles
# 2. Pull the changes from master
git pull
# 3. Reload the configs
reload
# 4. Restore preferences
mackup restoreTo add git credentials, custom commands, or private aliases, you should create
a zsh/extra.zsh file. This file is going to be picked up by ZSH but ignored
by git. You can use this file to add stuff you don't want to commit to a public
repository.
For example, that's where you could define your GIT_AUTHOR_NAME and
GIT_AUTHOR_EMAIL.
- sensible
macosconfigs, see this repo for more options - a
Brewfilewith a list of binaries and apps I use all the time, see the caskroom for more - an
aliases.zshfile with a bunch of useful aliases and functions- CLI app launchers
- encoding and crypto utility functions
- an
updatealias to update macOS, mac app store apps, Homebrew binaries and Cask apps - a
weatherfunction to get weather reports from wttr.in - and much more...
- a
.zshrcfile to tweak my Z shell config - most app settings synced with iCloud via Mackup
gitconfigis my git configurationsgitignore_globalis a list of files and extensions that should be globally ignored by gitmackup.cfgis the Mackup configuration, to sync app settings using iCloud instead of Dropboxmacos.shcontains my macOS preferenceszshrccontains my Oh My ZSH preferencesaliases.zshdefines a list of useful CLI aliases, shortcuts and functionsBrewfilecontains the list of binaries (homebrew) and apps (cask and mas) that I want installed on my systemexports.zshcontains thePATHenv variable configszsh/extra.zshis a file ignored by git where you can add your git credentials, custom commands, private aliases, etc.installis the installation script to make this all work "automagically"config.luacontains my LunarVim configs
- Mathias Bynens' dotfiles
- Dries Vints' dotfiles
- Sourabh Bajaj's macOS Setup Guide
- A practical guide to securing macOS