A helpful configuration macro for Emacs
Fix "SourceHut" link in README
a3c1e11b — Earl Hyatt 2 months ago
Add forms to `setup-make-setter` for working on lists.
Bump version to 1.3.2


browse  log 



You can also use your local clone with git send-email.

#Helpful Configuration Macro

Find here the source for setup.el, that defines the setup macro. This simplifies repetitive configuration patterns, by providing context-sensitive local macros in setup bodies.

This definition is rather terse, but describes the package and the main macro pretty well. If you are interested in more details and further examples, check out the SetupEl page on Emacs Wiki.

Feel free to contribute to this wiki page, either by adding your own local macros or adding any other examples. No accounts is necessary to make changes to Emacs Wiki, and everything can be done anonymously.


setup.el is avaliable from GNU ELPA. It can be installed by invoking

M-x package-install RET setup RET


The setup macro is autoloaded, and can be used directly. The code generated by setup does not depend on setup.el, meaning that your initialization file can be byte-compiled more efficiently.

There exist no configuration options for setup. Anything you might want to add or change can be done by defining or overwriting a local macro using setup-define.

All local macros are (dynamically) documented as part of the setup docstring.


As setup.el is distribed as part of GNU ELPA, and therefore requires a copyright assignment to the FSF, for all non-trivial code contributions.

I am currently hesitant to add more local macros. The current set is already reduced to those that (IMO) do a good job at highlighting setups features or are instructive examples on how to define your own local macros. Anything that could just as well be an alias or a custom, context-insensitive macro is not worthwhile adding to setup.el.

#Source code

setup is developed on SourceHut.

#Bugs and Patches

Bugs, patches, comments or questions can be submitted to my public inbox.


setup.el and all other source files in this directory are distributed under the GNU Public License, Version 3 (like Emacs itself).