lots of config generation and resetting

still have to do the config changes being applied while the program is
running though. I'm thinking I'll save settings when the tab changes,
rather than when any variable changes.