Skip to content

Latest commit

 

History

History
470 lines (451 loc) · 17.8 KB

init.org

File metadata and controls

470 lines (451 loc) · 17.8 KB

init.el Organizer

Table of Contents

Description

This file controls what Doom modules are enabled and what order they load in. Remember to run doom sync after modifying it!

NOTE

  • Press SPC h d h (or C-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 (or C-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 (or C-c c d) on a module to browse its directory (for easy access to its source code).

File Structure

;;; 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>>)

Module

:app

calendar
edit-server         ; Edit with Emacs server
slack               ; Slack client for Emacs
telega              ; telegram unofficial client
<<Apps for websites>>

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

disabled

emms                ; The Emacs Multimedia System
irc                 ; how neckbeards socialize

:checkers

(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

:completion

(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)

All Completion support

(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

:config

literate
(default +bindings +smartparens)

:editor

(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

Conflict modules

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

:emacs

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

:email

(mu4e +org +gmail)

Other clients

notmuch
(wanderlust +gmail)

:lang

(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

All Language support

(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

:os

(: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

:term

eshell              ; the elisp shell that works everywhere
vterm               ; the best terminal emulation in Emacs

All Terminal support

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

:tools

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...

All Available-Tools

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

:ui

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

Disabled modules

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

Disable some of Doom’s slowest modules.

:editor

word-wrap           ; soft wrapping with language-aware indent

:ui

tabs                ; a tab bar for Emacs
indent-guides       ; highlighted indent columns
(ligatures
 +extra +fira)      ; ligatures and symbols to make your code pretty again