The location of the configuration file
Karabiner-Elements stores configuration to a json file which is located ~/.config/karabiner/karabiner.json
About symbolic link
If you want to move karabiner.json to another place and make symbolic link, make a symbolic link to ~/.config/karabiner directory instead of karabiner.json.
Do not make a symlink to karabiner.json directly.
Karabiner-Elements will fail to detect the configuration file update and fail to reload the configuration if karabiner.json is a symbolic link.
Making symbolic link example
The following command allows you to put karabiner.json on ~/Dropbox/private.
mv ~/.config/karabiner ~/Dropbox/private ln -s ~/Dropbox/private/karabiner ~/.config
You have to restart karabiner_console_user_server process by the following command after you made a symlink in order to tell Karabiner-Elements that the parent directory is changed.
launchctl kickstart -k gui/`id -u`/org.pqrs.karabiner.karabiner_console_user_server