summary refs log tree commit diff stats
path: root/init.el
diff options
context:
space:
mode:
Diffstat (limited to 'init.el')
-rw-r--r--init.el448
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
19851(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