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 [email protected]: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 now
To 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 restore
To 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
macos
configs, see this repo for more options - a
Brewfile
with a list of binaries and apps I use all the time, see the caskroom for more - an
aliases.zsh
file with a bunch of useful aliases and functions- CLI app launchers
- encoding and crypto utility functions
- an
update
alias to update macOS, mac app store apps, Homebrew binaries and Cask apps - a
weather
function to get weather reports from wttr.in - and much more...
- a
.zshrc
file to tweak my Z shell config - most app settings synced with iCloud via Mackup
gitconfig
is my git configurationsgitignore_global
is a list of files and extensions that should be globally ignored by gitmackup.cfg
is the Mackup configuration, to sync app settings using iCloud instead of Dropboxmacos.sh
contains my macOS preferenceszshrc
contains my Oh My ZSH preferencesaliases.zsh
defines a list of useful CLI aliases, shortcuts and functionsBrewfile
contains the list of binaries (homebrew) and apps (cask and mas) that I want installed on my systemexports.zsh
contains thePATH
env variable configszsh/extra.zsh
is a file ignored by git where you can add your git credentials, custom commands, private aliases, etc.install
is the installation script to make this all work "automagically"config.lua
contains my LunarVim configs
- Mathias Bynens' dotfiles
- Dries Vints' dotfiles
- Sourabh Bajaj's macOS Setup Guide
- A practical guide to securing macOS