| 1 | ;;; $DOOMDIR/init.el -*- lexical-binding: t; -*- |
| 2 | |
| 3 | ;; This file controls what Doom modules are enabled and what order they load |
| 4 | ;; in. Remember to run 'doom sync' after modifying it! |
| 5 | |
| 6 | ;; NOTE: Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's |
| 7 | ;; documentation. There you'll find a link to Doom's Module Index where all of |
| 8 | ;; our modules are listed, including what flags they support. |
| 9 | |
| 10 | ;; NOTE: Move your cursor over a module's name (or its flags) and press 'K' (or |
| 11 | ;; 'C-c c k' for non-vim users) to view its documentation. This works on flags |
| 12 | ;; as well (those symbols that start with a plus). |
| 13 | ;; |
| 14 | ;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its |
| 15 | ;; directory (for easy access to its source code). |
| 16 | |
| 17 | (doom! :input |
| 18 | ;;bidi ; (tfel ot) thgir etirw uoy gnipleh |
| 19 | ;;chinese |
| 20 | ;;japanese |
| 21 | ;;layout ; auie,ctsrnm is the superior home row |
| 22 | |
| 23 | :completion |
| 24 | ;;company ; the ultimate code completion backend |
| 25 | (corfu +orderless) ; complete with cap(f), cape and a flying feather! |
| 26 | ;;helm ; the *other* search engine for love and life |
| 27 | ;;ido ; the other *other* search engine... |
| 28 | ;;ivy ; a search engine for love and life |
| 29 | vertico ; the search engine of the future |
| 30 | |
| 31 | :ui |
| 32 | ;;deft ; notational velocity for Emacs |
| 33 | doom ; what makes DOOM look the way it does |
| 34 | dashboard ; a nifty splash screen for Emacs |
| 35 | ;;doom-quit ; DOOM quit-message prompts when you quit Emacs |
| 36 | ;;(emoji +unicode) ; 🙂 |
| 37 | hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW |
| 38 | ;;indent-guides ; highlighted indent columns |
| 39 | ;;ligatures ; ligatures and symbols to make your code pretty again |
| 40 | ;;minimap ; show a map of the code on the side |
| 41 | modeline ; snazzy, Atom-inspired modeline, plus API |
| 42 | ;;nav-flash ; blink cursor line after big motions |
| 43 | ;;neotree ; a project drawer, like NERDTree for vim |
| 44 | ophints ; highlight the region an operation acts on |
| 45 | (popup +defaults) ; tame sudden yet inevitable temporary windows |
| 46 | ;;smooth-scroll ; So smooth you won't believe it's not butter |
| 47 | ;;tabs ; a tab bar for Emacs |
| 48 | ;;treemacs ; a project drawer, like neotree but cooler |
| 49 | ;;unicode ; extended unicode support for various languages |
| 50 | (vc-gutter +pretty) ; vcs diff in the fringe |
| 51 | vi-tilde-fringe ; fringe tildes to mark beyond EOB |
| 52 | ;;window-select ; visually switch windows |
| 53 | workspaces ; tab emulation, persistence & separate workspaces |
| 54 | ;;zen ; distraction-free coding or writing |
| 55 | |
| 56 | :editor |
| 57 | (evil +everywhere); come to the dark side, we have cookies |
| 58 | file-templates ; auto-snippets for empty files |
| 59 | fold ; (nigh) universal code folding |
| 60 | ;;(format +onsave) ; automated prettiness |
| 61 | ;;god ; run Emacs commands without modifier keys |
| 62 | ;;lispy ; vim for lisp, for people who don't like vim |
| 63 | ;;multiple-cursors ; editing in many places at once |
| 64 | ;;objed ; text object editing for the innocent |
| 65 | ;;parinfer ; turn lisp into python, sort of |
| 66 | ;;rotate-text ; cycle region at point between text candidates |
| 67 | snippets ; my elves. They type so I don't have to |
| 68 | (whitespace +guess +trim) ; a butler for your whitespace |
| 69 | ;;word-wrap ; soft wrapping with language-aware indent |
| 70 | |
| 71 | :emacs |
| 72 | dired ; making dired pretty [functional] |
| 73 | electric ; smarter, keyword-based electric-indent |
| 74 | eww ; the internet is gross |
| 75 | ;;ibuffer ; interactive buffer management |
| 76 | tramp ; remote files at your arthritic fingertips |
| 77 | undo ; persistent, smarter undo for your inevitable mistakes |
| 78 | vc ; version-control and Emacs, sitting in a tree |
| 79 | |
| 80 | :term |
| 81 | ;;eshell ; the elisp shell that works everywhere |
| 82 | ;;shell ; simple shell REPL for Emacs |
| 83 | term ; basic terminal emulator for Emacs |
| 84 | vterm ; almost the best terminal emulation in Emacs |
| 85 | ;;ghostel ; the best terminal emulation in Emacs |
| 86 | |
| 87 | :checkers |
| 88 | syntax ; tasing you for every semicolon you forget |
| 89 | ;;(spell +flyspell) ; tasing you for misspelling mispelling |
| 90 | ;;grammar ; tasing grammar mistake every you make |
| 91 | |
| 92 | :tools |
| 93 | ;;ansible |
| 94 | ;;biblio ; Writes a PhD for you (citation needed) |
| 95 | ;;collab ; buffers with friends |
| 96 | ;;debugger ; stepping through code, to help you add bugs |
| 97 | ;;direnv |
| 98 | ;;docker |
| 99 | ;;editorconfig ; let someone else argue about tabs vs spaces |
| 100 | ;;ein ; tame Jupyter notebooks with emacs |
| 101 | (eval +overlay) ; run code, run (also, repls) |
| 102 | lookup ; navigate your code and its documentation |
| 103 | llm ; when I said you needed friends, I didn't mean... |
| 104 | ;;(lsp +eglot) ; M-x vscode |
| 105 | magit ; a git porcelain for Emacs |
| 106 | ;;make ; run make tasks from Emacs |
| 107 | ;;pass ; password manager for nerds |
| 108 | ;;pdf ; pdf enhancements |
| 109 | ;;terraform ; infrastructure as code |
| 110 | ;;tmux ; an API for interacting with tmux |
| 111 | ;;tree-sitter ; syntax and parsing, sitting in a tree... |
| 112 | ;;upload ; map local to remote projects via ssh/ftp |
| 113 | |
| 114 | :os |
| 115 | (:if (featurep :system 'macos) macos) ; improve compatibility with macOS |
| 116 | ;;tty ; improve the terminal Emacs experience |
| 117 | |
| 118 | :lang |
| 119 | ;;ada ; In strong typing we (blindly) trust |
| 120 | ;;(agda +local) ; types of types of types of types... |
| 121 | ;;beancount ; mind the GAAP |
| 122 | ;;(cc +lsp) ; C > C++ == 1 |
| 123 | ;;clojure ; java with a lisp |
| 124 | ;;common-lisp ; if you've seen one lisp, you've seen them all |
| 125 | ;;coq ; proofs-as-programs |
| 126 | ;;crystal ; ruby at the speed of c |
| 127 | ;;csharp ; unity, .NET, and mono shenanigans |
| 128 | ;;data ; config/data formats |
| 129 | ;;(dart +flutter) ; paint ui and not much else |
| 130 | ;;dhall |
| 131 | ;;elixir ; erlang done right |
| 132 | ;;elm ; care for a cup of TEA? |
| 133 | emacs-lisp ; drown in parentheses |
| 134 | ;;erlang ; an elegant language for a more civilized age |
| 135 | ;;ess ; emacs speaks statistics |
| 136 | ;;factor |
| 137 | ;;faust ; dsp, but you get to keep your soul |
| 138 | ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) |
| 139 | ;;fsharp ; ML stands for Microsoft's Language |
| 140 | ;;fstar ; (dependent) types and (monadic) effects and Z3 |
| 141 | ;;gdscript ; the language you waited for |
| 142 | (go +lsp) ; the hipster dialect |
| 143 | ;;(graphql +lsp) ; Give queries a REST |
| 144 | ;;(haskell +lsp) ; a language that's lazier than I am |
| 145 | ;;hy ; readability of scheme w/ speed of python |
| 146 | ;;idris ; a language you can depend on |
| 147 | json ; At least it ain't XML |
| 148 | ;;janet ; Fun fact: Janet is me! |
| 149 | ;;(java +lsp) ; the poster child for carpal tunnel syndrome |
| 150 | javascript ; all(hope(abandon(ye(who(enter(here)))))) |
| 151 | ;;julia ; a better, faster MATLAB |
| 152 | ;;kotlin ; a better, slicker Java(Script) |
| 153 | ;;latex ; writing papers in Emacs has never been so fun |
| 154 | ;;lean ; for folks with too much to prove |
| 155 | ;;ledger ; be audit you can be |
| 156 | lua ; one-based indices? one-based indices |
| 157 | markdown ; writing docs for people to ignore |
| 158 | ;;nim ; python + lisp at the speed of c |
| 159 | ;;nix ; I hereby declare "nix geht mehr!" |
| 160 | ;;ocaml ; an objective camel |
| 161 | ;;odin ; C, minus its footguns |
| 162 | org ; organize your plain life in plain text |
| 163 | ;;php ; perl's insecure younger brother |
| 164 | ;;plantuml ; diagrams for confusing people more |
| 165 | ;;graphviz ; diagrams for confusing yourself even more |
| 166 | ;;purescript ; javascript, but functional |
| 167 | ;;python ; beautiful is better than ugly |
| 168 | ;;qt ; the 'cutest' gui framework ever |
| 169 | ;;racket ; a DSL for DSLs |
| 170 | ;;raku ; the artist formerly known as perl6 |
| 171 | ;;rest ; Emacs as a REST client |
| 172 | ;;rst ; ReST in peace |
| 173 | ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} |
| 174 | (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() |
| 175 | ;;scad ; trust the preview, regret the render |
| 176 | ;;scala ; java, but good |
| 177 | ;;(scheme +guile) ; a fully conniving family of lisps |
| 178 | sh ; she sells {ba,z,fi}sh shells on the C xor |
| 179 | ;;sml |
| 180 | ;;solidity ; do you need a blockchain? No. |
| 181 | ;;swift ; who asked for emoji variables? |
| 182 | ;;terra ; Earth and Moon in alignment for performance. |
| 183 | web ; the tubes |
| 184 | ;;yaml ; JSON, but readable |
| 185 | ;;zig ; C, but simpler |
| 186 | |
| 187 | :email |
| 188 | ;;(mu4e +org +gmail) |
| 189 | ;;notmuch |
| 190 | ;;(wanderlust +gmail) |
| 191 | |
| 192 | :app |
| 193 | calendar |
| 194 | ;;emms |
| 195 | ;;everywhere ; *leave* Emacs!? You must be joking |
| 196 | irc ; how neckbeards socialize |
| 197 | (rss +org) ; emacs as an RSS reader |
| 198 | |
| 199 | :config |
| 200 | ;;literate |
| 201 | (default +bindings +smartparens)) |
| 202 | |
| 203 | ;; If you're a dark-mode user who suffers from the "flash of white Emacs" when |
| 204 | ;; you first open Emacs, uncomment this (and adjust the color as you like). |
| 205 | ;; (add-to-list 'initial-frame-alist '(background-color . "#000000")) |