This is my Emacs configuration, compatible with Emacs 29+. It is part of my dotfiles as a Git submodule.
It uses John Wiegley’s use-package (part of Emacs 29) to make things:
- Neatly organized
- Everything is grouped by package. I also use outshine to organize code by sections.
- Readable
use-package
offers a large choice of expressive keywords.- Self-installable
- All Emacs packages are downloaded automatically
when I first start Emacs on a new environment.
Thanks to
use-package
’s:vc
keyword, packages can even be fetched directly from source.
- early-init.el is loaded. It contains a few specific customizations that can take effect before the normal init process begins.
init.el
loads package.el, add a few tweaks touse-package
and then loads my personal config files located in./lisp/alc/
:alc-main.el
– my main config.alc-org.el
– my Org-mode config.alc-work.el
– my work config (not loaded by default).
I usually add a short configuration (alc-local.el
– not included on
any public branch) on each machine for local customizations. For
example, the org-agenda-files
variable will mix different Org
projects that depend on the machine I am working on. This way, I can
separate Org projects at the file level but still mix tasks and events
in the agenda to get a clear picture of my day. I then filter
everything by context to avoid distraction.
I am not a fan of literate Emacs configurations (yeah, I hate
them). This one used to be such a “literate config” based on a network
of Org file, but I switched for the sake of simplicity. Browse the
last commit of that Org config if you’re interested, or check the
way too numerous literate configs out there.