Vim script Shell Ruby Perl JavaScript Python
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin Follow symlink when editing script/alias/etc Aug 13, 2018
config/kitty Add kitty terminal configuration Jun 24, 2018
fonts Italics work in the terminal! Apr 28, 2018
helpful-tips reattach-to-user-namespace isn't needed anymore Jun 17, 2018
slack-themes Rename Slack theme file, which isn't a Vim theme May 1, 2018
ssh Configuration for Oct 9, 2016
system Turn off smart quotes and dashes Jul 7, 2017
tag-arduino Combine all Zsh settings into one big zshrc Mar 24, 2017
tag-git Make post-merge git hook better Jul 17, 2018
tag-haskell Let's format Haskell prettily Oct 16, 2017
tag-javascript Install a specific version of Yarn (via NPM) Jul 6, 2018
tag-python Combine all Zsh settings into one big zshrc Mar 24, 2017
tag-ruby Only install 1 Ruby version, oops May 30, 2018
tag-tmux reattach-to-user-namespace isn't needed anymore Jun 17, 2018
terminal-themes Use Iosevka font in Tomorrow Night 80s theme Jul 31, 2017
terminfo/78 Oops, I didn't copy in the italics terminfo Apr 29, 2018
tmuxinator Don't use NVM in Hired tmux configuration Jun 12, 2018
vim Upgrade vim-plug Jul 3, 2018
zsh-plugins Install zsh-syntax-highlighting from source Oct 12, 2016
zsh/completion-scripts If there are no tmux sessions, pop up projects FZF Nov 7, 2017
.gitignore Load local git/tmux/vim configuration Apr 29, 2018
.ignore Ignore vim undodir and backups Oct 10, 2017
Brewfile Install a specific version of Yarn (via NPM) Jul 6, 2018
Brewfile.casks brew bundle fails spuriously Jun 20, 2017 Teo is so helpful! Jul 3, 2018
asdfrc Switch from rbenv/nvm to ASDF Apr 28, 2018
ctags ctags: Correctly detect namespaced Ruby classes Feb 23, 2018
curlrc curl: automatically follow Location headers Sep 25, 2017
editrc editrc Oct 11, 2011
eslintrc Add `eslintrc` that uses create-react-app styles Mar 16, 2018
iex.exs iex: show results in cyan Sep 21, 2016
ignore Don't mention `ag` in `~/.ignore` Jun 7, 2018
inputrc irb doesn't like `set -o vi` in inputrc Oct 13, 2016 Check for the actual file I want to install Apr 30, 2018
nethackrc OPTIONS=sound is an invalid option Apr 29, 2016
psqlrc Enable timing in psql Dec 11, 2017
rcrc Don't symlink `slack-themes` directory May 2, 2018
rubocop.yml Update Rubocop configuration to use new cop names Jun 27, 2018
vimrc Remove unused vim mapping Jul 6, 2018
zshenv Switch from rbenv/nvm to ASDF Apr 28, 2018
zshrc readlink before editing Aug 13, 2018


Gabriel Berke-Williams' dotfiles for Zsh, ruby, git, and more.

They assume you're using OSX.

Questions? Comments? Open an issue or tweet @gabebw.


$ git clone ~/.dotfiles
$ cd ~/.dotfiles
$ ./

It will install rcm and use that to safely symlink the dotfiles, prompting you if a file already exists (like if you already have ~/.zshrc).


rcm will symlink all files into place, keeping the folder structure relative to the tag root. However, non-configuration files and folders like system/, Brewfile,, etc will not be linked because they are in the EXCLUDES section of the rcrc file.


rcm has the concept of tags: items under tag-git/ are in the git tag, and so on. I'm using it for organization, so that if someone starts using Haskell I can point them at all of my Haskell configuration across Vim/Zsh/GHCi, all in one place.


All of the Zsh configuration is in zshrc.


Many scripts and configurations have been inspired by or outright stolen from my colleagues at thoughtbot. Of special note, I've stolen many things from Chris Toomey, Gordon Fontenot, and Teo Ljungberg, among others that I'm sure I'm forgetting.