-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.el
159 lines (131 loc) · 6.5 KB
/
init.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
;;; init.el -*- lexical-binding: t; -*-
;; DO NOT EDIT THIS FILE DIRECTLY
;; This is a file generated from a literate programing source file located at
;; https://gitlab.com/zzamboni/dot-doom/-/blob/master/doom.org
;; You should make any changes there and regenerate it from Emacs org-mode
;; using org-babel-tangle (C-c C-v t)
;; 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.
;; NOTE 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).
;;; Pre-init
;; This is so that I don't accidentally start Emacs as a daemon.
(when (daemonp) (kill-emacs))
;;;; PGTK
;; You should be able to use input methods since GtkIMContext is enabled by
;; default. If you don't like GtkIMContext, you can disable it by writing as
;; follows in ~/.emacs: pgtk-use-im-context disable gtk im modules for
;; emacs-pgtk, add "Emacs*UseXIM: false" to ~/.Xresources to disable xim
(if (eq window-system 'pgtk)
(pgtk-use-im-context nil))
(when (boundp 'pgtk-use-im-context-on-new-connection)
(setq pgtk-use-im-context-on-new-connection nil))
;;;; Termux
(setq-default root-path "/")
(defvar IS-TERMUX
(string-suffix-p "Android" (string-trim (shell-command-to-string "uname -a"))))
(when IS-TERMUX
(setq root-path "/data/data/com.termux/files/"))
;;;; Modules
(doom! :input
:completion
(corfu +orderless +dabbrev) ; +icons
vertico
:ui
doom ; what makes DOOM look the way it does
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW/XXX/BUG
;; indent-guides ; highlighted indent columns
modeline ; snazzy, Atom-inspired modeline, plus API
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
treemacs ; 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 +numbers) ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;; zen ; distraction-free coding or writing
:editor
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
format ; automated prettiness
multiple-cursors ; editing in many places at once
rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
(evil +everywhere); come to the dark side, we have cookies
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
eww ; the internet is gross
ibuffer ; +icons - interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
;; (:unless IS-TERMUX (eshell)) ; the elisp shell that works everywhere
(:if (not (memq system-type '(cygwin windows-nt ms-dos))) vterm) ; the best terminal emulation in Emacs
:checkers
(syntax +flymake)
;; spell +flyspell ; +hunspell - tasing you for misspelling mispelling
;; grammar ; tasing grammar mistake every you make
:tools
biblio
;; (:unless IS-TERMUX (debugger)) ; FIXME stepping through code, to help you add bugs
;; (:unless IS-TERMUX (direnv))
(eval +overlay) ; run code, run (also, repls)
lookup
(lsp +eglot) ; +peek
magit ; +forge a git porcelain for Emacs
;; make ; run make tasks from Emacs
;;pass ; password manager for nerds
;; (:unless IS-TERMUX (pdf)) ; pdf enhancements
;; (:unless IS-TERMUX (prodigy)) ;; FIXME managing external services & code builders
;;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
:os
(:if IS-MAC macos) ; improve compatibility with macOS
tty ; improve the terminal Emacs experience
:lang
(clojure +lsp) ; java with a lisp
data ; config/data formats
emacs-lisp ; drown in parentheses
json ; At least it ain't XML
(javascript +lsp) ;; all(hope(abandon(ye(who(enter(here))))))
(latex +cdlatex +latexmk) ; writing papers in Emacs has never been so fun
markdown ; writing docs for people to ignore
(org ; organize your plain life in plain text
+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
;; +present ; using org-mode for presentations
;; +contacts
+journal
) ; wander around notes
;; sh ; she sells {ba,z,fi}sh shells on the C xor
(python +lsp) ; +conda beautiful is better than ugly
racket ; a DSL for DSLs
(scheme +mit) ;; +racket ; a fully conniving family of lisps
web ; the tubes
yaml ; JSON, but readable
;; :email
;;(mu4e +org +gmail)
;; (notmuch +org)
:app
;; calendar
;; emms
(rss +org +youtube) ; emacs as an RSS reader
:config
;; literate ; use manually
(default +bindings +smartparens)
)