GNU Stow
Use GNU Stow to symlink config files to corresponding directories.
Stow everything:
stow -t ~ $(ls -d */) -v
When in some case a symlink becomes unmanaged, you can remove them with either of those two commands
stow -t ~ $(ls -d */) 2>&1 | grep existing | awk '{ print $11}' | xargs -I % sh -c 'rm ~/%'
# or
stow -t ~ $(ls -d */) 2>&1 | grep existing | awk '{ print $9}' | xargs -I % sh -c 'rm ~/%'