Why would I want my dotfiles on GitHub?
- Backup, restore, and sync the prefs and settings for your
toolbox. Your dotfiles might be the most important files on your machine.
- Learn from the community. Discover new tools for your toolbox and new
tricks for the ones you already use.
- Share what you've learned with the rest of us.
Get started with a bootstrap
If you're just starting out, before you go symlinking everything in
you may want to check out a few bootstrap projects that take the heavy lifting
out of the process. Here are a few of our favorites:
- Zach Holman's dotfiles features topical organization, auto sourcing Zsh files, easy Zsh completion extensions, and a local bin folder for executables. The included
Rakefile will symlink anything ending in
.symlink to your
- Mathias Bynens' dotfiles includes a bootstrap script that rsyncs your repo to your home folder. Mathias' OS X defaultsscript is legendary.
- Yan Pritzker's dotfiles bundles an opinionated set of Vim plugins and Zsh setup all tuned for using Solarized on OS X.
- Ben Alman's dotfiles support different configurations per OS, linking, copying and environment setup.
- Paul Miller’s dotfiles feature greatly customized zsh with auto-completion and syntax highlighting, a bunch of useful git extras and colourful themes for OS X Terminal and Sublime Text 2.
- xero's dotfiles are managed with gnu stow, a free, portable, lightweight symlink farm manager.
- Adam Eivy's dotfiles are focused on Automation (no manual install/config) for Zsh and OSX with a friendly bot to guide your way.
Go farther with a framework
For a lot of us, a big chunk of our
~ folder is devoted to our shell and
our text editor. Until you're ready to roll your own setup, these projects make
customization safe and easy.
- antigen is a framework for using plugins and themes in your Zsh configuration. It will automatically clone repositories containing the plugins you're using without you having to manually create submodules or clones, and supports using oh-my-zsh plugins and themes as well as ones published as separate repositories.
- antigen-hs is an antigen-inspired zsh plugin manager that tries to do work statically and only on manual invocation, minimizing the zsh startup time. Antigen-hs is much more minimalistic and emphsizes convention over configuration more strongly than antigen.
- dotzsh strives to be platform and version independent, some functionality may be lost when running under older versions of zsh, but it should degrade cleanly and allow you to use the same setup on multiple machines of differing OS's without problems.
- oh-my-zsh is a community-driven framework for managing your Zsh configuration. It bundles 40+ plugins and 80+ themes.
- Prezto is a configuration framework for Zsh. It's a lightweight alternative to oh-my-zsh with sane defaults, aliases, functions, auto completion, prompt themes and dozens of well documented modules.
- zgen is a lightweight plugin manager for ZSH inspired by Antigen. The goal is to have a minimal overhead when starting up the shell because nobody likes waiting
awesome-zsh-plugins is a list of ZSH plugins, themes and completions compatible with ZSH frameworks like antigen, oh-my-zsh and zgen.
- bash-it is a "shameless ripoff of oh-my-zsh," but for bash.
- Janus is a distribution of plug-ins and mappings for Vim, Gvim and MacVim.
- Pathogen is a plugin manager for Vim.
- Vundle is short for Vim Bundle and is a plugin manager for Vim. It works with Pathogen compatible vim plugins.
General-purpose dotfile utilities
- Dotbot is a lightweight standalone tool to bootstrap dotfiles, making it easy to have a "one click" installation/upgrade process for your dotfiles.
- dotfiles.sh by Trevor King. Dotfiles.sh manages multiple dotfile repositories so you can keep your public and private configuration separate. It also supports locally patching your dotfiles before symlinking to adapt to the local machine. Dotfile repositories may be fetched via either Git or (where Git is not available) wget.
- fresh is a tool to source dotfiles from others into your own. It supports shell configuration (aliases, functions, etc.) as well as config files (e.g.
gitconfig). Think of it as Bundler for your dotfiles.
- ghar by Brandon Philip. Ghar is a standalone Python script for managing git repos symlinked into your home.
- Homesick, by Josh Nichols. Homesick makes it easy to symlink and clone dotfiles repos.
- homeshick by Anders Ingemann is like Homesick but written in bash. Great to combine with myrepos.
- rcm is a set of well-documented shell scripts that help manage your dotfiles. It is easily installable on OSX with the homebrew package manager, but works on all unix operating systems.
- vcsh by Richard "RichiH" Hartmann.
vcsh manages all your dotfiles in Git without the need for symlinks. Any number of Git repositories will co-exist in parallel in your
$HOME without interferring with each other. Advanced use cases with different branches for different systems are supported by default. An extensive hook system lets you customize your repositories.
vcsh includes batch push, pull, and status commands which operate on all your repositories at once.
Don't ignore your
GitHub has a great collection of
.gitignore templates for a wide range of languages and editors. We recommend Simon Whitaker's gitignore-boilerplates to help you manage them.
Consider using Git submodules as you
start to add 3rd party frameworks, scripts, and plugins. Submodules make
managing dotfile dependencies so much easier.
Why create this site?
Some of your fellow GitHub friends have
found incredible value in digging through Other People's Dotfiles
(OPD). We aim to share that knowledge with you, our fellow wayfaring
stranger in the shell.
You totally need to know about a great bootstrap or framework, how do I submit?
Great! We're always looking for new projects to follow. Please submit a PR or connect
with us on Twitter.
Oh no! I've committed passwords/API keys/other sensitive data!
We've got you covered! Take a look at the sensitive data removal
Your FAQ is weak. It so did not answer my question.
That's not a question. But feel free to ask us anything on
Twitter. Maybe we can expand this list.
Want to help out? Great! Submit a feature request, open an issue, or submit a patch.