Before creating another layer on top of the existing layers of configuration handling, can I suggest for now at least just hard-coding the few things that are needed in the code itself?
For example, in configHandler.py, after calling LoadCfgFiles, we could call a routine like, e.g.
def AdjustPlatformDefaults(self):
if sys.platform == 'darwin':
self.defaultCfg['main'].set('Keys', 'name', 'IDLE Classic OSX')
...
An appropriate comment could be added to config-main.def about this default option being overridden.
That would allow getting rid of the Makefile hack.