Journal Archives About Books Talks

Dotfile discovery

As I tweeted earlier this week, I came for the Ruby and Rails. I stayed for the *nix.

One of the joys of moving away from Windows has been having most of my personal settings for editors and command line tools stored in simple text files I can take with me from machine to machine. You wouldn't think twice about working on a serious project without source control, yet so many developers don't version their dotfiles. I admit, that was me for far too long. I customized so little on my Mac that it didn't seem like it was worth the trouble.

I finally decided to set up my own dotfiles repo using Josh Nichols' Homesick gem. I quickly realized that having my dotfiles versioned in source control brought a freedom to tinker. I could try new keybindings or color schemes and not feel like I was making a huge investment.

Then I read Zach Holman's post and it changed the way I looked at other people's dotfiles. Tucked away inside of these little text files are valuable tips of tricks, simple insights into how other developers work.

There are few different ways to find interesting dotfile repos on GitHub. Of course there's a Google search. You could also do a repository search on GitHub. I've found the best dotfiles by searching for known config file names on GitHub.

I spend a good part of the day in the Git command line so I'm always on on the lookout for good Git aliases like these:

loll = log --graph --decorate --pretty=oneline --abbrev-commit
lol = !git --no-pager loll
lolal = log --graph --decorate --pretty=oneline --abbrev-commit --all
lola = !git --no-pager lolal

Feed
screencap

Sometimes I discover new tools altogether, like gitv, a great little extension of Fugitive:

Gitv
screencap

Some dotfile repos are chock full of OS X settings:

# Disable menu bar transparency
defaults write NSGlobalDomain AppleEnableMenuBarTransparency -bool false

# Show remaining battery time; hide percentage
defaults write com.apple.menuextra.battery ShowPercent -string "NO"
defaults write com.apple.menuextra.battery ShowTime -string "YES"

Summary

As Joshua Clayton put it on a recent episode of The Changelog, ultimately if you don't think your dotfiles are the best you're Doing it Wrong™. (His dotfiles are very good, by the way.) Cherry pick what you like in other dotfiles. Keep what works, throw out what doesn't. Build your own light saber. Rebuild it with confidence.

# Posted on