Hi! Seaman Emacs is my attempt at a literate, modular (module-layer), extensible Emacs configuration.
Seaman makes it easy to add new packages or combinations of packages to your config and safely test them out, as well as phasing out unused packages and remove bloat from your config. Lastly, all source code is easily navigable and documented, with a single .org file in charge of running the show.
If you use Emacs 29 it’s super easy to try it out with --init-directory
!
I’d appreciate any feedback/suggestions/contributions a lot :)
https://github.com/alopezrivera/Seaman-Emacs/
Design choices:
- Source: seaman.org contains is the source of all modules and layers. All source files are asynchronously tangled when saving. config.org contains the source code of your (in this case my) config. All blocks inside are asynchronously tangled to init.el when saving
- Package manager: straight.el
- Key bindings: Emacs + custom
Out of the box:
- Clean UI
- Homescreen
- Easy theme switching (light/dark)
- “Full pack” Org Mode with org-agenda, org-calendar, org-roam etc.
- “Full pack” PDF support with pdf-tools (highlighting, etc.)
- Magit for VC
Example config:
My personal config built with Seaman is here:
https://github.com/alopezrivera/Seaman-Emacs/blob/main/config.org
Seems over-complicated. Most of the “modules” amount to:
How is that any better than a single file with some use-package declarations? Especially considering you’re using a literate Org style. The blocks could be toggled with the “tangle” header arg. The Papa Roach Approach (“Cut my lisp; init pieces…this is my last resort!!!”) is an anti-pattern. It makes Emacs load slower and is harder to reason about. If the aim is to grow a community of users, what does this config offer over the myriad other options?