Like many others here, I like the idea of keeping my user specific configuration files inside of a repository. I've seen many different implementations of this, the most common being to clone the repository into something like ~/.dotfiles and then using a included script to symlink the files. I'm lucky enough to have been able to move all of my dotfiles into the $XDG_CONFIG_HOME, so I have no need to link files other than ~/.profile and ~/.bashrc. You can find my dotfile repository here.
This works really well for a single system. But really only makes it useful for sharing configurations and for restoring configurations for that specific machine.
It would be great if I could also use this repository to quickly install my dotfiles on a new machine. Now obviously I can clone this repository on any other machine and things will work, but there are a few problems:
What happens when the dot files need to differ. For example, my sxhkd configuration has some differences on my desktop vs on my laptop.
A lot of the configuration files may have no relevance on the system. For example I use the xboxdrv userspace driver on my HTPC so I can use a 360 controller. But obviously I don't need this on any other machines.
I've tried using branches, but this can become hard to maintain when there are a lot of changes on a branch. My current working idea for can be found on the custom-env-dotfiles branch of my dot-config repository (check the readme)
I was curious if anyone else has thought about this and has come up with solutions? Or maybe someone has some other ideas for what I'm trying to do.
Last edited by EvanPurkhiser (2013-12-23 04:41:50)