+10
-1
README.md
+10
-1
README.md
···
8
Clone this repository:
9
10
```sh
11
+
git clone https://tangled.org/nesv.ca/emacs.d ~/.emacs.d
12
+
```
13
+
14
+
or if you prefer [jj]:
15
+
16
+
```sh
17
+
jj git clone https://tangled.org/nesv.ca/emacs.d ~/.emacs.d
18
```
19
20
The next time you start emacs(1), everything should be installed
21
automatically.
22
+
23
+
[jj]: https://docs.jj-vcs.dev/latest/
24
+
-76
early-init.el
-76
early-init.el
···
1
-
;;; early-init -- Early emacs initialization
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(defvar nesv/tiling-window-manager-regexp "bspwm\\|herbstluftwm\\|i3\\|hyprland"
6
-
"Regexp to match the name of tiling window managers.")
7
-
8
-
(defmacro nesv/with-desktop-session (&rest body)
9
-
"Expand BODY if desktop is *not* a tiling window manager."
10
-
(declare (indent 0))
11
-
`(when-let ((session (getenv "DESKTOP_SESSION"))
12
-
((not (string-match-p session nesv/tiling-window-manager-regexp))))
13
-
,@body))
14
-
15
-
(defun nesv/add-to-list (list element)
16
-
"Add ELEMENT to LIST. A simplified version of ADD-TO-LIST."
17
-
(set list (cons element (symbol-value list))))
18
-
19
-
;; Set the window size on non-tiling window managers.
20
-
;;
21
-
;; INITIAL-FRAME-ALIST is the first frame that is produced when starting emacs.
22
-
;; DEFAULT-FRAME-ALIST is all other frames.
23
-
(nesv/with-desktop-session
24
-
(mapc
25
-
(lambda (var)
26
-
(nesv/add-to-list var '(width . (text-pixels . 800)))
27
-
(nesv/add-to-list var '(height . (text-pixels . 900)))
28
-
(nesv/add-to-list var '(scroll-bar-width . 10)))
29
-
'(default-frame-alist initial-frame-alist)))
30
-
31
-
(setq frame-resize-pixelwise t
32
-
frame-inhibit-implied-resize t
33
-
frame-title-format '("%b")
34
-
ring-bell-function 'ignore
35
-
use-dialog-box t
36
-
use-file-dialog nil
37
-
use-short-answers t
38
-
inhibit-splash-screen t
39
-
inhibit-startup-screen t
40
-
inhibit-x-resources t
41
-
inhibit-startup-echo-area-message user-login-name
42
-
inhibit-startup-buffer-menu t)
43
-
44
-
;; Disable useless graphical elements like the menu bar, the scroll bar, and
45
-
;; the tool bar.
46
-
(menu-bar-mode -1)
47
-
(scroll-bar-mode -1)
48
-
(tool-bar-mode -1)
49
-
50
-
;; Temporarily increase the garbage collection threshold.
51
-
;; This should shave about 0.5s off startup time.
52
-
(setq gc-cons-threshold most-positive-fixnum
53
-
gc-cons-percentage 0.5)
54
-
55
-
;; More startup optimizations.
56
-
(defvar nesv/file-name-handler-alist file-name-handler-alist)
57
-
(defvar nesv/vc-handled-backends vc-handled-backends)
58
-
59
-
(setq file-name-handler-alist nil
60
-
vc-handled-backends nil)
61
-
62
-
(add-hook 'emacs-startup-hook
63
-
(lambda ()
64
-
(setq gc-cons-threshold (* 1000 1000 8)
65
-
gc-cons-percentage 0.1
66
-
file-name-handler-alist nesv/file-name-handler-alist
67
-
vc-handled-backends nesv/vc-handled-backends)))
68
-
69
-
;; Name the default frame.
70
-
(add-hook 'after-init-hook (lambda () (set-frame-name "nesv")))
71
-
72
-
;; Inititalize install packages early.
73
-
(setq package-enable-at-startup t)
74
-
75
-
(provide 'early-init)
76
-
;;; early-init.el ends here
···
+224
-90
init.el
+224
-90
init.el
···
2
;;; Commentary:
3
;;; Code:
4
5
-
;; Define a new group for customizations.
6
-
;; This will basically allow someone else to use this configuration,
7
-
;; but tweak it to their own liking by setting custom vars.
8
-
(defgroup nesv-emacs nil
9
-
"User options for nesv's Emacs.
10
-
Put the customizations in a file called ~/.emacs.d/nesv-emacs-pre-custom.el."
11
-
:group 'file)
12
-
13
-
;; Load extras for minibuffer completion.
14
-
(defcustom nesv-emacs-completion-extras t
15
-
"When non-nil, load extras for minibuffer completion (e.g. `consult', `embark')."
16
-
:group 'nesv-emacs
17
-
:type 'boolean)
18
-
19
-
;; User option to load extra stuff for tree-sitter.
20
-
(defcustom nesv-emacs-tree-sitter-extras t
21
-
"When non-nil, load extras for tree-sitter integration (e.g. `expreg')."
22
-
:group 'nesv-emacs
23
-
:type 'boolean)
24
-
25
-
(defcustom nesv-emacs-load-which-key nil
26
-
"When non-nil, display keybinding hints after a short delay."
27
-
:group 'nesv-emacs
28
-
:type 'boolean)
29
-
30
-
(defcustom nesv-emacs-load-nerd-icons nil
31
-
"When non-nil, enable nerd icons."
32
-
:group 'nesv-emacs
33
-
:type 'boolean)
34
-
35
-
(defcustom nesv-emacs-load-theme 'ef
36
-
"Load the specified colour theme."
37
-
:group 'nesv-emacs
38
-
:type '(choice :tag "Theme to load" :value ef
39
-
(const :tag "`ef-themes'" ef)
40
-
(const :tag "`modus-themes'" modus)
41
-
(const :tag "Jonathan Blow style" naysayer)
42
-
(const :tag "Do not load a theme" nil)))
43
-
44
-
(defcustom nesv-emacs-font "Source Code Pro"
45
-
"Set the specific font face when loading Emacs in GUI mode."
46
-
:group 'nesv-emacs
47
-
:type '(choice :tag "Font to use" :value "Source Code Pro"
48
-
(const :tag "MonoLisa" "MonoLisa")
49
-
(const :tag "Berkeley Mono" "Berkeley Mono")))
50
-
51
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
52
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
53
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
···
98
(global-set-key [f8] 'neotree-toggle)
99
(if (display-graphic-p) (setq neo-theme 'icons) (setq neo-theme 'arrows)))
100
101
;; โโโโโโโโโโโโโโโโโโโโโโโโ
102
;; โโโโโโโโโโโโโโโโโโโโโโโโ
103
;; โโโโโโโโโโโโโโโโโโโโโโโโ
···
106
:config
107
(direnv-mode))
108
109
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
110
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
111
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
···
121
(menu-bar-mode -1) ; Disable the menubar.
122
(tool-bar-mode -1) ; Disable the toolbar.
123
(setq ring-bell-function 'ignore) ; Disable the damn bell.
124
(setq auto-save-default nil) ; Disable auto save.
125
(global-auto-revert-mode t) ; Auto-reload buffers when the backing file on disk changes.
126
(global-hl-line-mode t) ; Highlight the current line.
···
128
(setq column-number-mode t) ; Display column numbers.
129
(set-default 'truncate-lines t) ; Let long lines flow off-screen.
130
131
-
;; Disable backup files, and lock files.
132
-
(setq make-backup-files nil)
133
-
(setq backup-inhibited nil)
134
-
(setq create-lockfiles nil)
135
-
136
-
;; Silence native compilation (`nativecomp').
137
-
(when (native-comp-available-p)
138
-
(setq native-comp-async-report-warnings-errors 'silent)
139
-
(setq native-compile-prune-cache t))
140
-
141
-
;; By default, Emacs writes persistent customizations to the end of the user's
142
-
;; init.el.
143
-
;; Disable it.
144
-
(setq custom-file (make-temp-file "emacs-custom-"))
145
-
146
;; Draw a ruler at the 80-character column.
147
(add-hook 'prog-mode-hook #'display-fill-column-indicator-mode)
148
(add-hook 'text-mode-hook #'display-fill-column-indicator-mode)
···
151
(setq-default fill-column 80)
152
(add-hook 'text-mode-hook #'auto-fill-mode)
153
154
-
;; Enable these commands.
155
-
(mapc
156
-
(lambda (command) (put command 'disabled nil))
157
-
'(list-timers narrow-to-region narrow-to-page upcase-region downcase-region))
158
159
-
;; Disable these commands.
160
-
(mapc
161
-
(lambda (command) (put command 'disabled t))
162
-
'(eshell project-eshell overwrite-mode iconify-frame diary))
163
164
-
;; Always start with the *scratch* buffer.
165
-
(setq initial-buffer-choice t)
166
167
-
;; By default, Emacs inserts tabs in place of multiple spaces when formatting
168
-
;; a region.
169
-
;; Turn this off.
170
-
(setq-default indent-tabs-mode nil)
171
172
-
;; Add directories containing my custom `.el' files to Emacs' load-path.
173
-
(mapc
174
-
(lambda (string) (add-to-list 'load-path (locate-user-emacs-file string)))
175
-
'("nesv"))
176
177
-
(require 'nesv-theme)
178
-
(require 'nesv-cursor)
179
-
(require 'nesv-fonts)
180
-
(require 'nesv-which-key)
181
-
(require 'nesv-tree-sitter)
182
-
(require 'nesv-lsp)
183
-
(require 'nesv-programming)
184
-
(when nesv-emacs-load-nerd-icons
185
-
(require 'nesv-icons))
186
-
(require 'nesv-slime)
187
-
(require 'nesv-gnus)
188
189
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
190
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
···
206
;;
207
;; (which-key-add-keymap-based-replacements nesv-prefix-map
208
;; "b" `("Buffer" . ,nesv-buffer-prefix-map))
209
210
(provide 'init)
211
;;; init.el ends here
···
2
;;; Commentary:
3
;;; Code:
4
5
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
6
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
7
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
···
52
(global-set-key [f8] 'neotree-toggle)
53
(if (display-graphic-p) (setq neo-theme 'icons) (setq neo-theme 'arrows)))
54
55
+
56
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
57
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
58
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
59
+
;; When running in GUI mode, load in our $PATH as though we were running from
60
+
;; a terminal.
61
+
(use-package exec-path-from-shell
62
+
:ensure t
63
+
:config
64
+
(when (display-graphic-p)
65
+
(exec-path-from-shell-initialize)))
66
+
67
;; โโโโโโโโโโโโโโโโโโโโโโโโ
68
;; โโโโโโโโโโโโโโโโโโโโโโโโ
69
;; โโโโโโโโโโโโโโโโโโโโโโโโ
···
72
:config
73
(direnv-mode))
74
75
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
76
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
77
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
78
+
;; A recreation of Jonathan Blow's emacs theme.
79
+
(use-package naysayer-theme
80
+
:ensure t
81
+
:config (load-theme 'naysayer t))
82
+
;;
83
+
;; EF-THEMES (https://protesilaos.com/emacs/ef-themes)
84
+
;; (use-package ef-themes
85
+
;; :ensure t
86
+
;; :config
87
+
;; (load-theme 'ef-duo-light t))
88
+
;;
89
+
;; MODUS THEMES (https://protesilaos.com/emacs/modus-themes)
90
+
;; (use-package modus-themes
91
+
;; :ensure t
92
+
;; :config
93
+
;; (load-theme 'modus-operandi t))
94
+
95
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
96
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
97
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
···
107
(menu-bar-mode -1) ; Disable the menubar.
108
(tool-bar-mode -1) ; Disable the toolbar.
109
(setq ring-bell-function 'ignore) ; Disable the damn bell.
110
+
(setq make-backup-files nil) ; Do not create backup files.
111
(setq auto-save-default nil) ; Disable auto save.
112
(global-auto-revert-mode t) ; Auto-reload buffers when the backing file on disk changes.
113
(global-hl-line-mode t) ; Highlight the current line.
···
115
(setq column-number-mode t) ; Display column numbers.
116
(set-default 'truncate-lines t) ; Let long lines flow off-screen.
117
118
;; Draw a ruler at the 80-character column.
119
(add-hook 'prog-mode-hook #'display-fill-column-indicator-mode)
120
(add-hook 'text-mode-hook #'display-fill-column-indicator-mode)
···
123
(setq-default fill-column 80)
124
(add-hook 'text-mode-hook #'auto-fill-mode)
125
126
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
127
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
128
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
129
+
(when (display-graphic-p)
130
+
;; Disable the scroll bar.
131
+
(scroll-bar-mode -1)
132
+
133
+
;; Set the default window width, height, and font.
134
+
(add-to-list 'default-frame-alist '(width . 200))
135
+
(add-to-list 'default-frame-alist '(height . 60))
136
+
(add-to-list 'default-frame-alist '(font . "MonoLisa-11")))
137
138
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
139
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
140
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
141
+
(use-package flycheck
142
+
:ensure t
143
+
:init (global-flycheck-mode))
144
145
+
;; โโโโโโโโโโโโโโโโโโโโ
146
+
;; โโโโโโโโโโโโโโโโโโโโ
147
+
;; โโโโโโโโโโโโโโโโโโโโ
148
+
(use-package eglot
149
+
:ensure t)
150
151
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
152
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
153
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
154
+
(use-package nerd-icons
155
+
:ensure t)
156
157
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
158
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
159
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
160
+
(setq-default mono-lisa-v2-ligatures '(;; coding ligatures
161
+
"<!---" "--->" "|||>" "<!--" "<|||" "<==>" "-->" "->>" "-<<" "..=" "!=="
162
+
"#_(" "/==" "||>" "||=" "|->" "===" "==>" "=>>" "=<<" "=/=" ">->" ">=>"
163
+
">>-" ">>=" "<--" "<->" "<-<" "<||" "<|>" "<=" "<==" "<=>" "<=<" "<<-"
164
+
"<<=" "<~>" "<~~" "~~>" ">&-" "<&-" "&>>" "&>" "->" "-<" "-~" ".=" "!="
165
+
"#_" "/=" "|=" "|>" "==" "=>" ">-" ">=" "<-" "<|" "<~" "~-" "~@" "~="
166
+
"~>" "~~"
167
+
;; whitespace ligatures
168
+
"---" "'''" "\"\"\"" "..." "..<" "{|" "[|" ".?" "::" ":::" "::=" ":="
169
+
":>" ":<" "\;\;" "!!" "!!." "!!!" "?." "?:" "??" "?=" "**" "***" "*>"
170
+
"*/" "--" "#:" "#!" "#?" "##" "###" "####" "#=" "/*" "/>" "//" "/**"
171
+
"///" "$(" ">&" "<&" "&&" "|}" "|]" "$>" ".." "++" "+++" "+>" "=:="
172
+
"=!=" ">:" ">>" ">>>" "<:" "<*" "<*>" "<$" "<$>" "<+" "<+>" "<>" "<<"
173
+
"<<<" "</" "</>" "^=" "%%")
174
+
berkeley-mono-ligatures '(;; Group A
175
+
".." ".=" "..." "..<" "::" ":::" ":=" "::=" ";;" ";;;" "??" "???"
176
+
".?" "?." ":?" "?:" "?=" "**" "***" "/*" "*/" "/**"
177
+
;; Group B
178
+
"<-" "->" "-<" ">-" "<--" "-->" "<<-" "->>" "-<<" ">>-" "<-<" ">->"
179
+
"<-|" "|->" "-|" "|-" "||-" "<!--" "<#--" "<=" "=>" ">=" "<==" "==>"
180
+
"<<=" "=>>" "=<<" ">>=" "<=<" ">=>" "<=|" "|=>" "<=>" "<==>" "||="
181
+
"|=" "//=" "/="
182
+
;; Group C
183
+
"<<" ">>" "<<<" ">>>" "<>" "<$" "$>" "<$>" "<+" "+>" "<+>" "<:" ":<"
184
+
"<:<" ">:" ":>" "<~" "~>" "<~>" "<<~" "<~~" "~~>" "~~" "<|" "|>"
185
+
"<|>" "<||" "||>" "<|||" "|||>" "</" "/>" "</>" "<*" "*>" "<*>" ":?>"
186
+
;; Group D
187
+
"#(" "#{" "#[" "]#" "#!" "#?" "#=" "#_" "#_(" "##" "###" "####"
188
+
;; Group E
189
+
"[|" "|]" "[<" ">]" "{!!" "!!}" "{|" "|}" "{{" "}}" "{{--" "--}}"
190
+
"{!--" "//" "///" "!!"
191
+
;; Group F
192
+
"www" "@_" "&&" "&&&" "&=" "~@" "++" "+++" "/\\" "\\/" "_|_" "||"
193
+
;; Group G
194
+
"=:" "=:=" "=!=" "==" "===" "=/=" "=~" "~-" "^=" "__" "!=" "!==" "-~"
195
+
"--" "---"))
196
197
+
(use-package ligature
198
+
:ensure t
199
+
:config (when (display-graphic-p)
200
+
(ligature-set-ligatures 'prog-mode mono-lisa-v2-ligatures)
201
+
(global-ligature-mode t)))
202
+
203
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
204
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
205
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
206
+
(use-package magit
207
+
:ensure t
208
+
:hook (after-save-hook . magit-after-save-refresh-status))
209
+
210
+
;; โโโโโโโโ
211
+
;; โโโโโโโโ
212
+
;; โโโโโโโโ
213
+
(use-package jjdescription
214
+
:ensure t)
215
+
216
+
(use-package vc-jj
217
+
:ensure t)
218
+
219
+
;; Git Gutter -- Shows git status in the sidebar
220
+
(use-package git-gutter
221
+
:ensure t
222
+
:hook (prog-mode . git-gutter-mode)
223
+
:config
224
+
(setq git-gutter:update-interval 0.2))
225
+
(use-package git-gutter-fringe
226
+
:ensure t
227
+
:config
228
+
(define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated))
229
+
(define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated))
230
+
(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom))
231
+
232
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
233
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
234
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
235
+
;; ...because it's pretty cool.
236
+
(use-package tree-sitter
237
+
:ensure t)
238
+
(use-package tree-sitter-langs
239
+
:ensure t
240
+
:hook (tree-sitter-after-on-hook . tree-sitter-hl-mode)
241
+
:config
242
+
(global-tree-sitter-mode))
243
+
244
+
;; indent-mode helps with indenting, moving around, and acting on
245
+
;; whitespace-sensitive code, like YAML and Python.
246
+
(use-package indent-tools
247
+
:ensure t)
248
+
249
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
250
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
251
+
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
252
+
;; Bazel, Starlark, Tilt, etc.
253
+
(use-package bazel :ensure t
254
+
:mode ("Tiltfile.\\'" . bazel-mode))
255
+
256
+
;; CUE -- https://cuelang.org
257
+
(use-package cue-mode :ensure t)
258
+
259
+
(use-package dockerfile-mode :ensure t)
260
+
261
+
(use-package go-mode
262
+
:ensure t
263
+
:hook ((go-mode . lsp-deferred)
264
+
(before-save . gofmt-before-save))
265
+
:config
266
+
(setq gofmt-command "~/go/bin/gofumpt"))
267
+
268
+
;; HashiCorp Configuration Language
269
+
(use-package hcl-mode :ensure t)
270
+
(use-package terraform-mode
271
+
:ensure t
272
+
:hook (terraform-mode . outline-minor-mode))
273
+
274
+
;; Just -- https://just.systems
275
+
(use-package just-mode :ensure t)
276
+
277
+
(use-package markdown-mode
278
+
:ensure t
279
+
:mode ("README\\.md\\'" . gfm-mode)
280
+
:hook (markdown-mode . auto-fill-mode)
281
+
:init (setq markdown-command "multimarkdown"))
282
+
283
+
(use-package protobuf-mode :ensure t)
284
+
285
+
(use-package rust-mode
286
+
:ensure t
287
+
:hook (rust-mode-hook . eglot-ensure)
288
+
:init
289
+
(add-hook 'rust-mode-hook (lambda () (setq indent-tabs-mode nil)))
290
+
:config
291
+
(setq rust-format-on-save t))
292
+
293
+
(use-package yaml-mode :ensure t)
294
+
(use-package flycheck-yamllint :ensure t)
295
+
296
+
;; Zig -- https://ziglang.org
297
+
(use-package zig-mode :ensure t)
298
299
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
300
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
···
316
;;
317
;; (which-key-add-keymap-based-replacements nesv-prefix-map
318
;; "b" `("Buffer" . ,nesv-buffer-prefix-map))
319
+
320
+
;; โโโโโโโโโโโโโโโโโโโโ
321
+
;; โโโโโโโโโโโโโโโโโโโโ
322
+
;; โโโโโโโโโโโโโโโโโโโโ
323
+
(setq inferior-lisp-program "sbcl")
324
325
(provide 'init)
326
;;; init.el ends here
327
+
328
+
(custom-set-variables
329
+
;; custom-set-variables was added by Custom.
330
+
;; If you edit it by hand, you could mess it up, so be careful.
331
+
;; Your init file should contain only one such instance.
332
+
;; If there is more than one, they won't work right.
333
+
'(package-selected-packages
334
+
'(all-the-icons bazel cue-mode direnv dockerfile-mode exec-path-from-shell
335
+
flycheck-yamllint git-gutter-fringe go-mode indent-tools
336
+
jjdescription just-mode ligature magit markdown-mode
337
+
naysayer-theme neotree nerd-icons protobuf-mode rust-mode
338
+
solaire-mode terraform-mode tree-sitter-langs yaml-mode
339
+
zig-mode)))
340
+
(custom-set-faces
341
+
;; custom-set-faces was added by Custom.
342
+
;; If you edit it by hand, you could mess it up, so be careful.
343
+
;; Your init file should contain only one such instance.
344
+
;; If there is more than one, they won't work right.
345
+
)
-31
nesv/nesv-cursor.el
-31
nesv/nesv-cursor.el
···
1
-
;;; nesv-cursor -- Cursor configuration for GUI mode
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(use-package cursory
6
-
:ensure t
7
-
:if (display-graphic-p)
8
-
:config
9
-
(setq cursory-presets
10
-
'((bar
11
-
:cursor-type (bar . 2)
12
-
:cursor-in-non-selected-windows hollow
13
-
:blink-cursor-blinks 10
14
-
:blink-cursor-interval 0.5
15
-
:blink-cursor-delay 0.2)
16
-
(box
17
-
:cursor-type box
18
-
:cursor-in-non-selected-windows hollow
19
-
:blink-cursor-blinks 10
20
-
:blink-cursor-interval 0.5
21
-
:blink-cursor-delay 0.2)
22
-
(underscore
23
-
:cursor-type (hbar . 3)
24
-
:cursor-in-non-selected-windows hollow
25
-
:blink-cursor-blinks 50
26
-
:blink-cursor-interval 0.2
27
-
:blink-cursor-delay 0.2)))
28
-
(cursory-set-preset 'bar))
29
-
30
-
(provide 'nesv-cursor)
31
-
;;; nesv-cursor.el ends here
···
-102
nesv/nesv-fonts.el
-102
nesv/nesv-fonts.el
···
1
-
;;; nesv-fonts -- Font configuration
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(use-package fontaine
6
-
:ensure t
7
-
:if (display-graphic-p)
8
-
:config
9
-
(setq fontaine-presets
10
-
'((tiny
11
-
:default-family "Iosevka Comfy Wide Fixed"
12
-
:default-height 70)
13
-
(small
14
-
:default-family "Iosevka Comfy Fixed"
15
-
:default-height 90)
16
-
(regular
17
-
:default-height 100)
18
-
(medium
19
-
:default-height 110)
20
-
(medium-large
21
-
:default-height 120)
22
-
(large
23
-
:default-weight semilight
24
-
:default-height 140
25
-
:bold-weight extrabold)
26
-
(presentation
27
-
:default-weight semlight
28
-
:default-height 170
29
-
:bold-weight extrabold)
30
-
(t
31
-
:default-family nesv-emacs-font
32
-
:default-weight regular
33
-
:default-height 100
34
-
:fixed-pitch-family nil ; Falls back to :default-family
35
-
:fixed-pitch-weight nil ; Falls back to :default-weight
36
-
:fixed-pitch-height 1.0
37
-
;;:variable-pitch-family "Iosevka Comfy Wide Duo"
38
-
:variable-pitch-family "Atkinson Hyperlegible"
39
-
:variable-pitch-weight nil
40
-
:variable-pitch-height 1.0
41
-
:bold-family nil ; Whatever the underlying face has
42
-
:bold-weight bold
43
-
:italic-family nil
44
-
:italic-slant italic
45
-
:line-spacing nil)))
46
-
(fontaine-set-preset 'medium-large))
47
-
48
-
(setq mono-lisa-v2-ligatures
49
-
'(;; coding ligatures
50
-
"<!---" "--->" "|||>" "<!--" "<|||" "<==>" "-->" "->>" "-<<" "..=" "!=="
51
-
"#_(" "/==" "||>" "||=" "|->" "===" "==>" "=>>" "=<<" "=/=" ">->" ">=>"
52
-
">>-" ">>=" "<--" "<->" "<-<" "<||" "<|>" "<=" "<==" "<=>" "<=<" "<<-"
53
-
"<<=" "<~>" "<~~" "~~>" ">&-" "<&-" "&>>" "&>" "->" "-<" "-~" ".=" "!="
54
-
"#_" "/=" "|=" "|>" "==" "=>" ">-" ">=" "<-" "<|" "<~" "~-" "~@" "~="
55
-
"~>" "~~"
56
-
;; whitespace ligatures
57
-
"---" "'''" "\"\"\"" "..." "..<" "{|" "[|" ".?" "::" ":::" "::=" ":="
58
-
":>" ":<" "\;\;" "!!" "!!." "!!!" "?." "?:" "??" "?=" "**" "***" "*>"
59
-
"*/" "--" "#:" "#!" "#?" "##" "###" "####" "#=" "/*" "/>" "//" "/**"
60
-
"///" "$(" ">&" "<&" "&&" "|}" "|]" "$>" ".." "++" "+++" "+>" "=:="
61
-
"=!=" ">:" ">>" ">>>" "<:" "<*" "<*>" "<$" "<$>" "<+" "<+>" "<>" "<<"
62
-
"<<<" "</" "</>" "^=" "%%"))
63
-
64
-
(setq berkeley-mono-ligatures
65
-
'(;; Group A
66
-
".." ".=" "..." "..<" "::" ":::" ":=" "::=" ";;" ";;;" "??" "???"
67
-
".?" "?." ":?" "?:" "?=" "**" "***" "/*" "*/" "/**"
68
-
;; Group B
69
-
"<-" "->" "-<" ">-" "<--" "-->" "<<-" "->>" "-<<" ">>-" "<-<" ">->"
70
-
"<-|" "|->" "-|" "|-" "||-" "<!--" "<#--" "<=" "=>" ">=" "<==" "==>"
71
-
"<<=" "=>>" "=<<" ">>=" "<=<" ">=>" "<=|" "|=>" "<=>" "<==>" "||="
72
-
"|=" "//=" "/="
73
-
;; Group C
74
-
"<<" ">>" "<<<" ">>>" "<>" "<$" "$>" "<$>" "<+" "+>" "<+>" "<:" ":<"
75
-
"<:<" ">:" ":>" "<~" "~>" "<~>" "<<~" "<~~" "~~>" "~~" "<|" "|>"
76
-
"<|>" "<||" "||>" "<|||" "|||>" "</" "/>" "</>" "<*" "*>" "<*>" ":?>"
77
-
;; Group D
78
-
"#(" "#{" "#[" "]#" "#!" "#?" "#=" "#_" "#_(" "##" "###" "####"
79
-
;; Group E
80
-
"[|" "|]" "[<" ">]" "{!!" "!!}" "{|" "|}" "{{" "}}" "{{--" "--}}"
81
-
"{!--" "//" "///" "!!"
82
-
;; Group F
83
-
"www" "@_" "&&" "&&&" "&=" "~@" "++" "+++" "/\\" "\\/" "_|_" "||"
84
-
;; Group G
85
-
"=:" "=:=" "=!=" "==" "===" "=/=" "=~" "~-" "^=" "__" "!=" "!==" "-~"
86
-
"--" "---"))
87
-
88
-
(use-package ligature
89
-
:ensure t
90
-
:defer t
91
-
:if (display-graphic-p)
92
-
:config
93
-
(when (or (eq nesv-emacs-font "MonoLisa")
94
-
(eq nesv-emacs-font "Berkeley Mono"))
95
-
(ligature-set-ligatures 'prog-mode (pcase nesv-emacs-font
96
-
("MonoLisa" mono-lisa-v2-ligatures)
97
-
("Berkeley Mono" berkeley-mono-ligatures))))
98
-
(global-ligature-mode t))
99
-
100
-
101
-
(provide 'nesv-fonts)
102
-
;;; nesv-fonts.el ends here
···
-24
nesv/nesv-git.el
-24
nesv/nesv-git.el
···
1
-
;;; nesv-git -- Git configuration
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(use-package magit
6
-
:ensure t
7
-
:hook (after-save-hook . magit-after-save-refresh-status))
8
-
9
-
;; Git Gutter -- Shows git status in the sidebar
10
-
(use-package git-gutter
11
-
:ensure t
12
-
:hook (prog-mode . git-gutter-mode)
13
-
:config
14
-
(setq git-gutter:update-interval 0.2))
15
-
16
-
(use-package git-gutter-fringe
17
-
:ensure t
18
-
:config
19
-
(define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated))
20
-
(define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated))
21
-
(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom))
22
-
23
-
(provide 'nesv-git)
24
-
;;; nesv-git.el ends here
···
-8
nesv/nesv-gnus.el
-8
nesv/nesv-gnus.el
-18
nesv/nesv-icons.el
-18
nesv/nesv-icons.el
···
1
-
;;; nesv-icons.el -- Icon snazziness
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(use-package nerd-icons
6
-
:ensure t)
7
-
8
-
(use-package nerd-icons-completion
9
-
:ensure t
10
-
:hook (marginalia-mode . nerd-icons-completion-marginalia-setup))
11
-
12
-
(use-package nerd-icons-dired
13
-
:ensure t
14
-
:hook
15
-
(dired-mode . nerd-icons-dired-mode))
16
-
17
-
(provide 'nesv-icons)
18
-
;;; nesv-icons.el ends here
···
-9
nesv/nesv-lsp.el
-9
nesv/nesv-lsp.el
-129
nesv/nesv-programming.el
-129
nesv/nesv-programming.el
···
1
-
;;; nesv-programming.el -- Configuration for programming-related things.
2
-
;;; Commentary:
3
-
;; This file installs any packages that are useful in my day-to-day programming
4
-
;; tasks.
5
-
;;; Code:
6
-
7
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
8
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
9
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
10
-
(use-package flycheck
11
-
:ensure t
12
-
:init (global-flycheck-mode))
13
-
14
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
15
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
16
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
17
-
(use-package adoc-mode
18
-
:ensure t)
19
-
20
-
;; Bazel, Starlark, Tilt, etc.
21
-
(use-package bazel
22
-
:ensure t
23
-
:mode
24
-
("Tiltfile.\\'" . bazel-mode))
25
-
26
-
;; โโโโโโโโโโโโ
27
-
;; โโโโโโโโโโโโ
28
-
;; โโโโโโโโโโโโ
29
-
;; https://cuelang.org
30
-
(use-package cue-mode
31
-
:ensure t)
32
-
33
-
(use-package dockerfile-mode
34
-
:ensure t)
35
-
36
-
;; โโโโโโโโ
37
-
;; โโโโโโโโ
38
-
;; โโโโโโโโ
39
-
(use-package go-mode
40
-
:ensure t
41
-
:hook
42
-
((before-save . gofmt-before-save)
43
-
(go-mode-hook . lsp-deferred))
44
-
:config
45
-
(setq gofmt-command "goimports"))
46
-
47
-
;; indent-mode helps with indenting, moving around, and acting on
48
-
;; whitespace-sensitive code, like YAML and Python.
49
-
(use-package indent-tools
50
-
:ensure t)
51
-
52
-
;; HashiCorp Configuration Language
53
-
(use-package hcl-mode
54
-
:ensure t)
55
-
56
-
(use-package terraform-mode
57
-
:ensure t
58
-
:hook
59
-
(terraform-mode . outline-minor-mode))
60
-
61
-
;; โโโโโโโโโโโโโโโโ
62
-
;; โโโโโโโโโโโโโโโโ
63
-
;; โโโโโโโโโโโโโโโโ
64
-
;; https://just.systems
65
-
(use-package just-mode
66
-
:ensure t)
67
-
68
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
69
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
70
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
71
-
(use-package markdown-mode
72
-
:ensure t
73
-
:mode
74
-
("README\\.md\\'" . gfm-mode)
75
-
:hook
76
-
(markdown-mode . auto-fill-mode)
77
-
:init
78
-
(setq markdown-command "multimarkdown")
79
-
:config
80
-
(setq markdown-fontify-code-blocks-natively t))
81
-
82
-
;; โโโโโโโโโโโโ
83
-
;; โโโโโโโโโโโโ
84
-
;; โโโโโโโโโโโโ
85
-
(use-package csv-mode
86
-
:ensure t
87
-
:commands (csv-align-mode))
88
-
89
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
90
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
91
-
;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
92
-
(use-package protobuf-mode
93
-
:ensure t)
94
-
95
-
;; โโโโโโโโโโโโโโโโ
96
-
;; โโโโโโโโโโโโโโโโ
97
-
;; โโโโโโโโโโโโโโโโ
98
-
(use-package rustic
99
-
:ensure t
100
-
:config
101
-
(setq rustic-lsp-client 'eglot)
102
-
(setq lsp-eldoc-hook nil)
103
-
(setq lsp-enable-symbol-highlighting nil)
104
-
(setq lsp-signature-auto-activate nil)
105
-
(setq rustic-format-on-save t)
106
-
(add-hook 'rustic-mode-hook 'nesv/rustic-mode-hook))
107
-
108
-
(defun nesv/rustic-mode-hook ()
109
-
(when buffer-file-name
110
-
(setq-local buffer-save-without-query t))
111
-
(add-hook 'before-save-hook 'lsp-format-buffer nil t))
112
-
113
-
;; โโโโโโโโโโโโโโโโ
114
-
;; โโโโโโโโโโโโโโโโ
115
-
;; โโโโโโโโโโโโโโโโ
116
-
(use-package yaml-mode
117
-
:ensure t)
118
-
119
-
(use-package flycheck-yamllint
120
-
:ensure t)
121
-
122
-
;; โโโโโโโโโโโโ
123
-
;; โโโโโโโโโโโโ
124
-
;; โโโโโโโโโโโโ
125
-
(use-package zig-mode
126
-
:ensure t)
127
-
128
-
(provide 'nesv-programming)
129
-
;;; nesv-programming.el ends here
···
-7
nesv/nesv-slime.el
-7
nesv/nesv-slime.el
-48
nesv/nesv-theme.el
-48
nesv/nesv-theme.el
···
1
-
;;; nesv-theme.el -- Colour theme configuration
2
-
;;; Commentary:
3
-
;;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
4
-
;;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
5
-
;;; โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
6
-
;;; Code:
7
-
8
-
;; A recreation of Jonathan Blow's emacs theme.
9
-
(use-package naysayer-theme
10
-
:ensure t)
11
-
12
-
;; EF-THEMES -- https://protesilaos.com/emacs/ef-themes
13
-
(use-package ef-themes
14
-
:ensure t)
15
-
16
-
;; MODUS THEMES -- https://protesilaos.com/emacs/modus-themes
17
-
(use-package modus-themes
18
-
:ensure t)
19
-
20
-
(when nesv-emacs-load-theme
21
-
(load-theme
22
-
(pcase nesv-emacs-load-theme
23
-
('ef 'ef-bio)
24
-
('modus 'modus-vivendi-tinted)
25
-
('naysayer 'naysayer))
26
-
t))
27
-
28
-
(load-theme 'ef-bio t)
29
-
30
-
(use-package spacious-padding
31
-
:ensure t
32
-
:if (display-graphic-p)
33
-
:hook (after-init . spacious-padding-mode)
34
-
:bind ("<f8>" . spacious-padding-mode)
35
-
:init
36
-
(setq spacious-padding-widths
37
-
'( :internal-border-width 30
38
-
:header-line-width 4
39
-
:mode-line-width 6
40
-
:tab-width 4
41
-
:right-divider-width 30
42
-
:scroll-bar-width 8
43
-
:left-fringe-width 20
44
-
:right-fringe-width 20))
45
-
(setq spacious-padding-subtle-mode-line nil))
46
-
47
-
(provide 'nesv-theme)
48
-
;;; nesv-theme.el ends here
···
-15
nesv/nesv-tree-sitter.el
-15
nesv/nesv-tree-sitter.el
···
1
-
;;; nesv-tree-sitter -- tree-sitter configuration
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(use-package tree-sitter
6
-
:ensure t)
7
-
8
-
(use-package tree-sitter-langs
9
-
:ensure t
10
-
:hook (tree-sitter-after-on-hook . tree-sitter-hl-mode)
11
-
:config
12
-
(global-tree-sitter-mode))
13
-
14
-
(provide 'nesv-tree-sitter)
15
-
;;; nesv-tree-sitter.el ends here
···
-18
nesv/nesv-which-key.el
-18
nesv/nesv-which-key.el
···
1
-
;;; nesv-which-key -- WHICH-KEY configuration
2
-
;;; Commentary:
3
-
;;; Code:
4
-
5
-
(use-package which-key
6
-
:ensure t
7
-
:hook (after-init . which-key-mode)
8
-
:config
9
-
(setq which-key-separator " ")
10
-
(setq which-key-prefix-prefix "... ")
11
-
(setq which-key-max-display-columns 3)
12
-
(setq which-key-idle-delay 1.5)
13
-
(setq which-key-idle-secondary-delay 0.25)
14
-
(setq which-key-add-column-padding 1)
15
-
(setq which-key-max-description-length 40))
16
-
17
-
(provide 'nesv-which-key)
18
-
;;; nesv-which-key.el ends here
···