My mac/unix dotfiles that have grown over the years and heavily influenced from tricks seen around the block
VimL Shell Ruby Objective-C Lua C Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin Remove deleted configs from relink Oct 21, 2015
cacerts Process directory so it can be used with curl capath Oct 21, 2015
config/htop Use XDG config directory Mar 15, 2014
elinks Limit elinks tracking Mar 6, 2013
fonts Specify less vertifcal space in iTerm and update font to match Apr 10, 2016
irb Sandbox irb files in .dotfiles Feb 23, 2014
js @ 2be5d13 Update submodules Aug 22, 2016
luaenv @ d181f04 Update git submodule locations and versions Dec 6, 2015
nodenv @ 68405cc Update submodules Aug 22, 2016
os Update USB key id for launchd hook Aug 22, 2016
pyenv @ fc70193 Update submodules Aug 22, 2016
rbenv @ 023d896 Update submodules Aug 22, 2016
ssh @ 41aec4b Update submodules Aug 22, 2016
tmux Update git submodule locations and versions Dec 6, 2015
vim Add new vim spellings Sep 15, 2015
zsh Add some docker aliases to shell Aug 22, 2016
.gitattributes Try and force git to treat file as text Mar 6, 2014
.gitignore Add network locaton auto manager launchd Aug 22, 2016
.gitmodules Update submodules Aug 22, 2016 Update readme with current trends May 7, 2013
ackrc Add sass files to to ack definition Aug 10, 2010 Use more recent openssl with git Oct 29, 2015
ctags Get tags for html files Jan 6, 2015
editrc Editline vi settings Aug 12, 2011
gemrc Remove a rubygem source Jul 18, 2011
gitconfig.erb Add diff highlight config and auto commit signing Apr 10, 2016
gitignore Some more commong git ignores Oct 20, 2015
gvimrc Use a font with more linespacing Feb 22, 2013
helpers.rb Move to a bootstrap friendly setup Mar 6, 2014
htoprc Use XDG config directory Mar 15, 2014
inputrc Remove arrow key mapping, makes ^[ quicker Aug 13, 2011
irbrc Sandbox irb files in .dotfiles Feb 23, 2014
minttyrc Don't need this to be executable Feb 18, 2013
rdebugrc Add rdebug settings Aug 6, 2010
rspec Add rspec dotfile Aug 23, 2010
tmux.conf Delete removed tmux options Aug 22, 2016
vimrc Move configuration variable setting outside of setting up plugins Aug 22, 2016
zshenv Revert "Move path setting to zprofile, improves compatability with 10… Oct 29, 2015
zshrc Use source instead of . for consistency Mar 17, 2014


These are my dotfiles. There are many like them, but these are mine.

My dotfiles are my best friend. They are my life. I must master them as I must master my life.

My dotfiles, without me, are useless. Without my dotfiles I am useless.

Preferences & Programs

I use VIM and pretty much everything throughout my line editing interfaces reflect this. It is a great work in progress as emacs seems to have permeated all line editing libs, but whenever I find a VIM mapping that doesn't work the way I want I make an effort to change the config so it does.

I use rbenv because it is simple, hackable, and generally does not get in the way.

I use mutt with gpgme to read email. I use msmtp to send email. I use offlineimap to sync all my mail accounts (thankfully all imap) onto my local computer for mutt to interact with. I'm experimenting with notmuch for tagging and writing a replacement for mutt in VIM with ruby.

I develop with ruby extensively. Hence I have my things tailored for ruby and many utility programs I make are done with ruby. I only drop to zsh if I feel the startup is too much given the simplicity of the program.

I am extremely sensitive to delays and quirks in my interfaces. If they exist I tend to no longer use those tools.

I have evolved my own color scheme from a TextMate scheme I found long ago on some list. In general I don't think it resembles that too much. I do try and make it appear in any terminal interfaces I use but many terminal interfaces suck at good color handling. VIM does not, and hence I usually find a VIM based way of doing the task (hence the notmuch interface in VIM). The color scheme is called plasticcodewrap.

Because of my efforts to make everything work together, I usually make modifications to homebrew packages. If I have a dotfile in here I most likely have a tweaked formula in my personal homebrew clone. Thankfully the need for this has been going down.

I've written a very basic workalike to homebrew for Linux systems as a single gem install called coresys. It is targeted at Linux and is currently in trial development mode. I use it for my virtual machines, but I'm also actively hacking on it.


There is a basic rake task called update which will take care of initializing all the submodules, compiling all needed pieces, and then linking all top level files and folders in your home directory. The linking code is currently taken from Ryan Bates dotfiles.

Once you are setup, updating the dotfiles is a simple call to the shell function update which will take care of saving any temporary work on tracked files, updating the code base, putting back code changes, and then delegating to rake task to update all submodules and plugins.

What my iTerm2 session looks like.

iTerm2 in action

For comparison this is what the same file at the same size looks like in MacVim.

MacVim Coding