This file controls what Doom modules are enabled and what order they load
in. Remember to run doom sync
after modifying it!
- Press
SPC h d h
(orC-h d h
for non-vim users) to access Doom’s documentation. there you’ll find a “module index” link where you’ll find a comprehensive list of doom’s modules and what flags they support. - Move your cursor over a module’s name (or its flags) and press
K
(orC-c c k
for non-vim users) to view its documentation. This works on flags as well (those symbols that start with a plus).Alternatively, press
gd
(orC-c c d
) on a module to browse its directory (for easy access to its source code).
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load in.
;; Press 'K' on a module to view its documentation, and 'gd' to browse its directory.
(doom! :completion
<<doom-completion>>
:ui
<<doom-ui>>
:editor
<<doom-editor>>
:emacs
<<doom-emacs>>
:term
<<doom-term>>
:checkers
<<doom-checkers>>
:tools
<<doom-tools>>
:os
<<doom-os>>
:lang
<<doom-lang>>
:email
<<doom-email>>
:app
<<doom-app>>
:config
<<doom-config>>)
calendar
edit-server ; Edit with Emacs server
slack ; Slack client for Emacs
telega ; telegram unofficial client
<<Apps for websites>>
Open websites in Emacs instead of a browser
(:unless (or IS-WINDOWS
(getenv "WSLENV"))
everywhere) ; *leave* Emacs!? You must be joking
jira ; Syncing between Jira and Org-mode.
leetcode ; Leetcode integration
mastodon ; Client for Mastodon
pocket ; Client for Pocket reading list https://getpocket.com
reddit ; read from Emacs
(rss +org) ; emacs as an RSS reader
twitter ; twitter client https://twitter.com/vnought
emms ; The Emacs Multimedia System
irc ; how neckbeards socialize
(syntax +childframe); tasing you for every semicolon you forget
(:if (executable-find
"aspell")
spell ; tasing you for misspelling mispelling
(spell +flyspell))
grammar ; tasing grammar mistake every you make
(corfu +orderless ; Completion Overlay Region FUnction
+tabnine ; cape-tabnine-to-capf
+childframe) ; Documentation popup for Corfu
(vertico ; the search engine of the future
+childframe ; Using posframe to show Vertico
+icons)
(company ; the ultimate code completion backend
+childframe ; displaying completion candidates in a child frame
+tng ; TAB-and-Go completion, incompatible with `+childframe'
+tabnine) ; the all-language autocompleter that uses machine learning
(corfu +orderless ; Completion Overlay Region FUnction
+company ; Wrap Company backend in a Cape and turn it into a Capf!
+tabnine) ; cape-tabnine-to-capf
helm ; the *other* search engine for love and life
ido ; the other *other* search engine...
ivy ; a search engine for love and life
(vertico +icons) ; the search engine of the future
literate
(default +bindings +smartparens)
(evil +everywhere) ; come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
format ; automated prettiness
multiple-cursors ; editing in many places at once
parinfer ; turn lisp into python, sort of
rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
substitute ; efficiently replace targets in the buffer or context
god ; run Emacs commands without modifier keys
lispy ; vim for lisp, for people who don't like vim
(objed +manual) ; text object editing for the innocent
ctrlf ; Emacs finally learns how to ctrl+F
(dired +icons ; making dired pretty [functional]
+dirvish) ; A modern file manager based on dired mode
electric ; smarter, keyword-based electric-indent
(ibuffer +icons) ; interactive buffer management
info ; Info package for Emacs
(undo ; persistent, smarter undo for your inevitable mistakes
+tree) ; branching undo history and a visualizer for navigating
vc ; version-control and Emacs, sitting in a tree
(mu4e +org +gmail)
notmuch
(wanderlust +gmail)
(cc +lsp ; C > C++ == 1
+tree-sitter)
(clojure +lsp) ; java with a lisp
data ; config/data formats
emacs-lisp ; drown in parentheses
(graphql +lsp) ; Give queries a REST
(javascript ; all(hope(abandon(ye(who(enter(here))))))
+lsp +tree-sitter)
(json +lsp ; At least it ain't XML
+tree-sitter)
(lua +lsp) ; one-based indices? one-based indices
(markdown +grip) ; writing docs for people to ignore
(nix +lsp ; I hereby declare "nix geht mehr!"
+tree-sitter)
(org ; organize your plain life in plain text
+dragndrop ; drag & drop files/images into org buffers
+gnuplot ; who doesn't like pretty pictures
+noter ; enhanced PDF notetaking
+pandoc ; export-with-pandoc support
+passwords ; A password manager for Org.
+pomodoro ; timer for clocking time on tasks.
+present ; using org-mode for presentations
+roam2 ; wander around notes
+web) ; Display and capture web content with Org-mode
(php +tree-sitter) ; perl's insecure younger brother
plantuml ; diagrams for confusing people more
(python +tree-sitter; beautiful is better than ugly
+lsp +pyright)
(rest +jq) ; Emacs as a REST client
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
(sh ; she sells {ba,z,fi}sh shells on the C xor
+fish) ; non-posix, but readable
(web +lsp ; the tubes
+tailwind ; write styles you want from html
+tree-sitter)
(yaml +lsp) ; JSON, but readable
(agda +tree-sitter) ; types of types of types of types…
beancount ; mind the GAAP
(cc +lsp ; C > C++ == 1
+tree-sitter)
(clojure +lsp) ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all
coq ; proofs-as-programs
crystal ; ruby at the speed of c
(csharp ; unity, .NET, and mono shenanigans
+lsp ; omnisharp through LSP support
+unity ; special support for the Unity game engine
+dotnet ; Dotnet transient interface with Sharper
+tree-sitter)
(dart +lsp +flutter); paint ui and not much else
data ; config/data formats
dhall
(elixir ; erlang done right
+lsp +tree-sitter)
(elm +lsp ; care for a cup of TEA?
+tree-sitter)
emacs-lisp ; drown in parentheses
erlang ; an elegant language for a more civilized age
ess ; emacs speaks statistics
factor
faust ; dsp, but you get to keep your soul
fsharp ; ML stands for Microsoft's Language
fstar ; (dependent) types and (monadic) effects and Z3
gdscript ; the language you waited for
(go +lsp ; the hipster dialect
+tree-sitter)
(graphql +lsp) ; Give queries a REST
(haskell ; a language that's lazier than I am
+lsp +tree-sitter)
hy ; readability of scheme w/ speed of python
idris ; a language you can depend on
(java +meghanada ; the poster child for carpal tunnel syndrome
+tree-sitter)
(javascript ; all(hope(abandon(ye(who(enter(here))))))
+lsp +tree-sitter)
(json +lsp ; At least it ain't XML
+tree-sitter)
(julia +lsp ; a better, faster MATLAB
+tree-sitter)
kotlin ; a better, slicker Java(Script)
latex ; writing papers in Emacs has never been so fun
lean ; for folks with too much to prove
ledger ; be audit you can be
(lua +lsp) ; one-based indices? one-based indices
(markdown +grip) ; writing docs for people to ignore
(org ; organize your plain life in plain text
+dragndrop ; drag & drop files/images into org buffers
+hugo ; use Emacs for hugo blogging
+noter ; enhanced PDF notetaking
+jupyter ; ipython/jupyter support for babel
+pandoc ; export-with-pandoc support
+gnuplot ; who doesn't like pretty pictures
+pomodoro ; be fruitful with the tomato technique
+pretty ; yessss my pretties! (nice unicode symbols)
+present ; using org-mode for presentations
+roam2) ; wander around notes
nim ; python + lisp at the speed of c
(nix +lsp ; I hereby declare "nix geht mehr!"
+tree-sitter)
(ocaml ; an objective camel
+lsp +tree-sitter)
(php +tree-sitter) ; perl's insecure younger brother
(python +tree-sitter; beautiful is better than ugly
+poetry ; packaging, dependency management, and virtual env
+lsp +pyright)
plantuml ; diagrams for confusing people more
purescript ; javascript, but functional
qt ; the 'cutest' gui framework ever
racket ; a DSL for DSLs
raku ; the artist formerly known as perl6
(rest +jq) ; Emacs as a REST client
rst ; ReST in peace
(ruby +rails ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
+tree-sitter)
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
(scala +lsp ; java, but good
+tree-sitter)
(scheme +guile) ; a fully conniving family of lisps
(sh +lsp ; she sells {ba,z,fi}sh shells on the C xor
+fish ; non-posix
+powershell ; the Microsoft shell
+tree-sitter) ; bash
sml
solidity ; do you need a blockchain? No.
(swift +lsp ; who asked for emoji variables?
+tree-sitter)
terra ; Earth and Moon in alignment for performance.
(web +lsp ; the tubes
+tailwind ; write styles you want from html
+tree-sitter)
(yaml +lsp) ; JSON, but readable
(zig +tree-sitter) ; C, but simpler
(:if IS-MAC macos ; improve compatibility with macOS
(:if
(getenv "WSLENV") ; "WT_SESSION::WT_PROFILE_ID"
wsl)) ; improve compatibility with WSL
(tty +osc) ; improve the terminal Emacs experience
eshell ; the elisp shell that works everywhere
vterm ; the best terminal emulation in Emacs
eshell ; the elisp shell that works everywhere
shell ; simple shell REPL for Emacs
term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs
biblio ; Writes a PhD for you (citation needed)
brief ; tldr +cheat-sh
(debugger +lsp) ; stepping through code, to help you add bugs
direnv ; integrates direnv into Emacs.
(docker +lsp) ; Emacs interface to Docker
editorconfig ; let someone else argue about tabs vs spaces
(eval +overlay) ; run code, run (also, repls)
fzf ; Command-line fuzzy finder written in Go
gist ; interacting with github gists
(lookup ; navigate your code and its documentation
+docsets ; …or in Dash docsets locally
+devdocs ; another API documentation viewer for Emacs
+dictionary) ; word definition and thesaurus lookup functionality.
lsp ; Language Server Protocol
(magit ; a Git porcelain inside Emacs
+forge) ; interface with git forges
make ; run make tasks from Emacs
(pass +auth) ; password manager for nerds
pdf ; pdf enhancements
prodigy ; managing external services & code builders
rgb ; creating color strings
tmux ; an API for interacting with tmux
tree-sitter ; syntax and parsing, sitting in a tree...
ansible
biblio ; Writes a PhD for you (citation needed)
brief ; tldr +cheat-sh
(debugger +lsp) ; stepping through code, to help you add bugs
direnv ; integrates direnv into Emacs.
(docker +lsp) ; Emacs interface to Docker
editorconfig ; let someone else argue about tabs vs spaces
ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
fzf ; Command-line fuzzy finder written in Go
gist ; interacting with github gists
kubernetes ; Magit-like porcelain for Kubernetes
(lookup ; navigate your code and its documentation
+docsets ; …or in Dash docsets locally
+dictionary ; word definition and thesaurus lookup functionality.
+offline) ; Install and prefer offline dictionary/thesaurus.
(lsp ; M-x vscode
+eglot ; Use Eglot instead of LSP-mode
+peek) ; `lsp-ui-peek' when looking up def and references
lsp-bridge ; Fastest LSP client for Emacs
(magit ; a git porcelain for Emacs
+forge) ; interface with git forges
make ; run make tasks from Emacs
(pass +auth) ; password manager for nerds
pdf ; pdf enhancements
prodigy ; managing external services & code builders
rgb ; creating color strings
taskrunner ; taskrunner for all your projects
terraform ; infrastructure as code
tmux ; an API for interacting with tmux
tree-sitter ; syntax and parsing, sitting in a tree...
upload ; map local to remote projects via ssh/ftp
discover ; discover more of Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +ascii ; include plain text emojis like =:)=.
+github ; include Github-style emojis like =:smile:=.
+unicode) ; 🙂
fixmee ; quickly navigate to FIXME notices in code
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
hydra
minimap ; show a map of the code on the side
(modeline ; snazzy, Atom-inspired modeline, plus API
+nyan) ; nyanyanyanyanyanyanya! ♬ ♫ ♪ ♩
nav-flash ; blink cursor line after big motions
ophints ; highlight the region an operation acts on
(popup ; tame sudden yet inevitable temporary windows
+defaults) ; default popup rules for a variety of buffers.
(treemacs +lsp) ; a project drawer, like neotree but cooler
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing
deft ; notational velocity for Emacs
modeline
+light ; less featureful version of the modeline
modus ; Highly accessible themes (WCAG AAA)
popup
+all ; catch all popups that start with an asterix
tab-workspaces ; tab emulation, persistence & separate workspaces
unicode ; extended unicode support for various languages
word-wrap ; soft wrapping with language-aware indent
tabs ; a tab bar for Emacs
indent-guides ; highlighted indent columns
(ligatures
+extra +fira) ; ligatures and symbols to make your code pretty again