How Doom and Emacs Work Together
Regular Emacs
When you install Emacs and run it, it checks for:
~/.emacs.d/init.el or ~/.config/emacs/init.el – your personal config file
What Doom Emacs Changes
- Its own startup system
| Folder | Role |
|---|---|
~/.emacs.d/ |
Doom’s engine/core code (replaces what you thought was Emacs config) |
~/.config/doom/ |
Your personal config (like init.el, config.el, and packages.el) |
doom install
You run this right after cloning Doom to set things up for the first time. What it does:
- Installs Doom’s default core files
- Creates ~/.doom.d or uses ~/.config/doom if specified
- Installs all packages listed in your init.el (via packages.el)
- Compiles Emacs Lisp to .elc and .eln (for performance)
- Sets up Doom’s env file (so shell environment variables are available to Emacs)
Use when: setting up Doom for the first time, or after a full wipe.
doom sync
Think of this as “apply changes” after editing your init.el, packages.el, or enabling/disabling modules.
- Regenerates your load-path based on enabled modules
- Installs or removes packages as needed
- Compiles updated packages or config files
- Updates autoloads and cache
- Syncs the env file if needed
Use when: you change your config or add/remove packages.
Set Up to Run Parallel During Transitioning
- default doom
-qfor vanilla