On my system I had way too much dotfiles:

% ls -d ~/.* | wc -l

421

For easier maintenance I wrote libetc. It is a LD_PRELOAD-able shared library that intercepts file operations: if a program tries to open a dotfile in $HOME, it is redirected to $XDG_CONFIG_HOME (as defined by freedesktop).

You can then store all your config files in $XDG_CONFIG_HOME instead of using zillions dotfiles in $HOME

If $XDG_CONFIG_HOME is not defined, the dotfiles are stored in $HOME/.config/

For more info read: README