Blame


1 d9dcf59e 2022-03-31 lh ;; -*- lexical-binding: t; -*-
2 458b2933 2021-12-11 lh (require 'seq)
3 458b2933 2021-12-11 lh (require 'xdg)
4 458b2933 2021-12-11 lh
5 458b2933 2021-12-11 lh (package-initialize)
6 458b2933 2021-12-11 lh
7 458b2933 2021-12-11 lh (push
8 458b2933 2021-12-11 lh (let ((lisp-path (expand-file-name "lisp" user-emacs-directory)))
9 458b2933 2021-12-11 lh (unless (file-exists-p lisp-path)
10 458b2933 2021-12-11 lh (make-directory lisp-path))
11 458b2933 2021-12-11 lh lisp-path)
12 458b2933 2021-12-11 lh load-path)
13 458b2933 2021-12-11 lh
14 aaf6cf56 2022-04-09 lh (require 'lh)
15 cedf62e5 2022-05-16 lh (require 'lh-insert)
16 4a2b1b6c 2022-05-16 lh (require 'lh-resurrect)
17 9986dad0 2021-12-27 lh (require 'iso-transl)
18 8dd97a29 2024-09-21 lh (require 'substitute)
19 458b2933 2021-12-11 lh
20 df78c23a 2022-04-22 lh (with-eval-after-load 'paredit
21 df78c23a 2022-04-22 lh (require 'paredit-menu))
22 6fd37fae 2022-04-08 lh (with-eval-after-load 'restclient
23 6fd37fae 2022-04-08 lh (require 'restclient-capf))
24 3ef2dd01 2022-07-10 lh (with-eval-after-load 'elfeed
25 3ef2dd01 2022-07-10 lh (require 'elfeed-tube)
26 3ef2dd01 2022-07-10 lh (require 'elfeed-tube-mpv)
27 3ef2dd01 2022-07-10 lh (elfeed-tube-setup))
28 6fd37fae 2022-04-08 lh
29 458b2933 2021-12-11 lh (setq org-roam-v2-ack t)
30 458b2933 2021-12-11 lh
31 458b2933 2021-12-11 lh (setq lh/dir-documents
32 458b2933 2021-12-11 lh (expand-file-name
33 458b2933 2021-12-11 lh (cond ((eq system-type 'gnu/linux) (or (xdg-user-dir "DOCUMENTS") "~/Documents"))
34 458b2933 2021-12-11 lh ((eq system-type 'windows-nt) "~/Documents"))))
35 458b2933 2021-12-11 lh (setq lh/dir-data-home
36 458b2933 2021-12-11 lh (expand-file-name
37 458b2933 2021-12-11 lh (cond ((eq system-type 'gnu/linux) (or (xdg-data-home) "~/.local/share"))
38 458b2933 2021-12-11 lh ((eq system-type 'windows-nt) (getenv "APPDATA")))))
39 458b2933 2021-12-11 lh
40 458b2933 2021-12-11 lh (defadvice split-window-below (after lh/split-window-below activate)
41 458b2933 2021-12-11 lh (other-window 1))
42 458b2933 2021-12-11 lh (defadvice split-window-right (after lh/split-window-right activate)
43 458b2933 2021-12-11 lh (other-window 1))
44 458b2933 2021-12-11 lh (defadvice toggle-frame-fullscreen (before lh/toggle-frame-fullscreen-bars activate)
45 458b2933 2021-12-11 lh (menu-bar-mode (if menu-bar-mode -1 1))
46 458b2933 2021-12-11 lh (tool-bar-mode (if tool-bar-mode -1 1))
47 458b2933 2021-12-11 lh (scroll-bar-mode (if scroll-bar-mode -1 1)))
48 458b2933 2021-12-11 lh
49 2636d974 2023-01-16 lh (defun lh/org-capture-skip-below-toplevel ()
50 2636d974 2023-01-16 lh (when (> (org-current-level) 1)
51 2636d974 2023-01-16 lh (save-excursion (org-end-of-subtree t))))
52 acd8522f 2023-05-12 lh
53 acd8522f 2023-05-12 lh (defun lh/diff-file-changes ()
54 acd8522f 2023-05-12 lh (interactive)
55 acd8522f 2023-05-12 lh (let ((file-name (make-temp-file "emacs-diff-"))
56 acd8522f 2023-05-12 lh (original-file-name (buffer-file-name)))
57 acd8522f 2023-05-12 lh (unwind-protect
58 acd8522f 2023-05-12 lh (progn
59 acd8522f 2023-05-12 lh (unwind-protect
60 acd8522f 2023-05-12 lh (progn
61 acd8522f 2023-05-12 lh (set-visited-file-name file-name)
62 acd8522f 2023-05-12 lh (save-buffer))
63 acd8522f 2023-05-12 lh (set-visited-file-name original-file-name))
64 acd8522f 2023-05-12 lh (diff original-file-name file-name nil t))
65 acd8522f 2023-05-12 lh (delete-file file-name))))
66 edc686b3 2023-07-30 lh
67 edc686b3 2023-07-30 lh (defun lh/indent-region-inhibit-message (start end &optional column)
68 edc686b3 2023-07-30 lh (interactive "r\nP")
69 edc686b3 2023-07-30 lh (let ((inhibit-message t))
70 edc686b3 2023-07-30 lh (indent-region start end column)))
71 2636d974 2023-01-16 lh
72 458b2933 2021-12-11 lh (defmacro lh/global-set-keys (keys-alist)
73 458b2933 2021-12-11 lh `(progn
74 458b2933 2021-12-11 lh ,@(seq-map
75 458b2933 2021-12-11 lh (lambda (x)
76 458b2933 2021-12-11 lh `(global-set-key (kbd ,(car x)) #',(cdr x)))
77 458b2933 2021-12-11 lh keys-alist)))
78 458b2933 2021-12-11 lh
79 9d2857fd 2022-04-08 lh (defmacro lh/define-keys (keymap keys-alist &optional after)
80 9d2857fd 2022-04-08 lh (let ((defines (seq-map
81 9d2857fd 2022-04-08 lh (lambda (x)
82 3ef2dd01 2022-07-10 lh `(define-key
83 3ef2dd01 2022-07-10 lh ,keymap
84 3ef2dd01 2022-07-10 lh ,(let ((key (car x)))
85 3ef2dd01 2022-07-10 lh (cond
86 3ef2dd01 2022-07-10 lh ((stringp key) `(kbd ,key))
87 3ef2dd01 2022-07-10 lh (t key)))
88 3ef2dd01 2022-07-10 lh #',(cdr x)))
89 9d2857fd 2022-04-08 lh keys-alist)))
90 9d2857fd 2022-04-08 lh (if (null after)
91 9d2857fd 2022-04-08 lh (cons 'progn defines)
92 9d2857fd 2022-04-08 lh `(with-eval-after-load ',after
93 9d2857fd 2022-04-08 lh ,@defines))))
94 487e0474 2021-12-27 lh
95 458b2933 2021-12-11 lh (lh/global-set-keys
96 458b2933 2021-12-11 lh (("C-x C-M-t" . transpose-regions)
97 46b070ea 2024-09-21 lh ("C-x K" . kill-current-buffer)
98 5a65117c 2023-12-28 lh ("C-x C-b" . ibuffer)
99 458b2933 2021-12-11 lh
100 168c040b 2022-03-31 lh ;;;; Consult bindings
101 458b2933 2021-12-11 lh ;; C-c bindings (mode-specific-map)
102 458b2933 2021-12-11 lh ("C-c h" . consult-history)
103 458b2933 2021-12-11 lh ("C-c m" . consult-mode-command)
104 458b2933 2021-12-11 lh ("C-c b" . consult-bookmark)
105 458b2933 2021-12-11 lh ("C-c k" . consult-kmacro)
106 458b2933 2021-12-11 lh ;; C-x bindings (ctl-x-map)
107 458b2933 2021-12-11 lh ("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
108 458b2933 2021-12-11 lh ("C-x b" . consult-buffer) ;; orig. switch-to-buffer
109 458b2933 2021-12-11 lh ("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
110 458b2933 2021-12-11 lh ("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
111 458b2933 2021-12-11 lh ;; Custom M-# bindings for fast register access
112 458b2933 2021-12-11 lh ("M-#" . consult-register-load)
113 458b2933 2021-12-11 lh ("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
114 458b2933 2021-12-11 lh ("C-M-#" . consult-register)
115 458b2933 2021-12-11 lh ;; Other custom bindings'
116 458b2933 2021-12-11 lh ("<help> a" . consult-apropos) ;; orig. apropos-command
117 458b2933 2021-12-11 lh ;; M-g bindings (goto-map)
118 458b2933 2021-12-11 lh ("M-g e" . consult-compile-error)
119 458b2933 2021-12-11 lh ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
120 458b2933 2021-12-11 lh ("M-g g" . consult-goto-line) ;; orig. goto-line
121 458b2933 2021-12-11 lh ("M-g M-g" . consult-goto-line) ;; orig. goto-line
122 458b2933 2021-12-11 lh ("M-g o" . consult-outline) ;; Alternative: consult-org-heading
123 458b2933 2021-12-11 lh ("M-g m" . consult-mark)
124 458b2933 2021-12-11 lh ("M-g k" . consult-global-mark)
125 458b2933 2021-12-11 lh ("M-g i" . consult-imenu)
126 458b2933 2021-12-11 lh ("M-g I" . consult-imenu-multi)
127 458b2933 2021-12-11 lh ;; M-s bindings (search-map)
128 458b2933 2021-12-11 lh ("M-s f" . consult-find)
129 458b2933 2021-12-11 lh ("M-s L" . consult-locate)
130 458b2933 2021-12-11 lh ("M-s g" . consult-grep)
131 458b2933 2021-12-11 lh ("M-s G" . consult-git-grep)
132 458b2933 2021-12-11 lh ("M-s l" . consult-line)
133 458b2933 2021-12-11 lh ("M-s m" . consult-multi-occur)
134 458b2933 2021-12-11 lh ("M-s k" . consult-keep-lines)
135 458b2933 2021-12-11 lh ("M-s u" . consult-focus-lines)
136 458b2933 2021-12-11 lh ("M-s s" . consult-eglot-symbols)
137 458b2933 2021-12-11 lh ;; Isearch integration
138 458b2933 2021-12-11 lh ("M-s e" . consult-isearch)
139 458b2933 2021-12-11 lh
140 4086a9af 2023-07-08 lh ("C-." . embark-act)
141 4086a9af 2023-07-08 lh ("M-." . embark-dwim)
142 4086a9af 2023-07-08 lh
143 458b2933 2021-12-11 lh ("C-+" . er/expand-region)
144 458b2933 2021-12-11 lh
145 458b2933 2021-12-11 lh ("M-o" . ace-window)
146 295f7f74 2023-11-17 lh
147 295f7f74 2023-11-17 lh ("C-c '" . imenu-list-smart-toggle)
148 458b2933 2021-12-11 lh
149 1e3868e2 2022-05-16 lh ("C-c r l" . org-roam-buffer-toggle)
150 1e3868e2 2022-05-16 lh ("C-c r f" . org-roam-node-find)
151 1e3868e2 2022-05-16 lh ("C-c r i" . org-roam-node-insert)
152 aaf6cf56 2022-04-09 lh
153 aaf6cf56 2022-04-09 lh ("C-h f" . helpful-callable)
154 168c040b 2022-03-31 lh ("C-h F" . helpful-function)
155 168c040b 2022-03-31 lh ("C-h C" . helpful-command)
156 168c040b 2022-03-31 lh ("C-h v" . helpful-variable)
157 168c040b 2022-03-31 lh ("C-h k" . helpful-key)
158 aaf6cf56 2022-04-09 lh ("C-c C-d" . helpful-at-point)
159 458b2933 2021-12-11 lh
160 aaf6cf56 2022-04-09 lh ("C-S-p" . lh/move-line-up)
161 aaf6cf56 2022-04-09 lh ("M-<up>" . lh/move-line-up)
162 aaf6cf56 2022-04-09 lh ("C-S-n" . lh/move-line-down)
163 aaf6cf56 2022-04-09 lh ("M-<down>" . lh/move-line-down)
164 aaf6cf56 2022-04-09 lh
165 3d044e97 2022-04-10 lh ("M-s r" . deadgrep)
166 659a718c 2022-04-10 lh
167 dfb9342c 2022-05-16 lh ("C-c p" . lh/pop-out-buffer)
168 5b3a91cd 2022-05-16 lh ("C-c n" . lh/buffer-create-new)
169 2636d974 2023-01-16 lh ("C-c a" . org-agenda)
170 2636d974 2023-01-16 lh ("C-c c" . org-capture)
171 2636d974 2023-01-16 lh ("C-c l" . org-store-link)
172 8dd97a29 2024-09-21 lh ("C-c s" . substitute-prefix-map)
173 cedf62e5 2022-05-16 lh
174 cedf62e5 2022-05-16 lh ("C-c i j" . lh/insert-json-encoded)
175 cedf62e5 2022-05-16 lh ("C-c i i s" . lh/insert-random-sha1)
176 cedf62e5 2022-05-16 lh ("C-c i i u" . uuidgen)
177 cedf62e5 2022-05-16 lh ("C-c i r f" . lh/insert-number-from-register-format)
178 45c2bb2a 2022-10-17 lh
179 45c2bb2a 2022-10-17 lh ("C-c e x" . lh/xml-escape-region)
180 c7f3a3ef 2023-01-21 lh
181 fb90f401 2022-04-22 lh ("<mouse-8>" . xref-go-back)
182 fb90f401 2022-04-22 lh ("<mouse-9>" . xref-go-forward)))
183 fb90f401 2022-04-22 lh
184 9d2857fd 2022-04-08 lh (lh/define-keys icomplete-fido-mode-map
185 9d2857fd 2022-04-08 lh (("TAB" . icomplete-force-complete)
186 9d2857fd 2022-04-08 lh ("<left>" . left-char)
187 9d2857fd 2022-04-08 lh ("<right>" . right-char)
188 a7a188e4 2022-06-02 lh ("^" . icomplete-fido-backward-updir)
189 a7a188e4 2022-06-02 lh ("DEL" . backward-delete-char))
190 9d2857fd 2022-04-08 lh icomplete)
191 487e0474 2021-12-27 lh (lh/define-keys isearch-mode-map
192 487e0474 2021-12-27 lh (("M-e" . consult-isearch)
193 487e0474 2021-12-27 lh ("M-s e" . consult-isearch)
194 487e0474 2021-12-27 lh ("M-s l" . consult-line)))
195 487e0474 2021-12-27 lh (lh/define-keys paredit-mode-map
196 487e0474 2021-12-27 lh (("M-s" . nil)
197 df78c23a 2022-04-22 lh ("M-S" . paredit-splice-sexp))
198 c7f3a3ef 2023-01-21 lh paredit)
199 4fb70683 2022-04-09 lh (lh/define-keys elfeed-search-mode-map
200 4fb70683 2022-04-09 lh (("G" . elfeed-update))
201 4fb70683 2022-04-09 lh elfeed)
202 9834552c 2022-04-22 lh (lh/define-keys json-mode-map
203 9834552c 2022-04-22 lh (("C-c C-j" . jq-interactively))
204 9834552c 2022-04-22 lh json-mode)
205 4ebc7564 2022-06-02 lh (lh/define-keys sly-inspector-mode-map
206 4ebc7564 2022-06-02 lh (("<mouse-8>" . sly-inspector-pop)
207 4ebc7564 2022-06-02 lh ("<mouse-9>" . sly-inspector-next))
208 4ebc7564 2022-06-02 lh sly)
209 f5a27d61 2022-07-11 lh
210 4086a9af 2023-07-08 lh (with-eval-after-load 'icomplete
211 4086a9af 2023-07-08 lh (define-key icomplete-minibuffer-map (kbd "C-.") nil))
212 4086a9af 2023-07-08 lh
213 f5a27d61 2022-07-11 lh (defun lh/elfeed-show-visit ()
214 f5a27d61 2022-07-11 lh (interactive)
215 f5a27d61 2022-07-11 lh (let ((link (elfeed-entry-link elfeed-show-entry)))
216 f5a27d61 2022-07-11 lh (if (string-match-p (rx
217 f5a27d61 2022-07-11 lh line-start
218 f5a27d61 2022-07-11 lh "http" (opt "s") "://"
219 f5a27d61 2022-07-11 lh (opt "www.")
220 f5a27d61 2022-07-11 lh "youtube.com/")
221 f5a27d61 2022-07-11 lh link)
222 f5a27d61 2022-07-11 lh (elfeed-tube-mpv (point))
223 f5a27d61 2022-07-11 lh (elfeed-show-visit))))
224 f5a27d61 2022-07-11 lh
225 3ef2dd01 2022-07-10 lh (lh/define-keys elfeed-show-mode-map
226 f5a27d61 2022-07-11 lh (("b" . lh/elfeed-show-visit)
227 f5a27d61 2022-07-11 lh ("F" . elfeed-tube-fetch)
228 f5a27d61 2022-07-11 lh ([remap save-buffer] . elfeed-tube-save)
229 f5a27d61 2022-07-11 lh ("C-c C-f" . elfeed-tube-mpv-follow-mode)
230 f5a27d61 2022-07-11 lh ("C-c C-w" . elfeed-tube-mpv-where))
231 3ef2dd01 2022-07-10 lh elfeed)
232 3ef2dd01 2022-07-10 lh (lh/define-keys elfeed-search-mode-map
233 3ef2dd01 2022-07-10 lh (("F" . elfeed-tube-fetch)
234 3ef2dd01 2022-07-10 lh ([remap save-buffer] . elfeed-tube-save))
235 3ef2dd01 2022-07-10 lh elfeed)
236 458b2933 2021-12-11 lh
237 6761daf7 2022-04-09 lh (defun corfu-insert-with-return ()
238 6761daf7 2022-04-09 lh (interactive)
239 6761daf7 2022-04-09 lh (let ((idx corfu--index))
240 6761daf7 2022-04-09 lh (corfu-insert)
241 6761daf7 2022-04-09 lh (when (< idx 0)
242 ceeebd9f 2022-06-02 lh (funcall (key-binding (kbd "RET")))
243 6761daf7 2022-04-09 lh (indent-according-to-mode))))
244 6761daf7 2022-04-09 lh
245 6761daf7 2022-04-09 lh (lh/define-keys corfu-map
246 6761daf7 2022-04-09 lh (("RET" . corfu-insert-with-return))
247 6761daf7 2022-04-09 lh corfu)
248 6761daf7 2022-04-09 lh
249 1903acd6 2023-11-25 lh (defun lh/lisp-mode-hook ()
250 1903acd6 2023-11-25 lh (paredit-mode 1)
251 1903acd6 2023-11-25 lh (prism-mode 1)
252 1903acd6 2023-11-25 lh (highlight-function-calls-mode 1))
253 1903acd6 2023-11-25 lh
254 1903acd6 2023-11-25 lh (add-hook 'lisp-mode-hook 'lh/lisp-mode-hook)
255 1903acd6 2023-11-25 lh (add-hook 'emacs-lisp-mode-hook 'lh/lisp-mode-hook)
256 a92e2264 2022-07-21 lh ;; Aggressive Intent mode causes 100% CPU for me whenever the sly repl prints warnings
257 5c4878d4 2023-11-17 lh (add-hook 'sly-mrepl-mode-hook
258 5c4878d4 2023-11-17 lh (lambda ()
259 5c4878d4 2023-11-17 lh (aggressive-indent-mode -1)))
260 4086a9af 2023-07-08 lh (add-hook 'embark-collect-mode-hook 'consult-preview-at-point-mode)
261 56d855d5 2023-10-19 lh (add-hook 'prog-mode-hook
262 56d855d5 2023-10-19 lh (lambda ()
263 56d855d5 2023-10-19 lh (setq-local show-trailing-whitespace t)))
264 458b2933 2021-12-11 lh
265 f9035b88 2021-12-27 lh ;; notmuch's tag selection doesnt work with consult-completing-read-multiple
266 f9035b88 2021-12-27 lh ;; items need to be trimmed
267 f9035b88 2021-12-27 lh (defun lh/notmuch-read-tag-changes-trim (tags)
268 f9035b88 2021-12-27 lh (seq-map (lambda (x)
269 f9035b88 2021-12-27 lh (string-trim-right x))
270 f9035b88 2021-12-27 lh tags))
271 f9035b88 2021-12-27 lh
272 f9035b88 2021-12-27 lh (advice-add #'notmuch-read-tag-changes :filter-return #'lh/notmuch-read-tag-changes-trim)
273 f9035b88 2021-12-27 lh
274 eecadf63 2022-05-12 lh ;; Fixes bug in minibuffer.el that causes consult to not work without any text
275 eecadf63 2022-05-12 lh ;; https://github.com/minad/consult/issues/566
276 eecadf63 2022-05-12 lh ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55205
277 eecadf63 2022-05-12 lh (defun lh/advice-fix-minibuffer-consult (func &rest args)
278 eecadf63 2022-05-12 lh (apply func (list (car args)
279 eecadf63 2022-05-12 lh (cadr args)
280 eecadf63 2022-05-12 lh (copy-sequence (caddr args)))))
281 eecadf63 2022-05-12 lh
282 eecadf63 2022-05-12 lh (advice-add #'completion--replace :around #'lh/advice-fix-minibuffer-consult)
283 eecadf63 2022-05-12 lh
284 632cae80 2025-08-31 lh (defun lh/advice-fido-setup (func &rest args)
285 632cae80 2025-08-31 lh (prog1
286 632cae80 2025-08-31 lh (apply func args)
287 632cae80 2025-08-31 lh (setq-local completion-styles '(basic substring initials flex))))
288 684877ad 2023-08-13 lh
289 632cae80 2025-08-31 lh (advice-add 'icomplete--fido-mode-setup :around #'lh/advice-fido-setup)
290 684877ad 2023-08-13 lh
291 9f36c918 2022-02-01 lh (setq completion-ignore-case t)
292 9f36c918 2022-02-01 lh
293 458b2933 2021-12-11 lh (custom-set-variables
294 458b2933 2021-12-11 lh ;; custom-set-variables was added by Custom.
295 458b2933 2021-12-11 lh ;; If you edit it by hand, you could mess it up, so be careful.
296 458b2933 2021-12-11 lh ;; Your init file should contain only one such instance.
297 458b2933 2021-12-11 lh ;; If there is more than one, they won't work right.
298 edc686b3 2023-07-30 lh '(aggressive-indent-region-function 'lh/indent-region-inhibit-message)
299 596a2ad4 2023-06-26 lh '(all-the-icons-completion-mode t)
300 7fdb3009 2023-06-26 lh '(auth-sources '(default))
301 458b2933 2021-12-11 lh '(aw-dispatch-always t)
302 458b2933 2021-12-11 lh '(aw-keys '(97 115 100 102 103 104 106 107 108))
303 458b2933 2021-12-11 lh '(aw-scope 'frame)
304 458b2933 2021-12-11 lh '(backup-by-copying t)
305 c7f3a3ef 2023-01-21 lh '(before-save-hook '(whitespace-cleanup))
306 3e06b6d0 2021-12-27 lh '(bookmark-completion-ignore-case nil)
307 b4a5d5d6 2023-05-12 lh '(calendar-christian-all-holidays-flag nil)
308 b4a5d5d6 2023-05-12 lh '(calendar-mark-holidays-flag t)
309 b4a5d5d6 2023-05-12 lh '(calendar-week-start-day 1)
310 458b2933 2021-12-11 lh '(column-number-mode t)
311 5dc866ee 2022-03-31 lh '(completion-ignore-case t t)
312 68a664f6 2022-03-31 lh '(completion-styles '(basic substring initials))
313 b3df86b7 2024-04-06 lh '(context-menu-mode t)
314 b3df86b7 2024-04-06 lh '(corfu-auto t)
315 b3df86b7 2024-04-06 lh '(corfu-auto-delay 0.0)
316 b3df86b7 2024-04-06 lh '(corfu-auto-prefix 1)
317 ec7ac440 2024-04-11 lh '(corfu-popupinfo-delay '(0 . 0))
318 ec7ac440 2024-04-11 lh '(corfu-popupinfo-hide nil)
319 ec7ac440 2024-04-11 lh '(corfu-popupinfo-mode t)
320 b3df86b7 2024-04-06 lh '(corfu-preselect 'prompt)
321 b3df86b7 2024-04-06 lh '(corfu-quit-at-boundary t)
322 771ab89b 2022-04-08 lh '(create-lockfiles nil)
323 458b2933 2021-12-11 lh '(cursor-type 'bar)
324 3e10447f 2023-11-25 lh '(custom-enabled-themes '(modus-operandi))
325 3e10447f 2023-11-25 lh '(custom-safe-themes
326 c4793b1b 2025-08-31 lh '("1ea82e39d89b526e2266786886d1f0d3a3fa36c87480fad59d8fab3b03ef576e"
327 c4793b1b 2025-08-31 lh "3d94d6d1a1c23113a60c8496c9aed094dbc2695f219e8127bb168d17b1e6dab3"
328 c4793b1b 2025-08-31 lh "4b026ac68a1aa4d1a91879b64f54c2490b4ecad8b64de5b1865bca0addd053d9"
329 c4793b1b 2025-08-31 lh "58264887d7ab17702ef85bbd96e11bd7f613622ff9c63990be860b958c978f09"
330 c4793b1b 2025-08-31 lh "611ef0918b8b413badb8055089b5499c1d4ac20f1861efba8f3bfcb36ad0a448"
331 c4793b1b 2025-08-31 lh "15604b083d03519b0c2ed7b32da6d7b2dc2f6630bef62608def60cdcf9216184"
332 c4793b1b 2025-08-31 lh "88cb0f9c0c11dbb4c26a628d35eb9239d1cf580cfd28e332e654e7f58b4e721b"
333 c4793b1b 2025-08-31 lh "69f7e8101867cfac410e88140f8c51b4433b93680901bb0b52014144366a08c8"
334 c4793b1b 2025-08-31 lh "21e3d55141186651571241c2ba3c665979d1e886f53b2e52411e9e96659132d4"
335 c4793b1b 2025-08-31 lh default))
336 458b2933 2021-12-11 lh '(delete-old-versions t)
337 4f974076 2022-04-10 lh '(delete-selection-mode t)
338 7fdb3009 2023-06-26 lh '(denote-modules '(project xref ffap))
339 7fdb3009 2023-06-26 lh '(denote-modules-global-mode t)
340 9317da59 2023-10-12 lh '(desktop-save-mode t)
341 dfd5f15f 2022-04-25 lh '(dired-dwim-target 'dired-dwim-target-next)
342 72c676ac 2022-04-08 lh '(dired-kill-when-opening-new-dired-buffer t)
343 596a2ad4 2023-06-26 lh '(dired-mode-hook '(all-the-icons-dired-mode))
344 0850c867 2024-02-21 lh '(display-buffer-alist
345 0850c867 2024-02-21 lh '(("\\\\*sly-db for"
346 0850c867 2024-02-21 lh (display-buffer-reuse-window display-buffer-below-selected)
347 c4793b1b 2025-08-31 lh (dedicated . t) (window-height . 0.3))
348 0850c867 2024-02-21 lh ("\\\\*Async Shell Command\\\\*" display-buffer-no-window)))
349 38d72eab 2022-06-04 lh '(ediff-split-window-function 'split-window-horizontally)
350 68a1d5ba 2023-11-17 lh '(ediff-window-setup-function 'ediff-setup-windows-plain)
351 6b318ffa 2022-07-17 lh '(editorconfig-mode t)
352 f5a27d61 2022-07-11 lh '(elfeed-tube-auto-save-p t)
353 9d2857fd 2022-04-08 lh '(fido-mode t)
354 9d2857fd 2022-04-08 lh '(fido-vertical-mode t)
355 c5e7b69b 2024-02-21 lh '(focus-follows-mouse t)
356 c2119632 2021-12-11 lh '(frame-resize-pixelwise t)
357 4f974076 2022-04-10 lh '(global-aggressive-indent-mode t)
358 98be3e8c 2023-05-12 lh '(global-auto-revert-mode t)
359 b3df86b7 2024-04-06 lh '(global-corfu-mode t)
360 ce33ac2b 2023-11-17 lh '(global-diff-hl-mode t)
361 069a4dbd 2023-05-12 lh '(help-window-select t)
362 596a2ad4 2023-06-26 lh '(ibuffer-mode-hook '(all-the-icons-ibuffer-mode))
363 c4793b1b 2025-08-31 lh '(ignored-local-variable-values '((Package . SIMPLE-DATE) (sly-load-failed-fasl . ask)))
364 458b2933 2021-12-11 lh '(indent-tabs-mode nil)
365 08f27b49 2023-10-12 lh '(inferior-lisp-program "sbcl")
366 458b2933 2021-12-11 lh '(kept-new-versions 10)
367 458b2933 2021-12-11 lh '(kept-old-versions 5)
368 4a2b1b6c 2022-05-16 lh '(lh/global-resurrect-mode t)
369 4f974076 2022-04-10 lh '(marginalia-mode t)
370 c5e7b69b 2024-02-21 lh '(mouse-autoselect-window 0.2)
371 458b2933 2021-12-11 lh '(mouse-wheel-progressive-speed nil)
372 ef158560 2022-04-08 lh '(mouse-wheel-scroll-amount '(5 ((shift) . hscroll) ((meta)) ((control) . text-scale)))
373 cd974813 2023-11-25 lh '(notmuch-archive-tags '("-inbox" "-unread"))
374 2636d974 2023-01-16 lh '(org-agenda-custom-commands
375 c4793b1b 2025-08-31 lh '(("n" "Agenda and all TODOs" ((agenda "" nil) (alltodo "" nil)) nil)
376 2636d974 2023-01-16 lh ("g" "GTD View"
377 2636d974 2023-01-16 lh ((agenda "" nil)
378 2636d974 2023-01-16 lh (tags-todo "+aktion+TODO=\"NEXT\""
379 2636d974 2023-01-16 lh ((org-agenda-overriding-header "Nächste Aktionen:")))
380 2636d974 2023-01-16 lh (tags "projekt"
381 2636d974 2023-01-16 lh ((org-agenda-overriding-header "Projekte:")
382 c4793b1b 2025-08-31 lh (org-agenda-skip-function
383 c4793b1b 2025-08-31 lh 'lh/org-capture-skip-below-toplevel)))
384 2636d974 2023-01-16 lh (tags-todo "WAITING"
385 2636d974 2023-01-16 lh ((org-agenda-overriding-header "Warten auf:"))))
386 2636d974 2023-01-16 lh nil nil)))
387 2636d974 2023-01-16 lh '(org-agenda-loop-over-headlines-in-active-region nil)
388 e15ae6c2 2024-04-09 lh '(org-babel-load-languages '((awk . t) (lisp . t) (shell . t) (emacs-lisp . t)))
389 a7f45126 2023-05-12 lh '(org-html-validation-link "")
390 59937cae 2022-01-11 lh '(org-log-done 'time)
391 59937cae 2022-01-11 lh '(org-log-done-with-time t)
392 2636d974 2023-01-16 lh '(org-refile-use-outline-path 'file)
393 458b2933 2021-12-11 lh '(org-src-window-setup 'other-window)
394 d14a2a71 2022-07-08 lh '(org-startup-folded t)
395 458b2933 2021-12-11 lh '(org-startup-indented t)
396 afcb9be9 2022-02-01 lh '(org-startup-truncated nil)
397 1e33d20d 2023-05-12 lh '(package-archive-priorities
398 c4793b1b 2025-08-31 lh '(("gnu" . 3) ("nongnu" . 2) ("melpa-stable" . 1) ("melpa" . 0)))
399 458b2933 2021-12-11 lh '(package-archives
400 458b2933 2021-12-11 lh '(("gnu" . "https://elpa.gnu.org/packages/")
401 458b2933 2021-12-11 lh ("nongnu" . "https://elpa.nongnu.org/nongnu/")
402 458b2933 2021-12-11 lh ("melpa-stable" . "https://stable.melpa.org/packages/")
403 458b2933 2021-12-11 lh ("melpa" . "https://melpa.org/packages/")))
404 ba24e273 2023-11-17 lh '(package-pinned-packages '((sly . "melpa")))
405 458b2933 2021-12-11 lh '(package-selected-packages
406 c4793b1b 2025-08-31 lh '(ace-window aggressive-indent all-the-icons-completion
407 c4793b1b 2025-08-31 lh all-the-icons-dired all-the-icons-ibuffer
408 c4793b1b 2025-08-31 lh atomic-chrome consult consult-eglot corfu deadgrep
409 c4793b1b 2025-08-31 lh denote denote-menu denote-refs diff-hl diminish
410 c4793b1b 2025-08-31 lh editorconfig eglot elfeed elfeed-tube elfeed-tube-mpv
411 c4793b1b 2025-08-31 lh embark embark-consult expand-region go-mode
412 c4793b1b 2025-08-31 lh graphviz-dot-mode helpful highlight-function-calls
413 c4793b1b 2025-08-31 lh imenu-list jq-mode json-mode lexic lua-mode magit
414 c4793b1b 2025-08-31 lh marginalia modus-themes nhexl-mode notmuch nov
415 c4793b1b 2025-08-31 lh ob-powershell ob-restclient org org-contrib ox-epub
416 c4793b1b 2025-08-31 lh paredit paredit-menu pdf-tools powershell prism
417 c4793b1b 2025-08-31 lh project restclient restclient-jq sly sly-macrostep
418 c4793b1b 2025-08-31 lh sly-named-readtables substitute uuidgen web-mode
419 c4793b1b 2025-08-31 lh which-key yaml-mode))
420 2812bb01 2022-03-31 lh '(pixel-scroll-precision-mode t)
421 1903acd6 2023-11-25 lh '(prism-parens t)
422 3e06b6d0 2021-12-27 lh '(read-buffer-completion-ignore-case t)
423 3e06b6d0 2021-12-27 lh '(read-file-name-completion-ignore-case t)
424 458b2933 2021-12-11 lh '(reb-re-syntax 'string)
425 fab961d7 2023-05-12 lh '(recentf-max-saved-items 200)
426 fab961d7 2023-05-12 lh '(recentf-mode t)
427 a4213e78 2023-02-12 lh '(repeat-mode t)
428 458b2933 2021-12-11 lh '(ring-bell-function 'ignore)
429 bba2ab69 2025-04-12 lh '(safe-local-variable-values
430 bba2ab69 2025-04-12 lh '((Syntax . ANSI-Common-Lisp) (Package . POSTMODERN) (Base . 10)
431 bba2ab69 2025-04-12 lh (Syntax . Ansi-Common-Lisp)))
432 663564b6 2022-04-25 lh '(save-place-mode t)
433 2fec3477 2023-05-12 lh '(savehist-mode t)
434 952c767e 2021-12-27 lh '(scroll-conservatively 100)
435 5c4d9ca3 2022-04-03 lh '(tab-always-indent 'complete)
436 80d5c874 2022-04-08 lh '(use-short-answers t)
437 4f974076 2022-04-10 lh '(warning-suppress-types '((comp)))
438 4f974076 2022-04-10 lh '(which-key-mode t))
439 458b2933 2021-12-11 lh (custom-set-faces
440 458b2933 2021-12-11 lh ;; custom-set-faces was added by Custom.
441 458b2933 2021-12-11 lh ;; If you edit it by hand, you could mess it up, so be careful.
442 458b2933 2021-12-11 lh ;; Your init file should contain only one such instance.
443 458b2933 2021-12-11 lh ;; If there is more than one, they won't work right.
444 5e2d5101 2023-11-25 lh '(default ((t (:family "Go Mono"))))
445 458b2933 2021-12-11 lh '(variable-pitch ((t (:family "IBM Plex Serif")))))
446 458b2933 2021-12-11 lh
447 458b2933 2021-12-11 lh ;; This is the place where I override all customize stuff
448 458b2933 2021-12-11 lh
449 2d19c538 2023-12-28 lh (with-eval-after-load 'prism
450 2d19c538 2023-12-28 lh (prism-set-colors
451 2d19c538 2023-12-28 lh :desaturations '(0)
452 2d19c538 2023-12-28 lh :lightens '(0)
453 2d19c538 2023-12-28 lh :colors (modus-themes-with-colors
454 2d19c538 2023-12-28 lh (list fg-main
455 2d19c538 2023-12-28 lh magenta
456 2d19c538 2023-12-28 lh cyan-cooler
457 2d19c538 2023-12-28 lh magenta-cooler
458 2d19c538 2023-12-28 lh blue
459 2d19c538 2023-12-28 lh magenta-warmer
460 2d19c538 2023-12-28 lh cyan-warmer
461 2d19c538 2023-12-28 lh red-cooler
462 2d19c538 2023-12-28 lh green
463 2d19c538 2023-12-28 lh fg-main
464 2d19c538 2023-12-28 lh cyan
465 2d19c538 2023-12-28 lh yellow
466 2d19c538 2023-12-28 lh blue-warmer
467 2d19c538 2023-12-28 lh red-warmer
468 2d19c538 2023-12-28 lh green-cooler
469 2d19c538 2023-12-28 lh yellow-faint))))
470 1903acd6 2023-11-25 lh
471 458b2933 2021-12-11 lh (let ((feeds (expand-file-name "feeds.el" user-emacs-directory)))
472 458b2933 2021-12-11 lh (when (file-exists-p feeds)
473 458b2933 2021-12-11 lh (load feeds)))
474 458b2933 2021-12-11 lh
475 458b2933 2021-12-11 lh (customize-set-value
476 458b2933 2021-12-11 lh 'elfeed-db-directory
477 458b2933 2021-12-11 lh (let ((data-dir (expand-file-name "elfeed" lh/dir-data-home)))
478 458b2933 2021-12-11 lh (unless (file-exists-p data-dir)
479 458b2933 2021-12-11 lh (make-directory data-dir))
480 458b2933 2021-12-11 lh data-dir))
481 458b2933 2021-12-11 lh
482 458b2933 2021-12-11 lh (customize-set-value
483 c7f3a3ef 2023-01-21 lh 'backup-directory-alist
484 458b2933 2021-12-11 lh (let ((backup-dir (concat user-emacs-directory "backup")))
485 458b2933 2021-12-11 lh (unless (file-exists-p backup-dir)
486 458b2933 2021-12-11 lh (make-directory backup-dir t))
487 458b2933 2021-12-11 lh `(("." . ,backup-dir))))
488 458b2933 2021-12-11 lh
489 1066c18e 2022-03-11 lh (let* ((dir (expand-file-name "org" lh/dir-documents))
490 445bbf7d 2025-08-31 lh (notes-dir (expand-file-name "notes" dir)))
491 458b2933 2021-12-11 lh (unless (file-exists-p dir)
492 458b2933 2021-12-11 lh (make-directory dir t))
493 445bbf7d 2025-08-31 lh (unless (file-exists-p notes-dir)
494 445bbf7d 2025-08-31 lh (make-directory notes-dir t))
495 445bbf7d 2025-08-31 lh (setopt org-directory dir
496 445bbf7d 2025-08-31 lh org-agenda-files (list dir)
497 445bbf7d 2025-08-31 lh denote-directory notes-dir
498 445bbf7d 2025-08-31 lh org-capture-templates `(("i" "Inbox" entry
499 445bbf7d 2025-08-31 lh (file ,(expand-file-name "inbox.org" dir))
500 445bbf7d 2025-08-31 lh "* %?"))))
501 458b2933 2021-12-11 lh
502 5ae00164 2023-11-17 lh (customize-set-value
503 5ae00164 2023-11-17 lh 'dired-guess-shell-alist-user
504 5ae00164 2023-11-17 lh (cond
505 5ae00164 2023-11-17 lh ((eq system-type 'gnu/linux)
506 5ae00164 2023-11-17 lh `((,(rx "." (or "png" "jpg" (seq "jp" (? "e") "g"))) "pqiv")
507 5ae00164 2023-11-17 lh (,(rx "." (or "mkv" "mp4" "webm" "ogv" "avi")) "mpv")
508 5ae00164 2023-11-17 lh (,(rx "." (or "flac" "ogg" "mp3" "wav")) "mpv --force-window")))
509 5ae00164 2023-11-17 lh (t nil)))
510 5ae00164 2023-11-17 lh
511 4f974076 2022-04-10 lh (diminish 'which-key-mode)
512 4f974076 2022-04-10 lh (diminish 'aggressive-indent-mode)
513 6b318ffa 2022-07-17 lh (diminish 'editorconfig-mode)
514 4f974076 2022-04-10 lh
515 d4529ec2 2022-07-21 lh (let ((path (expand-file-name "private.el" user-emacs-directory)))
516 d4529ec2 2022-07-21 lh (when (file-exists-p path)
517 d4529ec2 2022-07-21 lh (load path)))
518 2a3a3de5 2022-07-30 lh
519 2a3a3de5 2022-07-30 lh (pdf-loader-install)
520 d4529ec2 2022-07-21 lh
521 458b2933 2021-12-11 lh (server-start)
522 7fdb3009 2023-06-26 lh (put 'narrow-to-region 'disabled nil)