summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--init.el844
1 files changed, 424 insertions, 420 deletions
diff --git a/init.el b/init.el index eae172a..0d90141 100644 --- a/init.el +++ b/init.el
@@ -1,420 +1,424 @@
1;;; init.el ~ acdw -*- lexical-binding: t -*- 1;;; init.el ~ acdw -*- lexical-binding: t -*-
2 2
3;;; emacs configuration - general 3;;; emacs configuration - general
4 4
5(use-package emacs 5(use-package emacs
6 :init 6 :demand
7 (setq calendar-location-name "Baton Rouge, LA") 7 :init
8 (setq calendar-latitude 30.39) 8 (setq calendar-location-name "Baton Rouge, LA")
9 (setq calendar-longitude -91.83) 9 (setq calendar-latitude 30.39)
10 10 (setq calendar-longitude -91.83)
11 (setq browse-url-browser-function 'browse-url-generic) 11
12 (setq browse-url-generic-program "firefox")) 12 (setq browse-url-browser-function 'browse-url-generic)
13 13 (setq browse-url-generic-program "firefox"))
14(use-package auth-source 14
15 :init 15(use-package auth-source
16 (setq auth-sources '("~/.authinfo")) ;; TODO: gpg 16 :init
17 (setq user-full-name "Case Duckworth") 17 (setq auth-sources '("~/.authinfo")) ;; TODO: gpg
18 (setq user-mail-address "acdw@acdw.net")) 18 (setq user-full-name "Case Duckworth")
19 19 (setq user-mail-address "acdw@acdw.net"))
20(use-package better-defaults 20
21 :config ; add other "better defaults" of my own 21(use-package better-defaults
22 (when acdw/at-larry 22 :demand
23 (setq visible-bell nil)) 23 :config ; add other "better defaults" of my own
24 24 (when acdw/at-larry
25 (setq version-control t) 25 (setq visible-bell nil))
26 (setq delete-old-versions t) 26
27 (setq kept-new-versions 6) 27 (setq version-control t)
28 (setq kept-old-versions 4) 28 (setq delete-old-versions t)
29 (setq create-lockfiles nil) 29 (setq kept-new-versions 6)
30 (setq auto-save-file-name-transforms 30 (setq kept-old-versions 4)
31 `((".*" ,(concat user-emacs-directory "backups/") t))) 31 (setq create-lockfiles nil)
32 (auto-save-mode) 32 (setq auto-save-file-name-transforms
33 33 `((".*" ,(concat user-emacs-directory "backups/") t)))
34 (defun full-auto-save () 34 (auto-save-mode)
35 (interactive) 35
36 (save-excursion 36 (defun full-auto-save ()
37 (dolist (buf (buffer-list)) 37 (interactive)
38 (set-buffer buf) 38 (save-excursion
39 (if (and (buffer-file-name) (buffer-modified-p)) 39 (dolist (buf (buffer-list))
40 (basic-save-buffer))))) 40 (set-buffer buf)
41 (add-hook 'auto-save-hook 'full-auto-save) 41 (if (and (buffer-file-name) (buffer-modified-p))
42 (add-hook 'focus-out-hook 'full-auto-save) ; might be resource-intensive 42 (basic-save-buffer)))))
43 43 (add-hook 'auto-save-hook 'full-auto-save)
44 ;; follow the split! 44 (add-hook 'focus-out-hook 'full-auto-save) ; might be resource-intensive
45 (defun split-and-follow-below () 45
46 (interactive) 46 ;; follow the split!
47 (split-window-below) 47 (defun split-and-follow-below ()
48 (balance-windows) 48 (interactive)
49 (other-window 1)) 49 (split-window-below)
50 50 (balance-windows)
51 (defun split-and-follow-right () 51 (other-window 1))
52 (interactive) 52
53 (split-window-right) 53 (defun split-and-follow-right ()
54 (balance-windows) 54 (interactive)
55 (other-window 1)) 55 (split-window-right)
56 56 (balance-windows)
57 (setq save-place-file 57 (other-window 1))
58 (expand-file-name "places" user-emacs-directory)) 58
59 (save-place-mode) 59 (setq save-place-file
60 60 (expand-file-name "places" user-emacs-directory))
61 (set-language-environment "UTF-8") 61 (save-place-mode)
62 (prefer-coding-system 'utf-8) 62
63 (set-default-coding-systems 'utf-8) 63 (set-language-environment "UTF-8")
64 (set-terminal-coding-system 'utf-8) 64 (prefer-coding-system 'utf-8)
65 (set-keyboard-coding-system 'utf-8) 65 (set-default-coding-systems 'utf-8)
66 (setq default-buffer-file-coding-system 'utf-8) 66 (set-terminal-coding-system 'utf-8)
67 67 (set-keyboard-coding-system 'utf-8)
68 (fset 'yes-or-no-p 'y-or-n-p) 68 (setq default-buffer-file-coding-system 'utf-8)
69 69
70 (global-visual-line-mode) 70 (fset 'yes-or-no-p 'y-or-n-p)
71 (mouse-avoidance-mode 'jump) 71
72 (setq show-paren-style 'mixed) 72 (global-visual-line-mode)
73 73 (mouse-avoidance-mode 'jump)
74 ;; TODO figure out how to add this to the :hook block 74 (setq show-paren-style 'mixed)
75 (add-hook 'prog-mode-hook (if (and (fboundp 'display-line-numbers-mode) 75
76 (display-graphic-p)) 76 ;; TODO figure out how to add this to the :hook block
77 #'display-line-numbers-mode 77 (add-hook 'prog-mode-hook (if (and (fboundp 'display-line-numbers-mode)
78 #'linum-mode)) 78 (display-graphic-p))
79 79 #'display-line-numbers-mode
80 (setq completion-ignore-case t) 80 #'linum-mode))
81 (setq read-buffer-completion-ignore-case t) 81
82 (setq read-file-name-completion-ignore-case t) 82 (setq completion-ignore-case t)
83 83 (setq read-buffer-completion-ignore-case t)
84 ;; don't confirm death 84 (setq read-file-name-completion-ignore-case t)
85 (setq confirm-kill-processes nil) 85
86 (setq confirm-kill-emacs nil) 86 ;; don't confirm death
87 87 (setq confirm-kill-processes nil)
88 ;; cursor betterment 88 (setq confirm-kill-emacs nil)
89 (blink-cursor-mode 0) 89
90 (setq cursor-type 'bar) 90 ;; cursor betterment
91 91 (blink-cursor-mode 0)
92 :bind 92 (setq cursor-type 'bar)
93 ([remap split-window-below] . split-and-follow-below) 93
94 ([remap split-window-right] . split-and-follow-right) 94 :bind
95 95 ([remap split-window-below] . split-and-follow-below)
96 :hook 96 ([remap split-window-right] . split-and-follow-right)
97 (auto-save-hook . full-auto-save) 97
98 (focus-out-hook . full-auto-save) 98 :hook
99 (before-save-hook . delete-trailing-whitespace)) 99 (auto-save-hook . full-auto-save)
100 100 (focus-out-hook . full-auto-save)
101(use-package auto-compile 101 (before-save-hook . delete-trailing-whitespace))
102 :config 102
103 (auto-compile-on-load-mode) 103(use-package auto-compile
104 (setq load-prefer-newer t)) 104 :config
105 105 (auto-compile-on-load-mode)
106;; start the server when at home 106 (setq load-prefer-newer t))
107 107
108(if (not acdw/at-work) 108;; start the server when at home
109 (server-start)) 109
110 110(if (not acdw/at-work)
111;;; quality-of-life improvements 111 (server-start))
112 112
113(use-package diminish) 113;;; quality-of-life improvements
114 114
115(use-package which-key 115(use-package diminish)
116 :diminish which-key-mode 116
117 :config 117(use-package which-key
118 (which-key-mode)) 118 :diminish which-key-mode
119 119 :config
120(use-package recentf 120 (which-key-mode))
121 :init 121
122 (setq recentf-max-menu-items 100) 122(use-package recentf
123 (setq recentf-max-saved-items 100) 123 :init
124 :config 124 (setq recentf-max-menu-items 100)
125 (recentf-mode)) 125 (setq recentf-max-saved-items 100)
126 126 :config
127(use-package savehist 127 (recentf-mode))
128 :config 128
129 (savehist-mode)) 129(use-package savehist
130 130 :config
131(use-package restart-emacs) 131 (savehist-mode))
132 132
133(use-package ivy 133(use-package restart-emacs)
134 :init 134
135 (setq ivy-use-virtual-buffers t) 135(use-package ivy
136 (setq ivy-wrap t) 136 :init
137 (setq ivy-count-format "(%d/%d) ") 137 (setq ivy-use-virtual-buffers t)
138 (setq enable-recursive-minibuffers t) 138 (setq ivy-wrap t)
139 (setq ivy-re-builders-alist 139 (setq ivy-count-format "(%d/%d) ")
140 '((read-file-name-internal . ivy--regex-fuzzy) 140 (setq enable-recursive-minibuffers t)
141 (t . ivy--regex-plus))) 141 (setq ivy-re-builders-alist
142 :bind 142 '((read-file-name-internal . ivy--regex-fuzzy)
143 ("C-x b" . ivy-switch-buffer) 143 (t . ivy--regex-plus)))
144 ("C-c v" . ivy-push-view) 144 :bind
145 ("C-c V" . ivy-pop-view) 145 ("C-x b" . ivy-switch-buffer)
146 ("C-c C-r" . ivy-resume) 146 ("C-c v" . ivy-push-view)
147 :config 147 ("C-c V" . ivy-pop-view)
148 (ivy-mode)) 148 ("C-c C-r" . ivy-resume)
149 149 :config
150(use-package swiper 150 (ivy-mode))
151 :bind 151
152 ("C-s" . swiper-isearch)) 152(use-package swiper
153 153 :bind
154(use-package counsel ; includes ivy, counsel, swiper 154 ("C-s" . swiper-isearch))
155 :bind 155
156 ("M-x" . counsel-M-x) 156(use-package counsel ; includes ivy, counsel, swiper
157 ("C-x C-f" . counsel-find-file) 157 :bind
158 ("M-y" . counsel-yank-pop) 158 ("M-x" . counsel-M-x)
159 ("<f1> f" . counsel-describe-function) 159 ("C-x C-f" . counsel-find-file)
160 ("<f1> v" . counsel-describe-variable) 160 ("M-y" . counsel-yank-pop)
161 ("<f1> l" . counsel-find-library) 161 ("<f1> f" . counsel-describe-function)
162 ("<f2> i" . counsel-info-lookup-symbol) 162 ("<f1> v" . counsel-describe-variable)
163 ("<f2> u" . counsel-unicode-char) 163 ("<f1> l" . counsel-find-library)
164 ("<f2> j" . counsel-set-variable) 164 ("<f2> i" . counsel-info-lookup-symbol)
165 ("C-c c" . counsel-compile) 165 ("<f2> u" . counsel-unicode-char)
166 ("C-c g" . counsel-git) 166 ("<f2> j" . counsel-set-variable)
167 ("C-c j" . counsel-git-grep) 167 ("C-c c" . counsel-compile)
168 ("C-c L" . counsel-git-log) 168 ("C-c g" . counsel-git)
169 ("C-c k" . counsel-rg) 169 ("C-c j" . counsel-git-grep)
170 ("C-c m" . counsel-linux-app) 170 ("C-c L" . counsel-git-log)
171 ("C-c n" . counsel-fzf) 171 ("C-c k" . counsel-rg)
172 ("C-x l" . counsel-locate) 172 ("C-c m" . counsel-linux-app)
173 ("C-c J" . counsel-file-jump) 173 ("C-c n" . counsel-fzf)
174 ("C-S-o" . counsel-rhythmbox) 174 ("C-x l" . counsel-locate)
175 ("C-c w" . counsel-wmctrl) 175 ("C-c J" . counsel-file-jump)
176 ("C-c b" . counsel-bookmark) 176 ("C-S-o" . counsel-rhythmbox)
177 ("C-c d" . counsel-descbinds) 177 ("C-c w" . counsel-wmctrl)
178 ("C-c g" . counsel-git) 178 ("C-c b" . counsel-bookmark)
179 ("C-c o" . counsel-outline) 179 ("C-c d" . counsel-descbinds)
180 ("C-c t" . counsel-load-theme) 180 ("C-c g" . counsel-git)
181 ("C-c F" . counsel-org-file)) 181 ("C-c o" . counsel-outline)
182 182 ("C-c t" . counsel-load-theme)
183(use-package ivy-rich 183 ("C-c F" . counsel-org-file))
184 :after ivy 184
185 :config 185(use-package ivy-rich
186 (ivy-rich-mode) 186 :after ivy
187 (setcdr (assq t ivy-format-functions-alist) 187 :config
188 #'ivy-format-function-line)) 188 (ivy-rich-mode)
189 189 (setcdr (assq t ivy-format-functions-alist)
190(use-package avy 190 #'ivy-format-function-line))
191 :bind 191
192 ("M-s" . avy-goto-char-timer) 192(use-package avy
193 :config 193 :bind
194 (use-package ivy-avy)) 194 ("M-s" . avy-goto-char-timer)
195 195 :config
196;;; programming 196 (use-package ivy-avy))
197 197
198(use-package aggressive-indent 198;;; programming
199 :diminish aggressive-indent-mode 199
200 :hook 200(use-package aggressive-indent
201 (prog-mode-hook . aggressive-indent-mode)) 201 :diminish aggressive-indent-mode
202 202 :hook
203(use-package magit 203 (prog-mode-hook . aggressive-indent-mode))
204 :if (not acdw/at-work) 204
205 :bind 205(use-package magit
206 ("C-x g" . magit)) 206 :if (not acdw/at-work)
207 207 :bind
208(use-package forge 208 ("C-x g" . magit))
209 :if (not acdw/at-work) 209
210 :after magit 210(use-package forge
211 :custom 211 :if (not acdw/at-work)
212 (forge-owned-accounts '(("duckwork")))) 212 :after magit
213 213 :custom
214(use-package company 214 (forge-owned-accounts '(("duckwork"))))
215 :commands company-mode 215
216 :init 216(use-package company
217 (setq company-idle-delay 0.1) 217 :commands company-mode
218 :hook 218 :init
219 (prog-mode-hook . company-mode) 219 (setq company-idle-delay 0.1)
220 :bind (:map company-active-map 220 :hook
221 ("C-n" . company-select-next) 221 (prog-mode-hook . company-mode)
222 ("C-p" . company-select-previous)) 222 :bind (:map company-active-map
223 :config 223 ("C-n" . company-select-next)
224 (use-package company-quickhelp 224 ("C-p" . company-select-previous))
225 :hook 225 :config
226 (company-mode . (lambda () 226 (use-package company-quickhelp
227 (company-quickhelp-local-mode))))) 227 :hook
228 228 (company-mode . (lambda ()
229(use-package helpful 229 (company-quickhelp-local-mode)))))
230 :bind 230
231 ("C-h f" . helpful-callable) 231(use-package helpful
232 ("C-h v" . helpful-variable) 232 :bind
233 ("C-h k" . helpful-key) 233 ("C-h f" . helpful-callable)
234 ("C-c C-d" . helpful-at-point) 234 ("C-h v" . helpful-variable)
235 ("C-h F" . helpful-function) 235 ("C-h k" . helpful-key)
236 ("C-h C" . helpful-command) 236 ("C-c C-d" . helpful-at-point)
237 :custom 237 ("C-h F" . helpful-function)
238 (counsel-describe-function-function #'helpful-callable) 238 ("C-h C" . helpful-command)
239 (counsel-describe-variable-function #'helpful-variable)) 239 :custom
240 240 (counsel-describe-function-function #'helpful-callable)
241(unless acdw/at-work 241 (counsel-describe-variable-function #'helpful-variable))
242 (use-package su 242
243 :config 243(unless acdw/at-work
244 (su-mode)) 244 (use-package su
245 245 :config
246 (use-package trashed 246 (su-mode))
247 :init 247
248 (setq delete-by-moving-to-trash t))) 248 (use-package trashed
249 249 :init
250;;; writing 250 (setq delete-by-moving-to-trash t)))
251 251
252(use-package visual-fill-column 252;;; writing
253 :init 253
254 (setq split-window-preferred-function 'visual-fill-column-split-window-sensibly) 254(use-package visual-fill-column
255 (setq visual-fill-column-center-text t) 255 :init
256 :config 256 (setq split-window-preferred-function 'visual-fill-column-split-window-sensibly)
257 (advice-add 'text-scale-adjust 257 (setq visual-fill-column-center-text t)
258 :after #'visual-fill-column-adjust)) 258 :config
259 259 (advice-add 'text-scale-adjust
260;;; window management 260 :after #'visual-fill-column-adjust))
261 261
262(use-package switch-window 262;;; window management
263 :init 263
264 (setq switch-window-shortcut-style 'qwerty) 264(use-package switch-window
265 :bind 265 :init
266 ([remap other-window] . switch-window) 266 (setq switch-window-shortcut-style 'qwerty)
267 ("s-o" . switch-window)) 267 :bind
268 268 ([remap other-window] . switch-window)
269;;; theming and looks 269 ("s-o" . switch-window))
270 270
271(use-package doom-modeline 271;;; theming and looks
272 :init 272
273 (setq doom-modeline-icon nil) 273(use-package doom-modeline
274 (setq doom-modeline-enable-word-count t) 274 :init
275 (when acdw/at-larry 275 (setq doom-modeline-icon nil)
276 (setq display-time-format "%R") 276 (setq doom-modeline-enable-word-count t)
277 (display-time-mode)) 277 (when acdw/at-larry
278 :config 278 (setq display-time-format "%R")
279 (doom-modeline-mode)) 279 (display-time-mode))
280 280 :config
281(when acdw/at-larry 281 (doom-modeline-mode))
282 (use-package statusbar 282
283 :straight (statusbar 283(when acdw/at-larry
284 :host github 284 (use-package statusbar
285 :repo "dakra/statusbar.el") 285 :straight (statusbar
286 :hook 286 :host github
287 (exwm-init-hook . statusbar-mode))) 287 :repo "dakra/statusbar.el")
288 288 :hook
289;; modus themes 289 (exwm-init-hook . statusbar-mode)))
290 290
291(use-package modus-operandi-theme 291;; modus themes
292 :if window-system 292
293 :config 293(use-package modus-operandi-theme
294 (load-theme 'modus-operandi t t) 294 :if window-system
295 295 :config
296 (defun acdw/sunrise () 296 (load-theme 'modus-operandi t t)
297 (enable-theme 'modus-operandi) 297
298 (start-process-shell-command "light" nil "light -S 60")) 298 (defun acdw/sunrise ()
299 299 (enable-theme 'modus-operandi)
300 (if acdw/at-work 300 (start-process-shell-command "light" nil "light -S 60"))
301 (enable-theme 'modus-operandi) 301
302 (run-at-time (nth 1 (split-string (sunrise-sunset))) 302 (if acdw/at-work
303 (* 60 60 24) #'acdw/sunrise))) 303 (enable-theme 'modus-operandi)
304 304 (run-at-time (nth 1 (split-string (sunrise-sunset)))
305(unless acdw/at-work 305 (* 60 60 24) #'acdw/sunrise)))
306 (use-package modus-vivendi-theme 306
307 :if window-system 307(unless acdw/at-work
308 :config 308 (use-package modus-vivendi-theme
309 (load-theme 'modus-vivendi t t) 309 :if window-system
310 310 :config
311 (defun acdw/sunset () 311 (load-theme 'modus-vivendi t t)
312 (enable-theme 'modus-vivendi) 312
313 (start-process-shell-command "light" nil "light -S 35")) 313 (defun acdw/sunset ()
314 314 (enable-theme 'modus-vivendi)
315 (run-at-time (nth 4 (split-string (sunrise-sunset))) 315 (start-process-shell-command "light" nil "light -S 35"))
316 (* 60 60 24) #'acdw/sunset) 316
317 (run-at-time "12am" (* 60 60 24) #'acdw/sunset))) 317 (run-at-time (nth 4 (split-string (sunrise-sunset)))
318 318 (* 60 60 24) #'acdw/sunset)
319;;; gemini/gopher 319 (run-at-time "12am" (* 60 60 24) #'acdw/sunset)))
320(use-package elpher 320
321 :straight (elpher 321;;; gemini/gopher
322 :repo "git://thelambdalab.xyz/elpher.git") 322(use-package elpher
323 :bind (:map elpher-mode-map 323 :straight (elpher
324 ("n" . 'elpher-next-link) 324 :repo "git://thelambdalab.xyz/elpher.git")
325 ("p" . 'elpher-prev-link))) 325 :bind (:map elpher-mode-map
326 326 ("n" . 'elpher-next-link)
327(use-package gemini-mode 327 ("p" . 'elpher-prev-link)))
328 :straight (gemini-mode 328
329 :repo "https://git.carcosa.net/jmcbray/gemini.el.git")) 329(use-package gemini-mode
330 330 :straight (gemini-mode
331(use-package gemini-write 331 :repo "https://git.carcosa.net/jmcbray/gemini.el.git"))
332 :straight (gemini-write 332
333 :repo "https://alexschroeder.ch/cgit/gemini-write")) 333(use-package gemini-write
334 334 :straight (gemini-write
335;;; exwm ~ Emacs X Window Manager 335 :repo "https://alexschroeder.ch/cgit/gemini-write"))
336(when acdw/at-larry 336
337 (use-package exwm 337;;; exwm ~ Emacs X Window Manager
338 :if window-system 338(when acdw/at-larry
339 :demand 339 (use-package exwm
340 :custom 340 :if window-system
341 (exwm-layout-show-all-buffers t) 341 :demand
342 (exwm-workspace-warp-cursor t) 342 :custom
343 ;;(mouse-autoselect-window t) 343 (exwm-layout-show-all-buffers t)
344 (exwm-workspace-number 4) 344 (exwm-workspace-warp-cursor t)
345 (exwm-input-global-keys 345 ;;(mouse-autoselect-window t)
346 `( 346 (exwm-workspace-number 4)
347 ([?\s-r] . exwm-reset) 347 (exwm-input-global-keys
348 ([?\s-w] . exwm-workspace-switch) 348 `(
349 ([?\s-&] . (lambda (command) 349 ([?\s-r] . exwm-reset)
350 (interactive (list (read-shell-command "$ "))) 350 ([?\s-w] . exwm-workspace-switch)
351 (start-process-shell-command command nil command))) 351 ([?\s-&] . (lambda (command)
352 ,@(mapcar (lambda (i) 352 (interactive (list (read-shell-command "$ ")))
353 `(,(kbd (format "s-%d" i)) . 353 (start-process-shell-command command nil command)))
354 (lambda () 354 ,@(mapcar (lambda (i)
355 (interactive) 355 `(,(kbd (format "s-%d" i)) .
356 (exwm-workspace-switch-create ,i)))) 356 (lambda ()
357 (number-sequence 0 9)))) 357 (interactive)
358 (exwm-input-simulation-keys 358 (exwm-workspace-switch-create ,i))))
359 '(([?\C-b] . [left]) 359 (number-sequence 0 9))))
360 ([?\M-b] . [C-left]) 360 (exwm-input-simulation-keys
361 ([?\C-f] . [right]) 361 '(([?\C-b] . [left])
362 ([?\M-f] . [C-right]) 362 ([?\M-b] . [C-left])
363 ([?\C-p] . [up]) 363 ([?\C-f] . [right])
364 ([?\C-n] . [down]) 364 ([?\M-f] . [C-right])
365 ([?\C-a] . [home]) 365 ([?\C-p] . [up])
366 ([?\C-e] . [end]) 366 ([?\C-n] . [down])
367 ([?\M-v] . [prior]) 367 ([?\C-a] . [home])
368 ([?\C-v] . [next]) 368 ([?\C-e] . [end])
369 ([?\C-d] . [delete]) 369 ([?\M-v] . [prior])
370 ([?\C-k] . [S-end delete]) 370 ([?\C-v] . [next])
371 ([?\C-s] . [?\C-f]) 371 ([?\C-d] . [delete])
372 ([?\C-w] . [?\C-x]) 372 ([?\C-k] . [S-end delete])
373 ([?\M-w] . [?\C-c]) 373 ([?\C-s] . [?\C-f])
374 ([?\C-y] . [?\C-v]))) 374 ([?\C-w] . [?\C-x])
375 :hook 375 ([?\M-w] . [?\C-c])
376 ((exwm-update-class-hook . 376 ([?\C-y] . [?\C-v])))
377 (lambda () "Rename buffer to window's class name" 377 :hook
378 (exwm-workspace-rename-buffer exwm-class-name))) 378 ((exwm-update-class-hook .
379 (exwm-update-title-hook . 379 (lambda () "Rename buffer to window's class name"
380 (lambda () "Update workspace name to window title" 380 (exwm-workspace-rename-buffer exwm-class-name)))
381 (when (not exwm-instance-name) 381 (exwm-update-title-hook .
382 (exwm-workspace-rename-buffer exwm-title)))) 382 (lambda () "Update workspace name to window title"
383 (exwm-init-hook . window-divider-mode) 383 (when (not exwm-instance-name)
384 (exwm-init-hook . 384 (exwm-workspace-rename-buffer exwm-title))))
385 (lambda () "Autostart" 385 (exwm-init-hook . window-divider-mode)
386 (start-process-shell-command "cmst" nil "cmst -m -w 5") 386 (exwm-init-hook .
387 (start-process-shell-command "keepassxc" nil "keepassxc") 387 (lambda () "Autostart"
388 (start-process-shell-command 388 (start-process-shell-command "cmst" nil "cmst -m -w 5")
389 "pa-applet" nil 389 (start-process-shell-command "keepassxc" nil "keepassxc")
390 "pa-applet --disable-key-grabbing --disable-notifications") 390 (start-process-shell-command
391 (start-process-shell-command 391 "pa-applet" nil
392 "cbatticon" nil "cbatticon")))) 392 "pa-applet --disable-key-grabbing --disable-notifications")
393 :config 393 (start-process-shell-command
394 (require 'exwm) 394 "cbatticon" nil "cbatticon"))))
395 (exwm-enable) 395 :config
396 (require 'exwm-systemtray) 396 (require 'exwm)
397 (exwm-systemtray-enable)) 397 (exwm-enable)
398 398 (require 'exwm-systemtray)
399 (use-package exwm-firefox-core 399 (exwm-systemtray-enable))
400 :after exwm 400
401 :straight (exwm-firefox-core 401 (use-package exwm-firefox-core
402 :type git 402 :after exwm
403 :host github 403 :straight (exwm-firefox-core
404 :repo "walseb/exwm-firefox-core")) 404 :type git
405 405 :host github
406 (use-package exwm-firefox 406 :repo "walseb/exwm-firefox-core"))
407 :after exwm-firefox-core 407
408 :straight (exwm-firefox 408 (use-package exwm-firefox
409 :type git 409 :after exwm-firefox-core
410 :host github 410 :straight (exwm-firefox
411 :repo "ieure/exwm-firefox") 411 :type git
412 :config 412 :host github
413 (exwm-firefox-mode)) 413 :repo "ieure/exwm-firefox")
414 414 :config
415 (use-package exwm-mff 415 (exwm-firefox-mode))
416 :straight (:repo "duckwork/exwm-mff") 416
417 :after exwm 417 (use-package exwm-mff
418 :hook 418 :straight (exwm-mff
419 (exwm-init-hook . exwm-mff-mode)) 419 :host github
420 ) ;; end of acdw/at-larry block 420 :repo "duckwork/exwm-mff")
421 :after exwm
422 :hook
423 (exwm-init-hook . exwm-mff-mode))
424 ) ;; end of acdw/at-larry block