summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--init.el156
1 files changed, 79 insertions, 77 deletions
diff --git a/init.el b/init.el index da2e440..1e2e586 100644 --- a/init.el +++ b/init.el
@@ -7,27 +7,27 @@
7 7
8;; This file is NOT part of GNU Emacs. 8;; This file is NOT part of GNU Emacs.
9 9
10;;; License: 10;;;- License:
11;; Everyone is permitted to do whatever with this software, without 11;; Everyone is permitted to do whatever with this software, without
12;; limitation. This software comes without any warranty whatsoever, 12;; limitation. This software comes without any warranty whatsoever,
13;; but with two pieces of advice: 13;; but with two pieces of advice:
14;; - Don't hurt yourself. 14;; - Don't hurt yourself.
15;; - Make good choices. 15;; - Make good choices.
16 16
17;;; Code: 17;;;- Code:
18 18
19;;; `setup' -- configuration macro 19;;; `setup' -- configuration macro
20(straight-use-package '(setup :host nil 20(straight-use-package '(setup :host nil
21 :repo "https://git.sr.ht/~zge/setup")) 21 :repo "https://git.sr.ht/~zge/setup"))
22(require 'setup) 22(require 'setup)
23 23
24;; shorthand for `customize-set-variable' (via setup) 24;;;; shorthand for `customize-set-variable' (via setup)
25(defmacro setc (&rest args) 25(defmacro setc (&rest args)
26 "Customize user options using ARGS like `setq'." 26 "Customize user options using ARGS like `setq'."
27 (declare (debug setq)) 27 (declare (debug setq))
28 `(setup (:option ,@args))) 28 `(setup (:option ,@args)))
29 29
30;; Install packages with `straight-use-package' 30;;;; Install packages with `straight-use-package'
31(setup-define :straight 31(setup-define :straight
32 (lambda (recipe) 32 (lambda (recipe)
33 `(straight-use-package ',recipe)) 33 `(straight-use-package ',recipe))
@@ -39,7 +39,7 @@
39 (car recipe) 39 (car recipe)
40 recipe)))) 40 recipe))))
41 41
42;; Set options using `setq-default', instead of `customize-set-variable' 42;;;; Set options using `setq-default', instead of `customize-set-variable'
43;; From what I can tell, `customize-set-variable' loads "all the dependencies 43;; From what I can tell, `customize-set-variable' loads "all the dependencies
44;; for each SYMBOL it sets (see `custom-load-symbol'). Since I don't want to do 44;; for each SYMBOL it sets (see `custom-load-symbol'). Since I don't want to do
45;; that all the time, here's `:set'. DON'T USE THIS HARDLY EVER. Honestly, I 45;; that all the time, here's `:set'. DON'T USE THIS HARDLY EVER. Honestly, I
@@ -51,7 +51,7 @@
51 :debug '(sexp form) 51 :debug '(sexp form)
52 :repeatable t) 52 :repeatable t)
53 53
54;; Bind keys to `acdw/map' 54;;;; Bind keys to `acdw/map'
55(setup-define :acdw/map 55(setup-define :acdw/map
56 (lambda (key command) 56 (lambda (key command)
57 `(progn 57 `(progn
@@ -63,7 +63,7 @@
63 :debug '(form sexp) 63 :debug '(form sexp)
64 :repeatable t) 64 :repeatable t)
65 65
66;; Bind keys to `acdw/leader' 66;;;; Bind keys to `acdw/leader'
67(setup-define :acdw/leader 67(setup-define :acdw/leader
68 (lambda (key command) 68 (lambda (key command)
69 `(progn 69 `(progn
@@ -75,7 +75,7 @@
75 :debug '(form sexp) 75 :debug '(form sexp)
76 :repeatable t) 76 :repeatable t)
77 77
78;; Bind keys, and autoload the functions they're bound to. 78;;;; Bind keys, and autoload the functions they're bound to.
79(setup-define :bind-autoload 79(setup-define :bind-autoload
80 (lambda (key command) 80 (lambda (key command)
81 `(progn 81 `(progn
@@ -87,16 +87,16 @@
87 :debug '(form sexp) 87 :debug '(form sexp)
88 :repeatable t) 88 :repeatable t)
89 89
90;;; About me 90;;; Good defaults
91
92;;;; About me
91(setc user-full-name "Case Duckworth" 93(setc user-full-name "Case Duckworth"
92 user-mail-address "acdw@acdw.net" 94 user-mail-address "acdw@acdw.net"
93 calendar-location-name "Baton Rouge, LA" 95 calendar-location-name "Baton Rouge, LA"
94 calendar-latitude 30.4 96 calendar-latitude 30.4
95 calendar-longitude -91.1) 97 calendar-longitude -91.1)
96 98
97;;; Good defaults 99;;;; Lines
98
99;; Lines
100(setc fill-column 80 100(setc fill-column 80
101 word-wrap t 101 word-wrap t
102 truncate-lines nil) 102 truncate-lines nil)
@@ -105,7 +105,7 @@
105(global-display-fill-column-indicator-mode +1) 105(global-display-fill-column-indicator-mode +1)
106(global-so-long-mode +1) 106(global-so-long-mode +1)
107 107
108;; Whitespace 108;;;; Whitespace
109(setc whitespace-style 109(setc whitespace-style
110 '(empty indentation space-before-tab space-after-tab) 110 '(empty indentation space-before-tab space-after-tab)
111 indent-tabs-mode nil 111 indent-tabs-mode nil
@@ -113,7 +113,7 @@
113 smie-indent-basic tab-width) 113 smie-indent-basic tab-width)
114(add-hook 'before-save-hook #'whitespace-cleanup) 114(add-hook 'before-save-hook #'whitespace-cleanup)
115 115
116;; Pairs 116;;;; Pairs
117(setc show-paren-delay 0 117(setc show-paren-delay 0
118 show-paren-style 'mixed 118 show-paren-style 'mixed
119 show-paren-when-point-inside-paren t 119 show-paren-when-point-inside-paren t
@@ -121,7 +121,7 @@
121(show-paren-mode +1) 121(show-paren-mode +1)
122(add-hook 'prog-mode-hook #'electric-pair-local-mode) 122(add-hook 'prog-mode-hook #'electric-pair-local-mode)
123 123
124;; Killing and yanking 124;;;; Killing and yanking
125(setc save-interprogram-paste-before-kill t 125(setc save-interprogram-paste-before-kill t
126 yank-pop-change-selection t 126 yank-pop-change-selection t
127 x-select-enable-clipboard t 127 x-select-enable-clipboard t
@@ -130,7 +130,7 @@
130 kill-do-not-save-duplicates t) 130 kill-do-not-save-duplicates t)
131(delete-selection-mode +1) 131(delete-selection-mode +1)
132 132
133;; Encoding 133;;;; Encoding
134(setc local-coding-system 'utf-8-unix 134(setc local-coding-system 'utf-8-unix
135 coding-system-for-read 'utf-8-unix 135 coding-system-for-read 'utf-8-unix
136 coding-system-for-write 'utf-8-unix 136 coding-system-for-write 'utf-8-unix
@@ -147,14 +147,14 @@
147(set-keyboard-coding-system 'utf-8-unix) 147(set-keyboard-coding-system 'utf-8-unix)
148(set-selection-coding-system 'utf-8-unix) 148(set-selection-coding-system 'utf-8-unix)
149 149
150;; Uniquify 150;;;; Uniquify
151(setup (:require uniquify) 151(setup (:require uniquify)
152 (:option uniquify-buffer-name-style 'forward 152 (:option uniquify-buffer-name-style 'forward
153 uniquify-separator path-separator 153 uniquify-separator path-separator
154 uniquify-after-kill-buffer-p t 154 uniquify-after-kill-buffer-p t
155 uniquify-ignore-buffers-re "^\\*")) 155 uniquify-ignore-buffers-re "^\\*"))
156 156
157;; Files 157;;;; Files
158(setc backup-directory-alist `((".*" . ,(acdw/in-dir "backup/" t))) 158(setc backup-directory-alist `((".*" . ,(acdw/in-dir "backup/" t)))
159 tramp-backup-directory-alist backup-directory-alist 159 tramp-backup-directory-alist backup-directory-alist
160 auto-save-file-name-transforms `((".*" ,(acdw/in-dir "auto-save/" t) t)) 160 auto-save-file-name-transforms `((".*" ,(acdw/in-dir "auto-save/" t) t))
@@ -163,21 +163,26 @@
163 delete-old-versions t 163 delete-old-versions t
164 version-control t 164 version-control t
165 vc-make-backup-files t) 165 vc-make-backup-files t)
166(auto-save-visited-mode +1)
167 166
167;;;;; Auto-save files
168(auto-save-visited-mode +1)
169;; And /actually/ save all buffers when unfocused
168(add-function :after after-focus-change-function 170(add-function :after after-focus-change-function
169 (defun hook--auto-save-when-unfocused () 171 (defun hook--auto-save-when-unfocused ()
170 "Save all buffers when out of focus." 172 "Save all buffers when out of focus."
171 (acdw/when-unfocused #'save-some-buffers t))) 173 (acdw/when-unfocused #'save-some-buffers t)))
172 174
175;;;;; Autorevert files
173(setup (:require autorevert) 176(setup (:require autorevert)
174 (global-auto-revert-mode +1)) 177 (global-auto-revert-mode +1))
175 178
179;;;;; Save place in files
176(setup (:require saveplace) 180(setup (:require saveplace)
177 (:option save-place-file (acdw/in-dir "places.el") 181 (:option save-place-file (acdw/in-dir "places.el")
178 save-place-forget-unreadable-files (eq acdw/system :home)) 182 save-place-forget-unreadable-files (eq acdw/system :home))
179 (save-place-mode +1)) 183 (save-place-mode +1))
180 184
185;;;;; Keep track of recent files
181(setup (:require recentf) 186(setup (:require recentf)
182 (:option recentf-save-file (acdw/in-dir "recentf.el") 187 (:option recentf-save-file (acdw/in-dir "recentf.el")
183 recentf-max-menu-items 100 188 recentf-max-menu-items 100
@@ -186,7 +191,7 @@
186 (append recentf-exclude) acdw/dir) 191 (append recentf-exclude) acdw/dir)
187 (recentf-mode +1)) 192 (recentf-mode +1))
188 193
189;; Minibuffer 194;;;; Minibuffer
190(setc minibuffer-prompt-properties 195(setc minibuffer-prompt-properties
191 '(read-only t cursor-intangible t face minibuffer-prompt) 196 '(read-only t cursor-intangible t face minibuffer-prompt)
192 enable-recursive-minibuffers t 197 enable-recursive-minibuffers t
@@ -196,6 +201,7 @@
196(file-name-shadow-mode +1) 201(file-name-shadow-mode +1)
197(fset 'yes-or-no-p #'y-or-n-p) 202(fset 'yes-or-no-p #'y-or-n-p)
198 203
204;;;;; Save minibuffer command history (and others)
199(setup (:require savehist) 205(setup (:require savehist)
200 (:option (append savehist-additional-variables) 'kill-ring 206 (:option (append savehist-additional-variables) 'kill-ring
201 (append savehist-additional-variables) 'search-ring 207 (append savehist-additional-variables) 'search-ring
@@ -206,6 +212,7 @@
206 savehist-file (acdw/in-dir "savehist.el")) 212 savehist-file (acdw/in-dir "savehist.el"))
207 (savehist-mode +1)) 213 (savehist-mode +1))
208 214
215;;;;; Completion framework
209(setup (:require icomplete) 216(setup (:require icomplete)
210 (:option completion-ignore-case t 217 (:option completion-ignore-case t
211 read-buffer-completion-ignore-case t 218 read-buffer-completion-ignore-case t
@@ -219,21 +226,22 @@
219 (fido-mode -1) 226 (fido-mode -1)
220 (icomplete-mode +1)) 227 (icomplete-mode +1))
221 228
229;;;;; `imenu'
222(setup imenu 230(setup imenu
223 (:option imenu-auto-rescan t)) 231 (:option imenu-auto-rescan t))
224 232
225;; Cursor 233;;;; Cursor
226(setc cursor-type 'bar 234(setc cursor-type 'bar
227 cursor-in-non-selected-windows 'hollow) 235 cursor-in-non-selected-windows 'hollow)
228 236
229;; Scrolling 237;;;; Scrolling
230(setc auto-window-vscroll nil 238(setc auto-window-vscroll nil
231 fast-but-imprecise-scrolling t 239 fast-but-imprecise-scrolling t
232 scroll-margin 0 240 scroll-margin 0
233 scroll-conservatively 101 241 scroll-conservatively 101
234 scroll-preserve-screen-position 1) 242 scroll-preserve-screen-position 1)
235 243
236;; Fonts 244;;;; Fonts
237;; Load them /after/ the first frame comes into focus 245;; Load them /after/ the first frame comes into focus
238(add-function :after after-focus-change-function 246(add-function :after after-focus-change-function
239 (defun hook--setup-fonts () 247 (defun hook--setup-fonts ()
@@ -253,8 +261,7 @@
253 (remove-function after-focus-change-function 261 (remove-function after-focus-change-function
254 'hook--setup-fonts))) 262 'hook--setup-fonts)))
255 263
256 264;;;; MS Windows
257;; MS Windows
258(setc w32-allow-system-shell t 265(setc w32-allow-system-shell t
259 w32-pass-lwindow-to-system nil 266 w32-pass-lwindow-to-system nil
260 w32-lwindow-modifier 'super 267 w32-lwindow-modifier 'super
@@ -263,7 +270,7 @@
263 w32-pass-apps-to-system nil 270 w32-pass-apps-to-system nil
264 w32-apps-modifier 'hyper) 271 w32-apps-modifier 'hyper)
265 272
266;;; Dired 273;;;; Dired
267(setup dired 274(setup dired
268 (:setq-default dired-recursive-copies 'always 275 (:setq-default dired-recursive-copies 'always
269 dired-recursive-deletes 'always 276 dired-recursive-deletes 'always
@@ -281,11 +288,7 @@
281 hl-line-mode) 288 hl-line-mode)
282 (:acdw/map "C-x C-j" dired-jump)) 289 (:acdw/map "C-x C-j" dired-jump))
283 290
284
285;;;; Web browsing 291;;;; Web browsing
286(when (eq acdw/system :work)
287 (add-to-list 'exec-path "C:/Program Files/Mozilla Firefox"))
288
289(setup browse-url 292(setup browse-url
290 (:setq-default browse-url-browser-function 'eww-browse-url 293 (:setq-default browse-url-browser-function 'eww-browse-url
291 browse-url-secondary-browser-function 294 browse-url-secondary-browser-function
@@ -293,7 +296,9 @@
293 'browse-url-firefox 296 'browse-url-firefox
294 'browse-url-default-browser) 297 'browse-url-default-browser)
295 browse-url-new-window-flag t 298 browse-url-new-window-flag t
296 browse-url-firefox-new-window-is-tab t)) 299 browse-url-firefox-new-window-is-tab t)
300 (when (eq acdw/system :work)
301 (add-to-list 'exec-path "C:/Program Files/Mozilla Firefox")))
297 302
298(setup shr 303(setup shr
299 (:option shr-width fill-column 304 (:option shr-width fill-column
@@ -308,24 +313,24 @@
308(add-hook 'text-mode-hook #'goto-address-mode) 313(add-hook 'text-mode-hook #'goto-address-mode)
309(add-hook 'prog-mode-hook #'goto-address-prog-mode) 314(add-hook 'prog-mode-hook #'goto-address-prog-mode)
310 315
311;; Eshell 316;;;; Eshell
312(setup eshell 317(setup eshell
313 (:option eshell-directory-name (acdw/in-dir "eshell/" t) 318 (:option eshell-directory-name (acdw/in-dir "eshell/" t)
314 eshell-aliases-file (acdw/in-dir "eshell/aliases" t))) 319 eshell-aliases-file (acdw/in-dir "eshell/aliases" t)))
315 320
316;; Debugger 321;;;; Debugger
317(setup debugger 322(setup debugger
318 (:hook visual-line-mode) 323 (:hook visual-line-mode)
319 (:acdw/leader "d" toggle-debug-on-error)) 324 (:acdw/leader "d" toggle-debug-on-error))
320 325
321;; Garbage collection 326;;;; Garbage collection
322(add-hook 'minibuffer-setup-hook #'acdw/gc-disable) 327(add-hook 'minibuffer-setup-hook #'acdw/gc-disable)
323(add-hook 'minibuffer-exit-hook #'acdw/gc-enable) 328(add-hook 'minibuffer-exit-hook #'acdw/gc-enable)
324(add-function :after after-focus-change-function 329(add-function :after after-focus-change-function
325 (defun hook--gc-when-unfocused () 330 (defun hook--gc-when-unfocused ()
326 (acdw/when-unfocused #'garbage-collect))) 331 (acdw/when-unfocused #'garbage-collect)))
327 332
328;; Etc. good defaults 333;;;; Etc. good defaults
329(setc custom-file (acdw/in-dir "custom.el") 334(setc custom-file (acdw/in-dir "custom.el")
330 inhibit-startup-screen t 335 inhibit-startup-screen t
331 initial-buffer-choice t 336 initial-buffer-choice t
@@ -344,7 +349,7 @@
344 (:work "aduckworth") 349 (:work "aduckworth")
345 (:other (getenv "USER")))) 350 (:other (getenv "USER"))))
346 351
347;; Etc. bindings 352;;;; Etc. bindings
348(autoload 'ehelp-command "ehelp" nil nil 'keymap) 353(autoload 'ehelp-command "ehelp" nil nil 'keymap)
349(define-key acdw/map (kbd "C-h") 'ehelp-command) 354(define-key acdw/map (kbd "C-h") 'ehelp-command)
350(define-key acdw/map [remap just-one-space] #'cycle-spacing) 355(define-key acdw/map [remap just-one-space] #'cycle-spacing)
@@ -352,27 +357,24 @@
352(define-key acdw/map (kbd "M-=") #'count-words) 357(define-key acdw/map (kbd "M-=") #'count-words)
353(define-key acdw/map (kbd "C-x C-b") #'ibuffer) 358(define-key acdw/map (kbd "C-x C-b") #'ibuffer)
354 359
355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 360;;; Packages
356;;; Here ends the package-less configuration. Everything following requires a
357;;; package to be downloaded. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
358;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
359 361
360;;; Interactivity 362;;;; Interactivity
361 363
362;;;; Begin-end 364;;;;; Begin-end
363(setup (:straight beginend) 365(setup (:straight beginend)
364 (beginend-global-mode +1)) 366 (beginend-global-mode +1))
365 367
366;;;; MWIM 368;;;;; MWIM
367(setup (:straight mwim) 369(setup (:straight mwim)
368 (:acdw/map "C-a" mwim-beginning 370 (:acdw/map "C-a" mwim-beginning
369 "C-e" mwim-end)) 371 "C-e" mwim-end))
370 372
371;;;; Expand-region 373;;;;; Expand-region
372(setup (:straight expand-region) 374(setup (:straight expand-region)
373 (:acdw/map "C-=" er/expand-region)) 375 (:acdw/map "C-=" er/expand-region))
374 376
375;;;; CRUX 377;;;;; CRUX
376(setup (:straight crux) 378(setup (:straight crux)
377 (:acdw/map "M-o" crux-other-window-or-switch-buffer 379 (:acdw/map "M-o" crux-other-window-or-switch-buffer
378 "C-k" crux-kill-and-join-forward 380 "C-k" crux-kill-and-join-forward
@@ -382,7 +384,7 @@
382 "C-c i" crux-find-user-init-file) 384 "C-c i" crux-find-user-init-file)
383 (crux-reopen-as-root-mode +1)) 385 (crux-reopen-as-root-mode +1))
384 386
385;;;; AVY ... & friends 387;;;;; AVY ... & friends
386(setup (:straight avy) 388(setup (:straight avy)
387 (:acdw/map "C-:" avy-goto-char 389 (:acdw/map "C-:" avy-goto-char
388 "C-'" avy-goto-char-timer 390 "C-'" avy-goto-char-timer
@@ -403,7 +405,7 @@ call `zzz-to-char'."
403 (call-interactively #'zzz-up-to-char))) 405 (call-interactively #'zzz-up-to-char)))
404 (:acdw/map "M-z" acdw/zzz-up-to-char)) 406 (:acdw/map "M-z" acdw/zzz-up-to-char))
405 407
406;;;; anzu 408;;;;; anzu
407(setup (:straight anzu) 409(setup (:straight anzu)
408 (:option anzu-replace-to-string-separator " → " 410 (:option anzu-replace-to-string-separator " → "
409 anzu-cons-mode-line-p nil) 411 anzu-cons-mode-line-p nil)
@@ -418,20 +420,20 @@ call `zzz-to-char'."
418 420
419 (global-anzu-mode +1)) 421 (global-anzu-mode +1))
420 422
421;;;; smart hungry delete 423;;;;; smart hungry delete
422(setup (:straight smart-hungry-delete) 424(setup (:straight smart-hungry-delete)
423 (:acdw/map "<backspace>" smart-hungry-delete-backward-char 425 (:acdw/map "<backspace>" smart-hungry-delete-backward-char
424 "C-d" smart-hungry-delete-forward-char) 426 "C-d" smart-hungry-delete-forward-char)
425 (smart-hungry-delete-add-default-hooks)) 427 (smart-hungry-delete-add-default-hooks))
426 428
427;;; Functionality 429;;;; Functionality
428 430
429;;;; Async 431;;;;; Async
430(setup (:straight async) 432(setup (:straight async)
431 (autoload 'dired-async-mode "dired-async.el" nil t) 433 (autoload 'dired-async-mode "dired-async.el" nil t)
432 (dired-async-mode +1)) 434 (dired-async-mode +1))
433 435
434;;;; Undo-fu 436;;;;; Undo-fu
435(setup (:straight undo-fu) 437(setup (:straight undo-fu)
436 (:acdw/map "C-/" undo-fu-only-undo 438 (:acdw/map "C-/" undo-fu-only-undo
437 "C-?" undo-fu-only-redo)) 439 "C-?" undo-fu-only-redo))
@@ -442,9 +444,9 @@ call `zzz-to-char'."
442 undo-fu-session-directory (acdw/in-dir "undo/" t)) 444 undo-fu-session-directory (acdw/in-dir "undo/" t))
443 (global-undo-fu-session-mode +1)) 445 (global-undo-fu-session-mode +1))
444 446
445;;; Minibuffer 447;;;; Minibuffer
446 448
447;;;; Icomplete-vertical 449;;;;; Icomplete-vertical
448(setup (:straight icomplete-vertical) 450(setup (:straight icomplete-vertical)
449 (let ((map icomplete-minibuffer-map)) 451 (let ((map icomplete-minibuffer-map))
450 (let ((command #'icomplete-forward-completions)) 452 (let ((command #'icomplete-forward-completions))
@@ -457,11 +459,11 @@ call `zzz-to-char'."
457 (define-key map (kbd "C-RET") #'minibuffer-complete-and-exit)) 459 (define-key map (kbd "C-RET") #'minibuffer-complete-and-exit))
458 (icomplete-vertical-mode +1)) 460 (icomplete-vertical-mode +1))
459 461
460;;;; Orderless 462;;;;; Orderless
461(setup (:straight orderless) 463(setup (:straight orderless)
462 (:option (prepend completion-styles) 'orderless)) 464 (:option (prepend completion-styles) 'orderless))
463 465
464;;;; Consult 466;;;;; Consult
465(setup (:straight consult) 467(setup (:straight consult)
466 (:acdw/map 468 (:acdw/map
467 ;; C-c bindings (`mode-specific-map') 469 ;; C-c bindings (`mode-specific-map')
@@ -495,15 +497,15 @@ call `zzz-to-char'."
495 (:option register-preview-delay 0 497 (:option register-preview-delay 0
496 register-preview-function #'consult-register-preview)) 498 register-preview-function #'consult-register-preview))
497 499
498;;;; Marginalia 500;;;;; Marginalia
499(setup (:straight marginalia) 501(setup (:straight marginalia)
500 (:option marginalia-annotators '(marginalia-annotators-heavy 502 (:option marginalia-annotators '(marginalia-annotators-heavy
501 marginalia-annotators-light)) 503 marginalia-annotators-light))
502 (marginalia-mode +1)) 504 (marginalia-mode +1))
503 505
504;;; UI 506;;;; UI
505 507
506;;;; Modus themes 508;;;;; Modus themes
507(setup (:straight (modus-themes 509(setup (:straight (modus-themes
508 :host gitlab 510 :host gitlab
509 :repo "protesilaos/modus-themes")) 511 :repo "protesilaos/modus-themes"))
@@ -517,7 +519,7 @@ call `zzz-to-char'."
517 (acdw/sunrise-sunset #'modus-themes-load-operandi 519 (acdw/sunrise-sunset #'modus-themes-load-operandi
518 #'modus-themes-load-vivendi)) 520 #'modus-themes-load-vivendi))
519 521
520;;;; Mode line 522;;;;; Mode line
521(setup (:straight simple-modeline) 523(setup (:straight simple-modeline)
522 (setup (:straight minions)) 524 (setup (:straight minions))
523 (:option simple-modeline-segments 525 (:option simple-modeline-segments
@@ -534,32 +536,32 @@ call `zzz-to-char'."
534 (require 'acdw-modeline) 536 (require 'acdw-modeline)
535 (simple-modeline-mode +1)) 537 (simple-modeline-mode +1))
536 538
537;;;; Olivetti 539;;;;; Olivetti
538;; also useful for `acdw/reading-mode' 540;; also useful for `acdw/reading-mode'
539(setup (:straight olivetti) 541(setup (:straight olivetti)
540 (:option olivetti-body-width (+ fill-column 4) 542 (:option olivetti-body-width (+ fill-column 4)
541 olivetti-minimum-body-width fill-column)) 543 olivetti-minimum-body-width fill-column))
542 544
543;;;; Outshine 545;;;;; Outshine
544(setup (:straight outshine) 546(setup (:straight outshine)
545 (:option outline-minor-mode-prefix "") 547 (:option outline-minor-mode-prefix "")
546 (:hook-into emacs-lisp-mode)) 548 (:hook-into emacs-lisp-mode))
547 549
548;;; Utilities 550;;;; Utilities
549 551
550;;;; 0x0 -- upload files to a nullpointer 552;;;;; 0x0 -- upload files to a nullpointer
551(setup (:straight (0x0 :host nil 553(setup (:straight (0x0 :host nil
552 :repo "https://git.sr.ht/~zge/nullpointer-emacs")) 554 :repo "https://git.sr.ht/~zge/nullpointer-emacs"))
553 (:option 0x0-default-host 'ttm)) 555 (:option 0x0-default-host 'ttm))
554 556
555;;; System tie-ins 557;;;; System tie-ins
556;; Instead of using `setup''s `:needs', I'm going to wrap these in 558;; Insctead of using `setup''s `:needs', I'm going to wrap these in
557;; `exectuable-find' forms. I don't want to waste time with pulling packages 559;; `exectuable-find' forms. I don't want to waste time with pulling packages
558;; that won't work on a machine. 560;; that won't work on a machine.
559 561
560;;; Applications 562;;;; Applications
561 563
562;;;; Magit 564;;;;; Magit
563(setup (:straight magit) 565(setup (:straight magit)
564 (:acdw/leader "g" magit-status) 566 (:acdw/leader "g" magit-status)
565 (:option magit-display-buffer-function 567 (:option magit-display-buffer-function
@@ -568,7 +570,7 @@ call `zzz-to-char'."
568 (display-buffer buffer '(display-buffer-same-window))) 570 (display-buffer buffer '(display-buffer-same-window)))
569 magit-popup-display-buffer-action '((display-buffer-same-window)))) 571 magit-popup-display-buffer-action '((display-buffer-same-window))))
570 572
571;;;; File browsing 573;;;;; File browsing
572(setup (:straight dired-subtree) 574(setup (:straight dired-subtree)
573 (define-key dired-mode-map "i" #'dired-subtree-toggle)) 575 (define-key dired-mode-map "i" #'dired-subtree-toggle))
574 576
@@ -578,7 +580,7 @@ call `zzz-to-char'."
578(setup (:straight trashed) 580(setup (:straight trashed)
579 (:option trashed-action-confirmer 'y-or-n-p)) 581 (:option trashed-action-confirmer 'y-or-n-p))
580 582
581;;;; Gemini/gopher browsing 583;;;;; Gemini/gopher browsing
582(setup (:straight (elpher :host nil 584(setup (:straight (elpher :host nil
583 :repo "git://thelambdalab.xyz/elpher.git")) 585 :repo "git://thelambdalab.xyz/elpher.git"))
584 (:option elpher-ipv4-always t 586 (:option elpher-ipv4-always t
@@ -598,12 +600,12 @@ call `zzz-to-char'."
598 (:option (append auto-mode-alist) 600 (:option (append auto-mode-alist)
599 '("\\.\\(gemini\\|gmi\\)\\'" . gemini-mode))) 601 '("\\.\\(gemini\\|gmi\\)\\'" . gemini-mode)))
600 602
601;;;; Read e-books (nov.el) 603;;;;; Read e-books (nov.el)
602(setup (:straight nov) 604(setup (:straight nov)
603 (:option nov-text-width fill-column 605 (:option nov-text-width fill-column
604 (append auto-mode-alist) '("\\.epub\\'" . nov-mode))) 606 (append auto-mode-alist) '("\\.epub\\'" . nov-mode)))
605 607
606;;;; Org mode 608;;;;; Org mode
607(setup (:straight (org :host nil 609(setup (:straight (org :host nil
608 :repo "https://code.orgmode.org/bzg/org-mode.git")) 610 :repo "https://code.orgmode.org/bzg/org-mode.git"))
609 (require 'acdw-org) 611 (require 'acdw-org)
@@ -629,14 +631,14 @@ call `zzz-to-char'."
629 (:bind "RET" unpackaged/org-return-dwim) 631 (:bind "RET" unpackaged/org-return-dwim)
630 (add-hook 'before-save-hook #'acdw/hook--org-mode-fix-blank-lines)) 632 (add-hook 'before-save-hook #'acdw/hook--org-mode-fix-blank-lines))
631 633
632;;; Programming languages 634;;;; Programming languages
633 635
634;;;; Formatting 636;;;;; Formatting
635(setup (:straight (apheleia :host github 637(setup (:straight (apheleia :host github
636 :repo "raxod502/apheleia")) 638 :repo "raxod502/apheleia"))
637 (apheleia-global-mode +1)) 639 (apheleia-global-mode +1))
638 640
639;;;; Emacs lisp 641;;;;; Emacs lisp
640(setup emacs-lisp-mode 642(setup emacs-lisp-mode
641 (:option eval-expression-print-length nil 643 (:option eval-expression-print-length nil
642 eval-expression-print-level nil 644 eval-expression-print-level nil
@@ -645,7 +647,7 @@ call `zzz-to-char'."
645(setup (:straight macrostep) 647(setup (:straight macrostep)
646 (define-key emacs-lisp-mode-map (kbd "C-c e") #'macrostep-expand)) 648 (define-key emacs-lisp-mode-map (kbd "C-c e") #'macrostep-expand))
647 649
648;;;; Shell scripts 650;;;;; Shell scripts
649(setup sh-mode 651(setup sh-mode
650 (:option sh-basic-offset tab-width 652 (:option sh-basic-offset tab-width
651 sh-indent-after-case 0 653 sh-indent-after-case 0
@@ -663,7 +665,7 @@ call `zzz-to-char'."
663 (:hook flymake-mode 665 (:hook flymake-mode
664 flymake-shellcheck-load))) 666 flymake-shellcheck-load)))
665 667
666;;;; Web languages 668;;;;; Web languages
667(setup (:straight web-mode) 669(setup (:straight web-mode)
668 (:option css-level-offset 2 670 (:option css-level-offset 2
669 js-indent-level 2 671 js-indent-level 2
@@ -678,4 +680,4 @@ call `zzz-to-char'."
678 (add-to-list 'auto-mode-alist 680 (add-to-list 'auto-mode-alist
679 `(,(concat "\\." extension "\\'") . web-mode)))) 681 `(,(concat "\\." extension "\\'") . web-mode))))
680 682
681;;; init.el ends here 683;;;- init.el ends here