The way most software I've seen resolve this is to have a defaults config file and a user config file. defaults is defined by the application maintainers and the user config overrides any settings in the defaults.
So you can do updates to the defaults but if users wanted to specify specific customisations those would be preserved. Also users can browser the defaults config and copy/paste chunks of that config into the user config file.
Those files are often named differently and/or located in different parts of the file system hierarchy; but the concept is the same.