senny / cabbage

get the maximum out of emacs
http://senny.github.com/cabbage/
155 stars 21 forks source link

support for user-specific settings #31

Closed senny closed 13 years ago

senny commented 13 years ago

we need a place to store user-specific configuration, which will not be merged back into e-max. I'm thinking about a directory layout in .emacs.d, which is automatically loaded by the init.el file. I think we need to be carefull about customizations, which need to run "before" or "after" e-max gets loaded.

jone commented 13 years ago

maybe also remove bundle-configuration from init.el and move it to this custom file (as mentioned in #18)? I'd like to keep init.el as static as possible, so that install.sh can be executed without pain..

senny commented 13 years ago

of course we can make an init.el, which is just a plain copy of the template. the problem we are facing then is, that the e-max configuration will be stored in another file, which must be copied upon installation. This configuration file then has the same semantics as the current init.el so that it can't be replaced when we perform an update.

But I guess it makes sense to put the configuration in a separate file and simply copy over init.el. This way we got the flexibility to change the "initializing" code for e-max when needed.

jone commented 13 years ago

we are then also able to re-write init.el on "update", which allows us to switch between different e-max clones or to move the e-max repo to antother path, update and it works without removing configurations..

senny commented 13 years ago

sounds reasonable. we should do this. (sorry pressed the wrong button and closed)

senny commented 13 years ago

there are three possible ways to customize e-max:

1.) ~/.emacs.d/local.el this file is meant to contain local adjustments for your installation

2.) ~/.emacs.d/machines/your-system-name.el this file is hostname specific (string returned by the command 'hostname' without the '.local')

3.) ~/.emacs.d/users/your-system-username.el this file is user-name specific (string returned by the command 'whoami')

the files get loaded in the described order. you can put arbitrary inside every of these files. If you need to interact with the e-max life-cycle please have a look at the lib/hooks.el file to see where you can hook in.

senny commented 13 years ago

@jone: I think we need to adjust the setup process so that the directories users and machines are created with example files. I opened a ticket: #59