Works on *nix, optimized for macOS.
Managed using Stow, so you can pick and choose which programs to install.
Initially I tried entirely automating the entire install process, but quickly found it wasn't worth the maintenance. Starting from scratch happens so rarely for me that each time I was fiddling with the bootstrap scripts to work around a random issue (often due to a new version of macOS).
Instead, it's simpler to install stuff by hand, and manage only the configuration files (dotfiles) in this repo.
-
Make hidden files/folder visible in Finder:
defaults write -g AppleShowAllFiles -bool true -
Clone this repo:
git clone git@github.com:jeffwidman/dotfiles.git ~/.dotfilesIf cloning to a server without a Github-connected SSH key use
httpsinstead:git clone https://github.com/jeffwidman/dotfiles.git ~/.dotfiles -
Install desired binaries using your favorite package manager:
-
If on macOS, use Homebrew:
-
Install Homebrew.
-
Use Homebrew Bundle to install the stuff listed in the
.Brewfile:brew bundle --file=~/.dotfiles/homebrew/.BrewfileAfter the
.Brewfileis symlinked into~/.Brewfile, just use:brew bundle --global
-
-
Make sure
Stowgets installed, we'll use this later to symlink the dotfiles. -
Ruby: Use
rvminstead of Homebrew. Much easier to manage gemsets, ruby versions, etc. -
Node: Use
nvminstead of Homebrew for managing Node.
-
-
Switch the default shell to the
zshinstalled by Homebrew (it's a newer version than the macOS default):-
Append the path to Homebrew's installed
zsh:sudo sh -c "echo $(brew --prefix)/bin/zsh >> /etc/shells" -
chsh -s $(brew --prefix)/bin/zsh
-
-
Install
prezto:git clone --recursive git@github.com:sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"The default
preztoinstructions say to symlink the default config files. Don't do this; instead useStowto symlink your own config files (instructions below).To update
prezto:git pull && git submodule update --init --recursive -
Now use
stowto symlink whatever config files are relevant:-
cd ~/.dotfiles/
-
$ stow FOLDER_NAMEwill symlink all the files inside of the folder into the parent directory (in this case, the user's home folder.)
stowwhatever is relevant:bashgithomebrew- stowable,brew bundle --globalwill use$HOME/.Brewfileiterm2- my.zshrcfile is configured to look for the shell integration file.pypirubysshtmux- #TODOvim- for when Neovim isn't availablevimify-.inputrcand.editrcmake vim commands work in many interactive shells, for example themysqlandpostgresshellszsh- includespreztoconfig files
Stowthoughtfully raises an error if the symlink destination already exists. For example, installingzshcreates a default~/.zshrcand~/.zshlogin. Just delete these default files before stowing your customized versions.If using a different OS than macOS, some packages may store their config files at a different location. For example, the fonts folder. Just specify the full destination path for
Stow.More info:
-
-
Other config files that aren't
stowable:nvim- Neovim. No need to stow as it respects$XDG_CONFIG_HOMEpython- not stowable, I basically use this as a cheat sheet to remind me of my favorite python packages.- VSCode IDE - don't backup its dotfiles, use its built-in settings sync instead.
-
Other apps I commonly install:
- Visual Studio Code
- Settings and extensions are saved via the built-in settings sync.
- Need to manually install the shell command
code.
- iTerm2
- Cyberduck
- PGAdmin or Postico
- MySQLWorkbench
- Robomongo
- SourceTree
- Virtualbox
- BetterTouchTool
- Rectangle
- macOS
/etc/hostsGUI
- Visual Studio Code
-
zshcompletion scripts:Symlink any completion scripts into
/usr/local/share/zsh/site-functions/. The filename must begin with an_orzshwill not read it. Prezto caches the output ofcompinit, to rebuild the cache do:# typically for me this is located in ~/.cache/prezto/zcompdump rm -rf "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump" && compinit
Note: Many
homebrewformulae automatically handle installing the formula's completion scripts. For example,brew install the_silver_searcher(ag) will also install a completion script foragin/usr/local/share/zsh/site-functions/.Docker completion scripts - I opened sorin-ionescu/prezto#1459 to try to get this into
prezto:ln -s /Applications/Docker.app/Contents/Resources/etc/docker.zsh-completion /opt/homebrew/share/zsh/site-functions/_docker ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.zsh-completion /opt/homebrew/share/zsh/site-functions/_docker-compose
List of possible macOS customizations: https://mths.be/macos
Favorite Colorschemes:
monokaisolarizedrailscasts
Favorite Fonts:
- Ubuntu Monospace including powerline fix
- Adobe Source Code (look for powerline fix)
-
add https://github.com/skwp/dotfiles/blob/master/ctags/ctags to make ctags parse ruby and js better
-
how to use ctags http://scholarslab.org/research-and-development/code-spelunking-with-ctags-and-vim/
-
Improve my vimrc and nvimrc - vim plugins:
- vim-markdown Markdown syntax highlighting for Vim
- syntastic (pylint, pep8, pyflakes linters)
- youcompleteme
- tasklist
- taglist (and ctags) (tagbar as alternative?)
- nerdtree
- powerline
- minibuffexplorer
- the_silver_searcher (vs ctrlp?)
-
add powerline - used in vim, zsh, ipython, and tmux
Copyright 2015 Jeff Widman Licensed under the MIT License