Functionality in Doom is divided into collections of code called modules (à la
Spacemacs’ layers). A module is a bundle of packages, configuration and
commands, organized into a unit that can be enabled or disabled by adding or
removing them from your doom!
block in $DOOMDIR/init.el
.
Application modules are complex and opinionated modules that transform Emacs
toward a specific purpose. They may have additional dependencies and should be
loaded last, before :config
modules.
- calendar - TODO
- irc - how neckbeards socialize
- rss
+org
- an RSS client in Emacs - twitter - A twitter client for Emacs
- syntax
+childframe
- Live error/warning highlights - spell
+everywhere +aspell +hunspell
- Spell checking - grammar - TODO
Modules that provide new interfaces or frameworks for completion, including code completion.
- company
+childframe +tng
- The ultimate code completion backend - helm
+fuzzy +childframe
- Another search engine for love and life - ido - The other other search engine for love and life
- ivy
+fuzzy +prescient +childframe +icons
- The search engine for love and life
Modules that configure Emacs one way or another, or focus on making it easier for you to customize it yourself. It is best to load these last.
- literate - For users with literate configs. This will tangle+compile a
config.org in your
doom-private-dir
when it changes. - default
+bindings +smartparens
- The default module sets reasonable defaults for Emacs. It also provides a Spacemacs-inspired keybinding scheme and a smartparens config. Use it as a reference for your own modules.
Modules that affect and augment your ability to manipulate or insert text.
- evil
+everywhere
- transforms Emacs into Vim - file-templates - Auto-inserted templates in blank new files
- fold - universal code folding
- format
+onsave
- TODO - god - TODO
- lispy - TODO
- multiple-cursors - TODO
- objed
+manual
- TODO - parinfer - TODO
- rotate-text - TODO
- snippets - Snippet expansion for lazy typists
- word-wrap - soft wrapping with language-aware indent
Modules that reconfigure or augment packages or features built into Emacs.
- dired
+ranger +icons
- TODO - electric - TODO
- ibuffer
+icons
- TODO - undo
+tree
- A smarter, more intuitive & persistent undo history - vc - TODO
- mu4e
+gmail
- TODO - notmuch - TODO
- wanderlust
+gmail
- TODO
Modules that bring support for a language or group of languages to Emacs.
- agda
+local
- TODO - cc
+lsp
- TODO - clojure
+lsp
- TODO - common-lisp - TODO
- coq - TODO
- crystal - TODO
- csharp
+lsp +unity
- TODO - dart
+lsp +flutter
- data - TODO
- elixir
+lsp
- TODO - elm
+lsp
- TODO - emacs-lisp - TODO
- erlang
+lsp
- TODO - ess
+lsp
- TODO - factor - TODO
- faust - TODO
- fsharp
+lsp
- TODO - fstar - F* support
- gdscript
+lsp
- TODO - go
+lsp
- TODO - haskell
+dante +ghcide +lsp
- TODO - hy - TODO
- idris - TODO
- java
+meghanada +eclim +lsp
- TODO - javascript
+lsp
- JavaScript, TypeScript, and CoffeeScript support - json
+lsp
- TODO - julia
+lsp
- TODO - kotlin
+lsp+
- TODO - latex
+latexmk +cdlatex +fold +lsp
- TODO - lean - TODO
- ledger - TODO
- lua
+moonscript
- TODO - markdown
+grip
- TODO - nim - TODO
- nix - TODO
- ocaml
+lsp
- TODO - org
+brain +dragndrop +gnuplot +hugo +ipython +journal +jupyter +noter +pandoc +pomodoro +present +pretty +roam
- TODO - php
+hack +lsp
- TODO - plantuml - TODO
- purescript
+lsp
- TODO - python
+cython +lsp +pyright +pyenv +conda +poetry
- TODO - qt - TODO
- racket - TODO
- raku - TODO
- rest - TODO
- rst - TODO
- ruby
+lsp +rvm +rbenv +rails +chruby
- rust
+lsp
- TODO - scala
+lsp
- TODO - scheme - TODO
- sh
+fish +lsp
- TODO - sml - TODO
- solidity - TODO
- swift
+lsp
- TODO - terra - TODO
- web
+lsp
- HTML and CSS (SCSS/SASS/LESS/Stylus) support. - yaml
+lsp
- TODO
Modules to improve integration into your OS, system, or devices.
- macos - Improve Emacs’ compatibility with macOS
- tty
+osc
- Improves the terminal Emacs experience.
Modules that offer terminal emulation.
- eshell - TODO
- shell - TODO
- term - TODO
- vterm - TODO
Small modules that give Emacs access to external tools & services.
- ansible - TODO
- debugger
+lsp
- A (nigh-)universal debugger in Emacs - direnv - TODO
- docker
+lsp
- TODO - editorconfig - TODO
- ein - TODO
- eval
+overlay
- REPL & code evaluation support for a variety of languages - gist - TODO
- lookup
+dictionary +docsets +offline
- Universal jump-to & documentation lookup backend - lsp
+peek +eglot
- Installation and configuration of language server protocol client (lsp-mode or eglot) - magit
+forge
- TODO - make - TODO
- pass
+auth
- TODO - pdf - TODO
- prodigy - TODO
- rgb - TODO
- taskrunner - TODO
- terraform - TODO
- tmux - TODO
- upload - TODO
Aesthetic modules that affect the Emacs interface or user experience.
- deft - TODO
- doom - TODO
- doom-dashboard - TODO
- doom-quit - TODO
- fill-column - TODO
- hl-todo - TODO
- hydra - TODO
- indent-guides - TODO
- ligatures
+extra +fira +hasklig +iosevka +pragmata-pro
- Ligature support for Emacs - minimap - TODO
- modeline
+light
- TODO - nav-flash - TODO
- neotree - TODO
- ophints - TODO
- popup
+all +defaults
- Makes temporary/disposable windows less intrusive - tabs - TODO
- treemacs - TODO
- unicode - TODO
- vc-gutter - TODO
- vi-tilde-fringe - TODO
- window-select
+switch-window +numbers
- TODO - workspaces - Isolated workspaces
- zen - Distraction-free coding (or writing)