The dotfiles use ZSH with oh-my-zsh. To get started, install oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"To keep local changes separate from the tracked dotfiles, use ~/.zshrc.local. This file is sourced by .zshrc before oh-my-zsh loads, so you can:
-
Add machine-specific PATH entries:
export PATH="$HOME/.local/bin:$PATH"
-
Add local plugins without modifying the repo:
plugins+=(nvm docker kubectl)
-
Add custom ZSH functions and aliases in
~/Projects/dotfiles/zsh_custom/with a.local.zshsuffix (e.g.,functions.local.zsh) — these are ignored by git and only loaded on your machine.
You can clone the repository wherever you want. (I like to keep it in ~/Projects/dotfiles, with ~/dotfiles as a symlink.) The Makefile will pull in the latest version and copy the files to your home folder.
git clone https://github.com/neybar/dotfiles.git && cd dotfiles && git submodule update --init --recursive && make installTo update, cd into your local dotfiles repository and then:
make updatemake diff— Preview which files would be changed (quick summary)make diff-long— Show detailed diffs of all changes before applying themmake copy— Copy dotfiles to home directory without running installersmake install— Runmake copy, update vim plugins, and configure git
If you're making local changes and just want to copy files into place:
make diff # Review changes first
make diff-long # See detailed diffs if needed
make copy # Apply the changesTo install these dotfiles without Git:
cd; curl -#L https://github.com/neybar/dotfiles/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,Makefile,LICENSE-MIT.txt}To update later on, just run that command again. (make won't work for the git-free install very well)
Edit ~/.zshrc.local to add machine-specific PATH entries. Since .zshrc.local is sourced before oh-my-zsh loads, you can set PATH variables that affect your shell:
export PATH="$HOME/utils:$PATH"Use ~/.zshrc.local to add custom commands, aliases, and environment variables without forking the repository. See the examples above in the ZSH section.
For machine-specific custom ZSH scripts, place files in ~/Projects/dotfiles/zsh_custom/ with a .local.zsh suffix — these are git-ignored and won't be committed.
During make install, you'll be prompted to configure your Git user name and email. This setup also configures Git to include the .gitconfig file from your dotfiles repository, allowing you to:
- Keep custom Git commands and aliases synced across all your machines
- Keep machine-specific settings separate (user name, email, signing keys, etc.)
Your ~/.gitconfig contains your local, machine-specific settings. The dotfiles .gitconfig is automatically included via Git's include.path feature, so your custom aliases and commands are available in every repository.
If you need to update the include path after installation:
git config --global include.path ~/Projects/dotfiles/.gitconfigIf you want to maintain your own customizations long-term, consider forking this repository.
When setting up a new Mac, you may want to set some sensible OS X defaults:
./.osxNote: I haven't run the .osx script for a while. I mostly keep it for reference so I can apply settings when needed. Not all of the settings in this file are needed.
When setting up a new Mac, you may want to install some common Homebrew formulae (after installing Homebrew, of course):
brew update
brew upgrade
brew bundle ~/BrewfileAfter getting homebrew setup, you can maintain your brews with
brewskiThis will run homebrews' update, upgrade, cu, and then cleanup commands
Suggestions/improvements welcome!
-
Forked from (https://github.com/mathiasbynens/dotfiles)
-
@ptb and his OS X Lion Setup repository
-
Ben Alman and his dotfiles repository
-
Chris Gerke and his tutorial on creating an OS X SOE master image + Insta repository
-
Cãtãlin Mariş and his dotfiles repository
-
Gianni Chiappetta for sharing his amazing collection of dotfiles
-
Jan Moesen and his ancient
.bash_profile+ shiny tilde repository -
Lauri ‘Lri’ Ranta for sharing loads of hidden preferences
-
Matijs Brinkhuis and his dotfiles repository
-
Nicolas Gallagher and his dotfiles repository
-
Tom Ryder and his dotfiles repository
-
Kevin Suttle and his dotfiles repository and OSXDefaults project, which aims to provide better documentation for
~/.osx -
anyone who contributed a patch or made a helpful suggestion