This may be obvious, but I can't think my way through it.
Is it possible to have your extension (TCE or TCZ) include configuration files which:
1. Work out of the box, without manual "copying to your home directory"
2. Are changeable---even deletable---by the user
3. The user's modifications persist and aren't clobbered by the next boot?
4. bonus if package updates don't clobber user config changes, but do update things that aren't changed by the user.
I'd like to package up some Emacs extensions, along with some elisp files that load these extension and configure them sensibly. So I want the user to have the experience I've set up---unless they see otherwise. In this case they should be able to tweak my settings, or erase the config files (so that the extensions are not loaded automatically into Emacs), and get what they want.
I'd be fine to put the config files in some "system" place (/usr/local/share/emacs/local-extensions/config/) as opposed to a user's home directory and tell these experienced users to "copy the configs to somewhere in your home directory and change this variable to point to the directory where you put your versions". Does this sound like the best way?
But even that leaves me with the problem of the main config file for the program. How do you get a sensible config file into the user's home directory on the first load, which isn't clobbered by subsequent loads?
I suppose other extensions have solved this. Can anyone point me to one that does it cleverly, so that i can hack it's install script?
Many thanks.
By the way, it's hard to find documentation on what the 'user.tar.gz' part of an extension is for. Perhaps that could be added to the wiki page on Creating Extensions, so people know (1) when to use it (2) when not to use it (3) what problems or limitations it has (why to avoid it when you can). I did a search of the forums and got a few shreds, but not the whole picture. There seems to be some problem with converting TCE's with a user.tar.gz to TCZs. True?