init.el
1 ;;; 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 8 ;; of 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 12 ;; flags 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 ; complete with cap(f), cape and a flying feather! 26 +icons 27 +dabbrev 28 +orderless) 29 ;; (helm 30 ;; +childframe 31 ;; +fuzzy 32 ;; +icons 33 ;; ) ; the *other* search engine for love and life 34 ;;ido ; the other *other* search engine... 35 ;;ivy ; a search engine for love and life 36 (vertico ; the search engine of the future 37 +icons 38 +childframe) 39 40 :ui 41 deft ; notational velocity for Emacs 42 doom ; what makes DOOM look the way it does 43 doom-dashboard ; a nifty splash screen for Emacs 44 ;;doom-quit ; DOOM quit-message prompts when you quit Emacs 45 (emoji +unicode) ; 🙂 46 hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW 47 indent-guides ; highlighted indent columns 48 ;;ligatures ; ligatures and symbols to make your code pretty again 49 minimap ; show a map of the code on the side 50 modeline ; snazzy, Atom-inspired modeline, plus API 51 nav-flash ; blink cursor line after big motions 52 ;; neotree ; a project drawer, like NERDTree for vim 53 ophints ; highlight the region an operation acts on 54 (popup +defaults) ; tame sudden yet inevitable temporary windows 55 ;; tabs ; a tab bar for Emacs 56 (treemacs ; a project drawer, like neotree but cooler 57 +lsp) 58 unicode ; extended unicode support for various languages 59 (vc-gutter ; vcs diff in the fringe 60 +pretty) 61 vi-tilde-fringe ; fringe tildes to mark beyond EOB 62 (window-select ; visually switch windows 63 +numbers) 64 workspaces ; tab emulation, persistence & separate workspaces 65 zen ; distraction-free coding or writing 66 67 :editor 68 (evil +everywhere); come to the dark side, we have cookies 69 file-templates ; auto-snippets for empty files 70 fold ; (nigh) universal code folding 71 (format ; automated prettiness 72 +lsp 73 +onsave) 74 ;;god ; run Emacs commands without modifier keys 75 ;;lispy ; vim for lisp, for people who don't like vim 76 multiple-cursors ; editing in many places at once 77 ;;objed ; text object editing for the innocent 78 ;;parinfer ; turn lisp into python, sort of 79 rotate-text ; cycle region at point between text candidates 80 snippets ; my elves. They type so I don't have to 81 word-wrap ; soft wrapping with language-aware indent 82 83 :emacs 84 (dired ; making dired pretty [functional] 85 +icons 86 +dirvish) 87 electric ; smarter, keyword-based electric-indent 88 (ibuffer +icons) ; interactive buffer management 89 (undo +tree) ; persistent, smarter undo for your inevitable mistakes 90 vc ; version-control and Emacs, sitting in a tree 91 92 :term 93 ;; eshell ; the elisp shell that works everywhere 94 ;; shell ; simple shell REPL for Emacs 95 ;;term ; basic terminal emulator for Emacs 96 vterm ; the best terminal emulation in Emacs 97 98 :checkers 99 (syntax ; tasing you for every semicolon you forget 100 +icons 101 +flymake) 102 (spell 103 +flyspell) ; tasing you for misspelling mispelling 104 grammar ; tasing grammar mistake every you make 105 106 :tools 107 ;;ansible 108 biblio ; Writes a PhD for you (citation needed) 109 ;; (collab +tunnel) ; buffers with friends 110 (debugger 111 +lsp) ; FIXME stepping through code, to help you add bugs 112 direnv 113 (docker 114 +lsp 115 +tree-sitter) 116 editorconfig ; let someone else argue about tabs vs spaces 117 ein ; tame Jupyter notebooks with emacs 118 (eval +overlay) ; run code, run (also, repls) 119 (lookup ; navigate your code and its documentation 120 +dictionary) 121 (lsp 122 +peek) ; M-x vscode 123 (magit +forge) ; a git porcelain for Emacs 124 make ; run make tasks from Emacs 125 pass ; password manager for nerds 126 pdf ; pdf enhancements 127 ;; prodigy ; FIXME managing external services & code builders 128 ;; (terraform +lsp) ; infrastructure as code 129 ;; tmux ; an API for interacting with tmux 130 tree-sitter ; syntax and parsing, sitting in a tree... 131 upload ; map local to remote projects via ssh/ftp 132 133 :os 134 (:if (featurep :system 'macos) macos) ; improve compatibility with macOS 135 (tty +osc) ; improve the terminal Emacs experience 136 137 :lang 138 ;;agda ; types of types of types of types... 139 ;;beancount ; mind the GAAP 140 (cc 141 +lsp 142 +tree-sitter) ; C > C++ == 1 143 ;;clojure ; java with a lisp 144 ;;common-lisp ; if you've seen one lisp, you've seen them all 145 ;;coq ; proofs-as-programs 146 ;;crystal ; ruby at the speed of c 147 ;;csharp ; unity, .NET, and mono shenanigans 148 data ; config/data formats 149 ;;(dart +flutter) ; paint ui and not much else 150 ;;dhall 151 ;; (elixir +lsp 152 ;; +tree-sitter) ; erlang done right 153 ;;elm ; care for a cup of TEA? 154 emacs-lisp ; drown in parentheses 155 ;; (erlang +lsp 156 ;; +tree-sitter) ; an elegant language for a more civilized age 157 (ess +stan 158 +tree-sitter); emacs speaks statistics 159 ;;factor 160 ;;faust ; dsp, but you get to keep your soul 161 ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) 162 ;;fsharp ; ML stands for Microsoft's Language 163 ;;fstar ; (dependent) types and (monadic) effects and Z3 164 ;;gdscript ; the language you waited for 165 (go 166 +lsp 167 +tree-sitter) ; the hipster dialect 168 (graphql ; Give queries a REST 169 +lsp) 170 ;;(haskell +lsp) ; a language that's lazier than I am 171 ;;hy ; readability of scheme w/ speed of python 172 ;;idris ; a language you can depend on 173 (json ; At least it ain't XML 174 +lsp 175 +tree-sitter) 176 ;; (java +lsp ; the poster child for carpal tunnel syndrome 177 ;; +tree-sitter) 178 (javascript ; all(hope(abandon(ye(who(enter(here)))))) 179 +lsp 180 +tree-sitter) 181 ;;julia ; a better, faster MATLAB 182 ;;kotlin ; a better, slicker Java(Script) 183 (latex ; writing papers in Emacs has never been so fun 184 +lsp 185 +fold 186 +cdlatex) 187 ;;lean ; for folks with too much to prove 188 ;;ledger ; be audit you can be 189 (lua ; one-based indices? one-based indices 190 +lsp 191 +tree-sitter) 192 (markdown 193 +grip 194 +tree-sitter) ; writing docs for people to ignore 195 ;;nim ; python + lisp at the speed of c 196 (nix ; I hereby declare "nix geht mehr!" 197 +lsp 198 +tree-sitter) 199 ;;ocaml ; an objective camel 200 (org ; organize your plain life in plain text 201 ;; +contacts 202 +hugo 203 +roam 204 +brain 205 +noter 206 +pretty 207 +pandoc 208 +journal 209 +jupyter 210 +present 211 +gnuplot 212 +pomodoro 213 +dragndrop 214 +passwords) 215 ;;php ; perl's insecure younger brother 216 plantuml ; diagrams for confusing people more 217 ;;purescript ; javascript, but functional 218 (python ; beautiful is better than ugly 219 +lsp 220 +pyenv 221 +pyright 222 +tree-sitter) 223 ;;qt ; the 'cutest' gui framework ever 224 ;;racket ; a DSL for DSLs 225 ;;raku ; the artist formerly known as perl6 226 (rest +jq) ; Emacs as a REST client 227 ;;rst ; ReST in peace 228 (ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} 229 +lsp 230 +rvm 231 +rbenv 232 +rails 233 +chruby 234 +tree-sitter) 235 (rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() 236 +lsp 237 +tree-sitter) 238 ;;scala ; java, but good 239 (scheme +guile) ; a fully conniving family of lisps 240 (sh +lsp ; she sells {ba,z,fi}sh shells on the C xor 241 +fish 242 +powershell 243 +tree-sitter) 244 ;;sml 245 ;; (solidity +lsp) ; do you need a blockchain? No. 246 ;;swift ; who asked for emoji variables? 247 ;;terra ; Earth and Moon in alignment for performance. 248 (web 249 +lsp 250 +tree-sitter) ; the tubes 251 (yaml 252 +lsp 253 +tree-sitter) ; JSON, but readable 254 (zig ; C, but simpler 255 +lsp 256 ;; +tree-sitter 257 ) 258 259 :email 260 (mu4e 261 +gmail 262 +mbsync 263 +org) 264 ;;notmuch 265 ;;(wanderlust +gmail) 266 267 :app 268 calendar 269 emms 270 everywhere ; *leave* Emacs!? You must be joking 271 irc ; how neckbeards socialize 272 (rss +org) ; emacs as an RSS reader 273 274 :config 275 ;;literate 276 (default 277 +gnupg 278 +bindings 279 +smartparens))