diff options
-rw-r--r-- | init.el | 448 |
1 files changed, 225 insertions, 223 deletions
diff --git a/init.el b/init.el index 8e82408..9ed10a6 100644 --- a/init.el +++ b/init.el | |||
@@ -13,12 +13,14 @@ | |||
13 | ;; Everyone is permitted to do whatever with this software, without | 13 | ;; Everyone is permitted to do whatever with this software, without |
14 | ;; limitation. This software comes without any warranty whatsoever, | 14 | ;; limitation. This software comes without any warranty whatsoever, |
15 | ;; but with two pieces of advice: | 15 | ;; but with two pieces of advice: |
16 | ;; - Don't hurt yourself. | 16 | ;; - Be kind to yourself. |
17 | ;; - Make good choices. | 17 | ;; - Make good choices. |
18 | 18 | ||
19 | ;;; Code: | 19 | ;;; Commentary: |
20 | |||
21 | ;; Some of the names in these `setup' forms are arbitrary. | ||
20 | 22 | ||
21 | ;; NOTE that some of the names in `setup' forms are arbitrary. | 23 | ;;; Code: |
22 | 24 | ||
23 | (setup (:require auth-source) | 25 | (setup (:require auth-source) |
24 | (:option auth-sources (list (acdw/sync-dir "authinfo") | 26 | (:option auth-sources (list (acdw/sync-dir "authinfo") |
@@ -92,26 +94,25 @@ In short, DO NOT USE THIS FUNCTION!!!" | |||
92 | (save-excursion | 94 | (save-excursion |
93 | (sort-sexps | 95 | (sort-sexps |
94 | (point-min) (point-max) | 96 | (point-min) (point-max) |
95 | (lambda (sexp) | 97 | ;; Key function |
96 | (format "%S" (cadr sexp))) | 98 | nil |
99 | ;; Sort function | ||
97 | (lambda (s1 s2) ; oh god, this is worse. | 100 | (lambda (s1 s2) ; oh god, this is worse. |
98 | (let* ((s1 (cdr s1)) (s2 (cdr s2)) ; for the strings themselves | 101 | (let* ((s1 (cdr s1)) (s2 (cdr s2)) ; for the strings themselves |
99 | (s1-require (string-match ":require" s1)) | 102 | (require-regexp (rx bos (* nonl) ":require")) |
100 | (s2-require (string-match ":require" s2)) | 103 | (straight-regexp (rx bos (* nonl) ":straight")) |
101 | (s1-straight (string-match ":straight" s1)) | 104 | (s1-require (string-match require-regexp s1)) |
102 | (s2-straight (string-match ":straight" s2)) | 105 | (s2-require (string-match require-regexp s2)) |
106 | (s1-straight (string-match straight-regexp s1)) | ||
107 | (s2-straight (string-match straight-regexp s2)) | ||
103 | (s1-bare (not (or s1-require s1-straight))) | 108 | (s1-bare (not (or s1-require s1-straight))) |
104 | (s2-bare (not (or s2-require s2-straight)))) | 109 | (s2-bare (not (or s2-require s2-straight)))) |
105 | (cond | 110 | (cond |
106 | ;; if both are the same, sort regular style | 111 | ;; Straight forms require some weirdness |
107 | ((or (and s1-require s2-require) | ||
108 | (and s1-bare s2-bare)) | ||
109 | (string< s1 s2)) | ||
110 | ((and s1-straight s2-straight) | 112 | ((and s1-straight s2-straight) |
111 | (let* ((r (rx ":straight" (? "-if") (* space) (? "("))) | 113 | (let* ((r (rx ":straight" (? "-if") (* space) (? "("))) |
112 | (s1 (replace-regexp-in-string r "" s1)) | 114 | (s1 (replace-regexp-in-string r "" s1)) |
113 | (s2 (replace-regexp-in-string r "" s2))) | 115 | (s2 (replace-regexp-in-string r "" s2))) |
114 | (message "'%S' '%S'" s1 s2) | ||
115 | (string< s1 s2))) | 116 | (string< s1 s2))) |
116 | ;; requires should go first | 117 | ;; requires should go first |
117 | ((and s1-require (not s2-require)) t) | 118 | ((and s1-require (not s2-require)) t) |
@@ -195,142 +196,6 @@ In short, DO NOT USE THIS FUNCTION!!!" | |||
195 | (setup calendar | 196 | (setup calendar |
196 | (:option calendar-week-start-day 1)) | 197 | (:option calendar-week-start-day 1)) |
197 | 198 | ||
198 | (setup (:straight circe) | ||
199 | (require 'circe) | ||
200 | (require 'acdw-irc) | ||
201 | |||
202 | (:option acdw-irc/left-margin 20 | ||
203 | acdw-irc/post-my-nick "-> " | ||
204 | circe-channel-killed-confirmation nil | ||
205 | circe-color-nicks-everywhere t | ||
206 | circe-default-nick "acdw" | ||
207 | circe-default-part-message "See You, Space Cowpokes . . ." | ||
208 | circe-default-user "acdw" | ||
209 | circe-format-action (format | ||
210 | (format "%%%ds* {nick} {body}" | ||
211 | (- acdw-irc/left-margin 2)) " ") | ||
212 | circe-format-say (format | ||
213 | "{nick:%1$d.%1$ds} | {body}" | ||
214 | (- acdw-irc/left-margin 3)) | ||
215 | circe-format-self-action circe-format-action | ||
216 | circe-format-self-say (format | ||
217 | "{nick:%1$d.%1$ds} > {body}" | ||
218 | (- acdw-irc/left-margin 3)) | ||
219 | circe-network-options | ||
220 | `(("Libera Chat" | ||
221 | :channels ("#emacs" "#systemcrafters" "##webpals") | ||
222 | :sasl-username ,circe-default-nick | ||
223 | :sasl-password ,(acdw/make-password-fetcher | ||
224 | :host "libera.chat")) | ||
225 | ("Tilde Chat" :host "irc.tilde.chat" :port 6697 :use-tls t | ||
226 | :channels ("#meta" "#bread" "#dadjokes" "#team" | ||
227 | "#emacs" "#nsfw") | ||
228 | :sasl-username ,circe-default-nick | ||
229 | :sasl-password ,(acdw/make-password-fetcher | ||
230 | :host "tilde.chat")) | ||
231 | ("Casa" :host "m455.casa" :port 6697 :use-tls t | ||
232 | :channels ("#basement") | ||
233 | :sasl-username ,circe-default-nick | ||
234 | :sasl-password ,(acdw/make-password-fetcher | ||
235 | :host "m455.casa")) | ||
236 | ("Pissnet" :host "piss.hmm.st" :port 6697 :use-tls t | ||
237 | :channels ("#i-just-peed") | ||
238 | :sasl-username ,circe-default-nick | ||
239 | :sasl-password ,(acdw/make-password-fetcher | ||
240 | :host "piss.hmm.st")) | ||
241 | ;; TODO: irc.chat.twitch.tv | ||
242 | ) | ||
243 | circe-reduce-lurker-spam t | ||
244 | circe-server-auto-join-default-type :after-auth | ||
245 | circe-server-buffer-action (lambda (buf) | ||
246 | (message "Connected to %s" buf))) | ||
247 | |||
248 | (with-eval-after-load 'circe | ||
249 | (:face circe-nick-highlight-face | ||
250 | ((t (:inherit (modus-themes-hl-line modus-themes-bold)))) | ||
251 | circe-my-message-face | ||
252 | ((t (:inherit (modus-themes-slant)))))) | ||
253 | |||
254 | (:bind "C-c C-p" #'circe-command-PART | ||
255 | "C-l" #'lui-track-jump-to-indicator) | ||
256 | |||
257 | (:advise circe-command-PART :after | ||
258 | (defun circe-part@kill-buffer (&rest _) | ||
259 | (let ((circe-channel-killed-confirmation nil)) | ||
260 | (kill-buffer))) | ||
261 | |||
262 | circe-command-QUIT :after | ||
263 | (defun circe-quit@kill-buffer (&rest _) | ||
264 | ;; `circe-server-killed-confirmation' set to nil, and manually | ||
265 | ;; deleting all chat buffers, pending Github issue #402 | ||
266 | ;; (https://github.com/emacs-circe/circe/issues/402) | ||
267 | (let ((circe-server-killed-confirmation nil)) | ||
268 | (with-circe-server-buffer | ||
269 | (dolist (buf (circe-server-chat-buffers)) | ||
270 | (let ((circe-channel-killed-confirmation nil)) | ||
271 | (kill-buffer buf))) | ||
272 | (kill-buffer)))) | ||
273 | |||
274 | circe-command-GQUIT :after | ||
275 | (defun circe-gquit@kill-buffer (&rest _) | ||
276 | ;; `circe-server-killed-confirmation' set to nil, and manually | ||
277 | ;; deleting all chat buffers, pending Github issue #402 | ||
278 | ;; (https://github.com/emacs-circe/circe/issues/402) | ||
279 | (let ((circe-server-killed-confirmation nil)) | ||
280 | (dolist (buf (circe-server-buffers)) | ||
281 | (with-current-buffer buf | ||
282 | (dolist (buf (circe-server-chat-buffers)) | ||
283 | (let ((circe-channel-killed-confirmation nil)) | ||
284 | (kill-buffer buf)) | ||
285 | (cancel-timer 'irc-send--queue)) | ||
286 | (message "%s: %s" buf circe-server-killed-confirmation) | ||
287 | (kill-buffer)))))) | ||
288 | |||
289 | (defun circe-command-SHORTEN (url) | ||
290 | "Shorten URL using `0x0-shorten-uri'." | ||
291 | (interactive "sURL to shorten: ") | ||
292 | ;; TODO: enable /shorten URL comment syntax | ||
293 | (let ((short-url (0x0-shorten-uri (0x0--choose-server) url))) | ||
294 | (circe-command-SAY short-url))) | ||
295 | |||
296 | (:with-mode circe-chat-mode | ||
297 | (:hook #'acdw/stop-paren-annoyances | ||
298 | #'enable-circe-color-nicks | ||
299 | #'enable-circe-display-images | ||
300 | #'enable-circe-new-day-notifier | ||
301 | (defun circe-chat@set-prompt () | ||
302 | (lui-set-prompt | ||
303 | (concat | ||
304 | (propertize | ||
305 | (acdw-irc/margin-format (buffer-name) "" ">") | ||
306 | 'face 'circe-prompt-face | ||
307 | 'read-only t | ||
308 | 'intangible t | ||
309 | 'cursor-intangible t) | ||
310 | " "))))) | ||
311 | |||
312 | (autoload 'circe-nick-color-reset "circe-color-nicks") | ||
313 | (add-hook 'modus-themes-after-load-theme-hook | ||
314 | #'circe-nick-color-reset) | ||
315 | |||
316 | (:with-mode lui-mode | ||
317 | (:option lui-fill-column (+ fill-column acdw-irc/left-margin) | ||
318 | lui-fill-type (repeat-string acdw-irc/left-margin " ") | ||
319 | lui-time-stamp-position 'right-margin | ||
320 | lui-time-stamp-format "%H:%M" | ||
321 | lui-track-behavior 'before-switch-to-buffer | ||
322 | lui-track-indicator 'fringe | ||
323 | lui-fill-remove-face-from-newline nil) | ||
324 | |||
325 | (:local-set fringes-outside-margins t | ||
326 | right-margin-width 5 | ||
327 | scroll-margin 0 | ||
328 | word-wrap t | ||
329 | wrap-prefix (repeat-string acdw-irc/left-margin " ") | ||
330 | line-number-mode nil) | ||
331 | |||
332 | (:hook #'enable-lui-track))) | ||
333 | |||
334 | (setup completion | 199 | (setup completion |
335 | (:option completion-ignore-case t | 200 | (:option completion-ignore-case t |
336 | read-buffer-completion-ignore-case t | 201 | read-buffer-completion-ignore-case t |
@@ -341,6 +206,9 @@ In short, DO NOT USE THIS FUNCTION!!!" | |||
341 | 206 | ||
342 | (:global "M-/" #'hippie-expand)) | 207 | (:global "M-/" #'hippie-expand)) |
343 | 208 | ||
209 | (setup css-mode | ||
210 | (:bind "C-c C-h" #'css-lookup-symbol)) | ||
211 | |||
344 | (setup cursor | 212 | (setup cursor |
345 | (:option cursor-type 'bar | 213 | (:option cursor-type 'bar |
346 | cursor-in-non-selected-windows 'hollow | 214 | cursor-in-non-selected-windows 'hollow |
@@ -446,24 +314,6 @@ In short, DO NOT USE THIS FUNCTION!!!" | |||
446 | ;; https://oremacs.com/2015/01/17/setting-up-ediff/ | 314 | ;; https://oremacs.com/2015/01/17/setting-up-ediff/ |
447 | (add-hook 'ediff-after-quit-hook-internal #'winner-undo)) | 315 | (add-hook 'ediff-after-quit-hook-internal #'winner-undo)) |
448 | 316 | ||
449 | ;; requires extension: | ||
450 | ;; https://addons.mozilla.org/en-US/firefox/addon/edit-with-emacs1/ | ||
451 | (setup (:straight edit-server) | ||
452 | (:require edit-server) | ||
453 | (edit-server-start) | ||
454 | |||
455 | (:option edit-server-default-major-mode 'text-mode | ||
456 | edit-server-url-major-mode-alist | ||
457 | (list (cons (rx (| "reddit.com" | ||
458 | "tildes.net")) | ||
459 | 'markdown-mode) | ||
460 | (cons (rx "github.com") | ||
461 | 'gfm-mode))) | ||
462 | |||
463 | (:advise edit-server-make-frame :before | ||
464 | (defun edit-server@set-a-variable (&rest _) | ||
465 | (setq-local edit-server-frame-p t)))) | ||
466 | |||
467 | (setup eldoc | 317 | (setup eldoc |
468 | (:option eldoc-idle-delay 0.1 | 318 | (:option eldoc-idle-delay 0.1 |
469 | eldoc-echo-area-use-multiline-p nil)) | 319 | eldoc-echo-area-use-multiline-p nil)) |
@@ -881,6 +731,24 @@ specific to most general, they are these: | |||
881 | ;; (put 'backward-page 'repeat-map 'page-navigation-repeat-map) | 731 | ;; (put 'backward-page 'repeat-map 'page-navigation-repeat-map) |
882 | ) | 732 | ) |
883 | 733 | ||
734 | (setup prog | ||
735 | (:option show-paren-delay 0 | ||
736 | show-paren-style 'mixed | ||
737 | show-paren-when-point-inside-paren t | ||
738 | show-paren-when-point-in-periphery t | ||
739 | smie-indent-basic tab-width) | ||
740 | |||
741 | (:hook show-paren-mode | ||
742 | electric-pair-local-mode | ||
743 | acdw/setup-fringes | ||
744 | |||
745 | (defun prog-mode@auto-fill () | ||
746 | (setq-local comment-auto-fill-only-comments t) | ||
747 | (turn-on-auto-fill))) | ||
748 | |||
749 | (add-hook 'after-save-hook | ||
750 | #'executable-make-buffer-file-executable-if-script-p)) | ||
751 | |||
884 | (setup repeat | 752 | (setup repeat |
885 | ;; new for Emacs 28! | 753 | ;; new for Emacs 28! |
886 | (:only-if (fboundp #'repeat-mode)) | 754 | (:only-if (fboundp #'repeat-mode)) |
@@ -1146,6 +1014,142 @@ specific to most general, they are these: | |||
1146 | (:with-feature isearch | 1014 | (:with-feature isearch |
1147 | (:bind "C-'" #'avy-isearch))) | 1015 | (:bind "C-'" #'avy-isearch))) |
1148 | 1016 | ||
1017 | (setup (:straight circe) | ||
1018 | (require 'circe) | ||
1019 | (require 'acdw-irc) | ||
1020 | |||
1021 | (:option acdw-irc/left-margin 20 | ||
1022 | acdw-irc/post-my-nick "-> " | ||
1023 | circe-channel-killed-confirmation nil | ||
1024 | circe-color-nicks-everywhere t | ||
1025 | circe-default-nick "acdw" | ||
1026 | circe-default-part-message "See You, Space Cowpokes . . ." | ||
1027 | circe-default-user "acdw" | ||
1028 | circe-format-action (format | ||
1029 | (format "%%%ds* {nick} {body}" | ||
1030 | (- acdw-irc/left-margin 2)) " ") | ||
1031 | circe-format-say (format | ||
1032 | "{nick:%1$d.%1$ds} | {body}" | ||
1033 | (- acdw-irc/left-margin 3)) | ||
1034 | circe-format-self-action circe-format-action | ||
1035 | circe-format-self-say (format | ||
1036 | "{nick:%1$d.%1$ds} > {body}" | ||
1037 | (- acdw-irc/left-margin 3)) | ||
1038 | circe-network-options | ||
1039 | `(("Libera Chat" | ||
1040 | :channels ("#emacs" "#systemcrafters" "##webpals") | ||
1041 | :sasl-username ,circe-default-nick | ||
1042 | :sasl-password ,(acdw/make-password-fetcher | ||
1043 | :host "libera.chat")) | ||
1044 | ("Tilde Chat" :host "irc.tilde.chat" :port 6697 :use-tls t | ||
1045 | :channels ("#meta" "#bread" "#dadjokes" "#team" | ||
1046 | "#emacs" "#nsfw") | ||
1047 | :sasl-username ,circe-default-nick | ||
1048 | :sasl-password ,(acdw/make-password-fetcher | ||
1049 | :host "tilde.chat")) | ||
1050 | ("Casa" :host "m455.casa" :port 6697 :use-tls t | ||
1051 | :channels ("#basement") | ||
1052 | :sasl-username ,circe-default-nick | ||
1053 | :sasl-password ,(acdw/make-password-fetcher | ||
1054 | :host "m455.casa")) | ||
1055 | ("Pissnet" :host "piss.hmm.st" :port 6697 :use-tls t | ||
1056 | :channels ("#i-just-peed") | ||
1057 | :sasl-username ,circe-default-nick | ||
1058 | :sasl-password ,(acdw/make-password-fetcher | ||
1059 | :host "piss.hmm.st")) | ||
1060 | ;; TODO: irc.chat.twitch.tv | ||
1061 | ) | ||
1062 | circe-reduce-lurker-spam t | ||
1063 | circe-server-auto-join-default-type :after-auth | ||
1064 | circe-server-buffer-action (lambda (buf) | ||
1065 | (message "Connected to %s" buf))) | ||
1066 | |||
1067 | (with-eval-after-load 'circe | ||
1068 | (:face circe-nick-highlight-face | ||
1069 | ((t (:inherit (modus-themes-hl-line modus-themes-bold)))) | ||
1070 | circe-my-message-face | ||
1071 | ((t (:inherit (modus-themes-slant)))))) | ||
1072 | |||
1073 | (:bind "C-c C-p" #'circe-command-PART | ||
1074 | "C-l" #'lui-track-jump-to-indicator) | ||
1075 | |||
1076 | (:advise circe-command-PART :after | ||
1077 | (defun circe-part@kill-buffer (&rest _) | ||
1078 | (let ((circe-channel-killed-confirmation nil)) | ||
1079 | (kill-buffer))) | ||
1080 | |||
1081 | circe-command-QUIT :after | ||
1082 | (defun circe-quit@kill-buffer (&rest _) | ||
1083 | ;; `circe-server-killed-confirmation' set to nil, and manually | ||
1084 | ;; deleting all chat buffers, pending Github issue #402 | ||
1085 | ;; (https://github.com/emacs-circe/circe/issues/402) | ||
1086 | (let ((circe-server-killed-confirmation nil)) | ||
1087 | (with-circe-server-buffer | ||
1088 | (dolist (buf (circe-server-chat-buffers)) | ||
1089 | (let ((circe-channel-killed-confirmation nil)) | ||
1090 | (kill-buffer buf))) | ||
1091 | (kill-buffer)))) | ||
1092 | |||
1093 | circe-command-GQUIT :after | ||
1094 | (defun circe-gquit@kill-buffer (&rest _) | ||
1095 | ;; `circe-server-killed-confirmation' set to nil, and manually | ||
1096 | ;; deleting all chat buffers, pending Github issue #402 | ||
1097 | ;; (https://github.com/emacs-circe/circe/issues/402) | ||
1098 | (let ((circe-server-killed-confirmation nil)) | ||
1099 | (dolist (buf (circe-server-buffers)) | ||
1100 | (with-current-buffer buf | ||
1101 | (dolist (buf (circe-server-chat-buffers)) | ||
1102 | (let ((circe-channel-killed-confirmation nil)) | ||
1103 | (kill-buffer buf)) | ||
1104 | (cancel-timer 'irc-send--queue)) | ||
1105 | (message "%s: %s" buf circe-server-killed-confirmation) | ||
1106 | (kill-buffer)))))) | ||
1107 | |||
1108 | (defun circe-command-SHORTEN (url) | ||
1109 | "Shorten URL using `0x0-shorten-uri'." | ||
1110 | (interactive "sURL to shorten: ") | ||
1111 | ;; TODO: enable /shorten URL comment syntax | ||
1112 | (let ((short-url (0x0-shorten-uri (0x0--choose-server) url))) | ||
1113 | (circe-command-SAY short-url))) | ||
1114 | |||
1115 | (:with-mode circe-chat-mode | ||
1116 | (:hook #'acdw/stop-paren-annoyances | ||
1117 | #'enable-circe-color-nicks | ||
1118 | #'enable-circe-display-images | ||
1119 | #'enable-circe-new-day-notifier | ||
1120 | (defun circe-chat@set-prompt () | ||
1121 | (lui-set-prompt | ||
1122 | (concat | ||
1123 | (propertize | ||
1124 | (acdw-irc/margin-format (buffer-name) "" ">") | ||
1125 | 'face 'circe-prompt-face | ||
1126 | 'read-only t | ||
1127 | 'intangible t | ||
1128 | 'cursor-intangible t) | ||
1129 | " "))))) | ||
1130 | |||
1131 | (autoload 'circe-nick-color-reset "circe-color-nicks") | ||
1132 | (add-hook 'modus-themes-after-load-theme-hook | ||
1133 | #'circe-nick-color-reset) | ||
1134 | |||
1135 | (:with-mode lui-mode | ||
1136 | (:option lui-fill-column (+ fill-column acdw-irc/left-margin) | ||
1137 | lui-fill-type (repeat-string acdw-irc/left-margin " ") | ||
1138 | lui-time-stamp-position 'right-margin | ||
1139 | lui-time-stamp-format "%H:%M" | ||
1140 | lui-track-behavior 'before-switch-to-buffer | ||
1141 | lui-track-indicator 'fringe | ||
1142 | lui-fill-remove-face-from-newline nil) | ||
1143 | |||
1144 | (:local-set fringes-outside-margins t | ||
1145 | right-margin-width 5 | ||
1146 | scroll-margin 0 | ||
1147 | word-wrap t | ||
1148 | wrap-prefix (repeat-string acdw-irc/left-margin " ") | ||
1149 | line-number-mode nil) | ||
1150 | |||
1151 | (:hook #'enable-lui-track))) | ||
1152 | |||
1149 | (setup (:straight (consult | 1153 | (setup (:straight (consult |
1150 | :host github | 1154 | :host github |
1151 | :repo "minad/consult")) | 1155 | :repo "minad/consult")) |
@@ -1288,8 +1292,49 @@ specific to most general, they are these: | |||
1288 | ("/" winner-undo | 1292 | ("/" winner-undo |
1289 | "?" winner-redo))) | 1293 | "?" winner-redo))) |
1290 | 1294 | ||
1295 | (setup (:straight dictionary) | ||
1296 | (:option dictionary-use-single-buffer t) | ||
1297 | |||
1298 | (autoload 'dictionary-search "dictionary" | ||
1299 | "Ask for a word and search it in all dictionaries" t) | ||
1300 | (autoload 'dictionary-match-words "dictionary" | ||
1301 | "Ask for a word and search all matching words in the dictionaries" t) | ||
1302 | (autoload 'dictionary-lookup-definition "dictionary" | ||
1303 | "Unconditionally lookup the word at point." t) | ||
1304 | (autoload 'dictionary "dictionary" | ||
1305 | "Create a new dictionary buffer" t) | ||
1306 | (autoload 'dictionary-mouse-popup-matching-words "dictionary" | ||
1307 | "Display entries matching the word at the cursor" t) | ||
1308 | (autoload 'dictionary-popup-matching-words "dictionary" | ||
1309 | "Display entries matching the word at the point" t) | ||
1310 | (autoload 'dictionary-tooltip-mode "dictionary" | ||
1311 | "Display tooltips for the current word" t) | ||
1312 | (autoload 'global-dictionary-tooltip-mode "dictionary" | ||
1313 | "Enable/disable dictionary-tooltip-mode for all buffers" t) | ||
1314 | |||
1315 | (:with-map lookup-map | ||
1316 | (:bind "d" #'dictionary-search))) | ||
1317 | |||
1291 | (setup (:straight edit-indirect)) | 1318 | (setup (:straight edit-indirect)) |
1292 | 1319 | ||
1320 | ;; requires extension: | ||
1321 | ;; https://addons.mozilla.org/en-US/firefox/addon/edit-with-emacs1/ | ||
1322 | (setup (:straight edit-server) | ||
1323 | (:require edit-server) | ||
1324 | (edit-server-start) | ||
1325 | |||
1326 | (:option edit-server-default-major-mode 'text-mode | ||
1327 | edit-server-url-major-mode-alist | ||
1328 | (list (cons (rx (| "reddit.com" | ||
1329 | "tildes.net")) | ||
1330 | 'markdown-mode) | ||
1331 | (cons (rx "github.com") | ||
1332 | 'gfm-mode))) | ||
1333 | |||
1334 | (:advise edit-server-make-frame :before | ||
1335 | (defun edit-server@set-a-variable (&rest _) | ||
1336 | (setq-local edit-server-frame-p t)))) | ||
1337 | |||
1293 | (setup (:straight (electric-cursor | 1338 | (setup (:straight (electric-cursor |
1294 | :host github | 1339 | :host github |
1295 | :repo "duckwork/electric-cursor")) | 1340 | :repo "duckwork/electric-cursor")) |
@@ -1640,7 +1685,7 @@ browser defined in `browse-url-secondary-browser-function'." | |||
1640 | (define-key lisp-interaction-mode-map (kbd "C-c e") #'macrostep-expand)) | 1685 | (define-key lisp-interaction-mode-map (kbd "C-c e") #'macrostep-expand)) |
1641 | 1686 | ||
1642 | (setup (:straight magit) | 1687 | (setup (:straight magit) |
1643 | (:global "C-c g" #'magit-status) | 1688 | (:global "C-x g" #'magit-status) |
1644 | 1689 | ||
1645 | (:option magit-display-buffer-function | 1690 | (:option magit-display-buffer-function |
1646 | (defun magit-display-buffer-same-window (buffer) | 1691 | (defun magit-display-buffer-same-window (buffer) |
@@ -1957,24 +2002,6 @@ the default is \"/\"." | |||
1957 | (persistent-scratch-mode +1)))) | 2002 | (persistent-scratch-mode +1)))) |
1958 | (buffer-list))) | 2003 | (buffer-list))) |
1959 | 2004 | ||
1960 | (setup prog | ||
1961 | (:option show-paren-delay 0 | ||
1962 | show-paren-style 'mixed | ||
1963 | show-paren-when-point-inside-paren t | ||
1964 | show-paren-when-point-in-periphery t | ||
1965 | smie-indent-basic tab-width) | ||
1966 | |||
1967 | (:hook show-paren-mode | ||
1968 | electric-pair-local-mode | ||
1969 | acdw/setup-fringes | ||
1970 | |||
1971 | (defun prog-mode@auto-fill () | ||
1972 | (setq-local comment-auto-fill-only-comments t) | ||
1973 | (turn-on-auto-fill))) | ||
1974 | |||
1975 | (add-hook 'after-save-hook | ||
1976 | #'executable-make-buffer-file-executable-if-script-p)) | ||
1977 | |||
1978 | (setup (:straight-if pkgbuild-mode | 2005 | (setup (:straight-if pkgbuild-mode |
1979 | (executable-find "makepkg")) | 2006 | (executable-find "makepkg")) |
1980 | (:file-match "PKGBUILD")) | 2007 | (:file-match "PKGBUILD")) |
@@ -1982,19 +2009,17 @@ the default is \"/\"." | |||
1982 | (setup (:straight powerthesaurus) | 2009 | (setup (:straight powerthesaurus) |
1983 | (:global "C-c l t" #'powerthesaurus-lookup-word-dwim)) | 2010 | (:global "C-c l t" #'powerthesaurus-lookup-word-dwim)) |
1984 | 2011 | ||
1985 | 1(setup (:straight restart-emacs) | 2012 | (setup (:straight restart-emacs) |
1986 | (defun emacs-upgrade (&optional update-packages) | 2013 | (defun emacs-upgrade (&optional update-packages) |
1987 | "Pull config, upgrade packages, restart Emacs." | 2014 | "Pull config, upgrade packages, restart Emacs." |
1988 | (interactive "P") | 2015 | (interactive "P") |
1989 | (emacs-git-pull-config) | 2016 | (emacs-git-pull-config) |
1990 | (when update-packages | 2017 | (when update-packages |
1991 | (require 'straight-x) | 2018 | (require 'straight-x) |
1992 | (straight-x-pull-all)) | 2019 | (straight-x-pull-all)) |
1993 | (restart-emacs))) | 2020 | (restart-emacs)))(setup (:straight (shell-command+ |
1994 | 2021 | :host nil | |
1995 | (setup (:straight (shell-command+ | 2022 | :repo "https://git.sr.ht/~pkal/shell-command-plus")) |
1996 | :host nil | ||
1997 | :repo "https://git.sr.ht/~pkal/shell-command-plus")) | ||
1998 | (:option shell-command-prompt "$ ") | 2023 | (:option shell-command-prompt "$ ") |
1999 | (:with-feature dired | 2024 | (:with-feature dired |
2000 | (:bind "M-!" shell-command+)) | 2025 | (:bind "M-!" shell-command+)) |
@@ -2265,27 +2290,4 @@ If used with a numeric prefix argument N, N backticks will be inserted." | |||
2265 | (call-interactively #'zzz-to-char) | 2290 | (call-interactively #'zzz-to-char) |
2266 | (call-interactively #'zzz-up-to-char))))) | 2291 | (call-interactively #'zzz-up-to-char))))) |
2267 | 2292 | ||
2268 | (setup (:straight dictionary) | ||
2269 | (:option dictionary-use-single-buffer t) | ||
2270 | |||
2271 | (autoload 'dictionary-search "dictionary" | ||
2272 | "Ask for a word and search it in all dictionaries" t) | ||
2273 | (autoload 'dictionary-match-words "dictionary" | ||
2274 | "Ask for a word and search all matching words in the dictionaries" t) | ||
2275 | (autoload 'dictionary-lookup-definition "dictionary" | ||
2276 | "Unconditionally lookup the word at point." t) | ||
2277 | (autoload 'dictionary "dictionary" | ||
2278 | "Create a new dictionary buffer" t) | ||
2279 | (autoload 'dictionary-mouse-popup-matching-words "dictionary" | ||
2280 | "Display entries matching the word at the cursor" t) | ||
2281 | (autoload 'dictionary-popup-matching-words "dictionary" | ||
2282 | "Display entries matching the word at the point" t) | ||
2283 | (autoload 'dictionary-tooltip-mode "dictionary" | ||
2284 | "Display tooltips for the current word" t) | ||
2285 | (autoload 'global-dictionary-tooltip-mode "dictionary" | ||
2286 | "Enable/disable dictionary-tooltip-mode for all buffers" t) | ||
2287 | |||
2288 | (:with-map lookup-map | ||
2289 | (:bind "d" #'dictionary-search))) | ||
2290 | |||
2291 | ;;; init.el ends here | 2293 | ;;; init.el ends here |