Skip to content

alecigne/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwanEmacs 🦢

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.

Structure

  • 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 to use-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).

Local configuration

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.

About literate Emacs configurations

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.