summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--init.el151
1 files changed, 87 insertions, 64 deletions
diff --git a/init.el b/init.el index 4b4d668..4140814 100644 --- a/init.el +++ b/init.el
@@ -209,14 +209,14 @@
209 ;; Transform URLs before passing to `browse-url' 209 ;; Transform URLs before passing to `browse-url'
210 (:option +browse-url-transformations `((,(rx (or "youtube.com" 210 (:option +browse-url-transformations `((,(rx (or "youtube.com"
211 "youtu.be")) 211 "youtu.be"))
212 . ,+invidious-host) 212 . ,+invidious-host)
213 ("twitter\\.com" 213 ("twitter\\.com"
214 . "nitter.net") 214 . "nitter.net")
215 ("instagram\\.com" 215 ("instagram\\.com"
216 . "bibilogram.art") 216 . "bibilogram.art")
217 (,(rx (or "reddit.com" 217 (,(rx (or "reddit.com"
218 "old.reddit.com")) 218 "old.reddit.com"))
219 . "teddit.net") 219 . "teddit.net")
220 ("medium\\.com" 220 ("medium\\.com"
221 . "scribe.rip"))) 221 . "scribe.rip")))
222 (+browse-url-transform-url-global-mode +1)) 222 (+browse-url-transform-url-global-mode +1))
@@ -290,6 +290,8 @@
290 (:bind "C-c C-c" #'eval-defun 290 (:bind "C-c C-c" #'eval-defun
291 "C-c C-k" #'+elisp-eval-region-or-buffer 291 "C-c C-k" #'+elisp-eval-region-or-buffer
292 "C-c C-z" #'ielm)) 292 "C-c C-z" #'ielm))
293 (:with-mode (emacs-lisp-mode lisp-interaction-mode +init-mode lisp-mode)
294 (:local-set lisp-indent-function #'common-lisp-indent-function))
293 (advice-add #'eval-region :around #'+eval-region@pulse)) 295 (advice-add #'eval-region :around #'+eval-region@pulse))
294 296
295(setup eshell 297(setup eshell
@@ -338,7 +340,7 @@
338 ;; Bind keys 340 ;; Bind keys
339 (dolist (binding '(("C-d" . +eshell-quit-or-delete-char))) 341 (dolist (binding '(("C-d" . +eshell-quit-or-delete-char)))
340 (define-key eshell-mode-map 342 (define-key eshell-mode-map
341 (kbd (car binding)) (cdr binding))) 343 (kbd (car binding)) (cdr binding)))
342 ;; Environment variables 344 ;; Environment variables
343 (dolist (environment '(("PAGER" . "cat"))) 345 (dolist (environment '(("PAGER" . "cat")))
344 (setenv (car environment) (cdr environment))))) 346 (setenv (car environment) (cdr environment)))))
@@ -524,7 +526,7 @@
524 org-startup-with-inline-images t 526 org-startup-with-inline-images t
525 org-tags-column (- (- fill-column (length org-ellipsis))) 527 org-tags-column (- (- fill-column (length org-ellipsis)))
526 org-todo-keywords '((sequence "TODO(t)" "WAIT(w@/!)" 528 org-todo-keywords '((sequence "TODO(t)" "WAIT(w@/!)"
527 "|" "DONE(d!)") 529 "|" "DONE(d!)")
528 (sequence "|" "CANCELED(k@)") 530 (sequence "|" "CANCELED(k@)")
529 (sequence "MEETING(m)"))) 531 (sequence "MEETING(m)")))
530 (:bind "RET" #'+org-return-dwim 532 (:bind "RET" #'+org-return-dwim
@@ -594,27 +596,27 @@
594 (+org-capture-templates-setf "t" "Todo") 596 (+org-capture-templates-setf "t" "Todo")
595 (+org-capture-templates-setf "tt" 597 (+org-capture-templates-setf "tt"
596 `("Today!" entry (file "todo.org") 598 `("Today!" entry (file "todo.org")
597 ,(concat "* TODO %^{Title}\n" 599 ,(concat "* TODO %^{Title}\n"
598 "DEADLINE: %t\n" 600 "DEADLINE: %t\n"
599 "\n%?"))) 601 "\n%?")))
600 (+org-capture-templates-setf "ts" 602 (+org-capture-templates-setf "ts"
601 `("Someday..." entry (file "todo.org") 603 `("Someday..." entry (file "todo.org")
602 ,(concat "* TODO %^{Title}\n" 604 ,(concat "* TODO %^{Title}\n"
603 ":PROPERTIES:\n" 605 ":PROPERTIES:\n"
604 ":CREATED: [%<%F %T>]\n" 606 ":CREATED: [%<%F %T>]\n"
605 ":END:\n" 607 ":END:\n"
606 "\n%?"))) 608 "\n%?")))
607 (+org-capture-templates-setf "tm" 609 (+org-capture-templates-setf "tm"
608 `("Media" entry (file "todo.org") 610 `("Media" entry (file "todo.org")
609 ,(concat "* TODO %^{TITLE}\n" 611 ,(concat "* TODO %^{TITLE}\n"
610 ":PROPERTIES:\n" 612 ":PROPERTIES:\n"
611 ":TITLE: %\\1\n" 613 ":TITLE: %\\1\n"
612 ":AUTHOR: %^{AUTHOR}\n" 614 ":AUTHOR: %^{AUTHOR}\n"
613 ":END:\n" 615 ":END:\n"
614 "\n%?"))) 616 "\n%?")))
615 (+org-capture-templates-setf "l" 617 (+org-capture-templates-setf "l"
616 `("Link" entry (file "links.org") 618 `("Link" entry (file "links.org")
617 "* %(+org-insert-link-dwim) %^g\n\n")) 619 "* %(+org-insert-link-dwim) %^g\n\n"))
618 (+org-capture-templates-setf "w" "Work") 620 (+org-capture-templates-setf "w" "Work")
619 (+org-capture-templates-setf "j" 621 (+org-capture-templates-setf "j"
620 '("Journal entry" plain 622 '("Journal entry" plain
@@ -626,14 +628,14 @@
626 ;; from there. 628 ;; from there.
627 (+org-capture-templates-setf "s" 629 (+org-capture-templates-setf "s"
628 `("SSH Config" plain (file "~/.ssh/config") 630 `("SSH Config" plain (file "~/.ssh/config")
629 ,(concat "\n\nHost %^{Host: }" 631 ,(concat "\n\nHost %^{Host: }"
630 "\nHostname %\\1" 632 "\nHostname %\\1"
631 "\nUser %^{User:|" (user-login-name) "}" 633 "\nUser %^{User:|" (user-login-name) "}"
632 "\nIdentityFile %?" 634 "\nIdentityFile %?"
633 "\nIdentitiesOnly yes" 635 "\nIdentitiesOnly yes"
634 "\nPubkeyAuthentication yes" 636 "\nPubkeyAuthentication yes"
635 "\nPort %^{Port: |22}") 637 "\nPort %^{Port: |22}")
636 :unnarrowed t)) 638 :unnarrowed t))
637 (+org-capture-sort)) 639 (+org-capture-sort))
638 640
639(setup org-contacts 641(setup org-contacts
@@ -718,9 +720,9 @@
718They are completed by \"M-x TAB\" only in Tramp debug buffers." 720They are completed by \"M-x TAB\" only in Tramp debug buffers."
719 (with-current-buffer buffer 721 (with-current-buffer buffer
720 (el-patch-wrap 2 722 (el-patch-wrap 2
721 (save-restriction 723 (save-restriction
722 (widen) 724 (widen)
723 (string-equal (buffer-substring 1 10) ";; Emacs:"))))))) 725 (string-equal (buffer-substring 1 10) ";; Emacs:")))))))
724 726
725(setup (:straight 0x0) 727(setup (:straight 0x0)
726 (:option 0x0-default-server 'ttm) 728 (:option 0x0-default-server 'ttm)
@@ -785,18 +787,30 @@ They are completed by \"M-x TAB\" only in Tramp debug buffers."
785 (:when-loaded 787 (:when-loaded
786 (setf (alist-get ?. avy-dispatch-alist) #'avy-action-embark))) 788 (setf (alist-get ?. avy-dispatch-alist) #'avy-action-embark)))
787 789
790(setup (:straight (bongo :type git
791 :flavor melpa
792 :files ("*.el" "*.texi" "images" "*.rb" "bongo-pkg.el" "*.info")
793 :pre-build ("makeinfo" "--no-split" "bongo.texi")
794 :host github
795 :repo "dbrock/bongo"))
796 (:also-load +bongo)
797 (:option bongo-default-directory "~/var/music")
798 (with-eval-after-load 'notifications
799 (add-hook 'bongo-player-metadata-changed-hook #'+bongo-notify)))
800
788(setup (:straight (cape 801(setup (:straight (cape
789 :host github :repo "minad/cape")) 802 :host github :repo "minad/cape"))
790 (dolist (fn 803 (dolist (fn
791 ;; All available cape capfs listed here. Add them to the front since 804 ;; All available cape capfs listed here. Add them to the front since
792 ;; they're reversed with `add-to-list'. 805 ;; they're reversed with `add-to-list'.
793 '(cape-file 806 '(cape-file
794 cape-dabbrev 807 cape-dabbrev
795 cape-keyword 808 cape-keyword
796 cape-abbrev 809 cape-abbrev
797 cape-ispell 810 cape-ispell
798 ;;cape-dict)) 811 ;;cape-dict
799 (add-to-list 'completion-at-point-functions fn :append))))) 812 ))
813 (add-to-list 'completion-at-point-functions fn :append)))))
800 814
801(setup (:straight circe) 815(setup (:straight circe)
802 (:require _circe 816 (:require _circe
@@ -922,11 +936,11 @@ They are completed by \"M-x TAB\" only in Tramp debug buffers."
922 lui-track-indicator 'bar 936 lui-track-indicator 'bar
923 lui-fill-remove-face-from-newline nil 937 lui-fill-remove-face-from-newline nil
924 lui-formatting-list `((,(+lui-make-formatting-list-rx "*") 938 lui-formatting-list `((,(+lui-make-formatting-list-rx "*")
925 1 lui-strong-face) 939 1 lui-strong-face)
926 (,(+lui-make-formatting-list-rx "_") 940 (,(+lui-make-formatting-list-rx "_")
927 1 lui-emphasis-face) 941 1 lui-emphasis-face)
928 (,(+lui-make-formatting-list-rx "/") 942 (,(+lui-make-formatting-list-rx "/")
929 1 lui-emphasis-face)) 943 1 lui-emphasis-face))
930 lui-autopaste-function 944 lui-autopaste-function
931 (defun +0x0-upload-string (string) 945 (defun +0x0-upload-string (string)
932 "Upload a string using 0x0." 946 "Upload a string using 0x0."
@@ -1168,8 +1182,8 @@ See also `crux-reopen-as-root-mode'."
1168 elfeed-curl-extra-arguments '("--insecure") 1182 elfeed-curl-extra-arguments '("--insecure")
1169 elfeed-enclosure-default-dir (cl-loop for dir in '("~/var/download/" 1183 elfeed-enclosure-default-dir (cl-loop for dir in '("~/var/download/"
1170 "~/Downloads/") 1184 "~/Downloads/")
1171 if (file-exists-p dir) 1185 if (file-exists-p dir)
1172 return dir) 1186 return dir)
1173 elfeed-search-filter "@1-month-ago +unread" 1187 elfeed-search-filter "@1-month-ago +unread"
1174 elfeed-search-trailing-width 24 1188 elfeed-search-trailing-width 24
1175 elfeed-search-title-min-width 24 1189 elfeed-search-title-min-width 24
@@ -1201,8 +1215,8 @@ See also `crux-reopen-as-root-mode'."
1201 (elfeed-org) 1215 (elfeed-org)
1202 (+org-capture-templates-setf "f" 1216 (+org-capture-templates-setf "f"
1203 `("Feed" entry 1217 `("Feed" entry
1204 (file+olp ,(car rmh-elfeed-org-files) "Feeds") 1218 (file+olp ,(car rmh-elfeed-org-files) "Feeds")
1205 "* %? %^g"))) 1219 "* %? %^g")))
1206 1220
1207(setup (:straight elpher)) 1221(setup (:straight elpher))
1208 1222
@@ -1350,7 +1364,13 @@ See also `crux-reopen-as-root-mode'."
1350 (:option gcmh-idle-delay 'auto) 1364 (:option gcmh-idle-delay 'auto)
1351 (gcmh-mode +1)) 1365 (gcmh-mode +1))
1352 1366
1353(setup (:straight geiser 1367(setup (:straight (geiser
1368 :type git
1369 :flavor melpa
1370 :files ("elisp/*.el" "doc/*" "geiser-pkg.el")
1371 :pre-build ("make" "-Cdoc" "geiser.info")
1372 :host gitlab
1373 :repo "emacs-geiser/geiser")
1354 geiser-chicken 1374 geiser-chicken
1355 macrostep-geiser 1375 macrostep-geiser
1356 scheme-complete) 1376 scheme-complete)
@@ -1410,6 +1430,9 @@ See also `crux-reopen-as-root-mode'."
1410 (paredit-forward-delete arg)))) 1430 (paredit-forward-delete arg))))
1411 (global-hungry-delete-mode +1)) 1431 (global-hungry-delete-mode +1))
1412 1432
1433(setup (:straight info+)
1434 (:load-after info))
1435
1413(setup (:straight isearch-mb) 1436(setup (:straight isearch-mb)
1414 ;; This complicatedness is an attempt to make it easier to add and 1437 ;; This complicatedness is an attempt to make it easier to add and
1415 ;; subtract `isearch-mb' bindings using the suggestions in the 1438 ;; subtract `isearch-mb' bindings using the suggestions in the
@@ -1435,11 +1458,11 @@ See also `crux-reopen-as-root-mode'."
1435(setup (:straight (jabber :repo "https://tildegit.org/wgreenhouse/emacs-jabber" 1458(setup (:straight (jabber :repo "https://tildegit.org/wgreenhouse/emacs-jabber"
1436 :host nil 1459 :host nil
1437 :files ("*.el" "*.texi" 1460 :files ("*.el" "*.texi"
1438 ("jabber-fallback-lib" 1461 ("jabber-fallback-lib"
1439 "jabber-fallback-lib/hexrgb.el" 1462 "jabber-fallback-lib/hexrgb.el"
1440 "jabber-fallback-lib/srv.el" 1463 "jabber-fallback-lib/srv.el"
1441 "jabber-fallback-lib/fsm.el") 1464 "jabber-fallback-lib/fsm.el")
1442 "jabber-pkg.el") 1465 "jabber-pkg.el")
1443 :fork (:repo "https://tildegit.org/acdw/emacs-jabber" 1466 :fork (:repo "https://tildegit.org/acdw/emacs-jabber"
1444 :host nil))) 1467 :host nil)))
1445 (:also-load +jabber) 1468 (:also-load +jabber)
@@ -1584,10 +1607,10 @@ See also `crux-reopen-as-root-mode'."
1584 (let ((facen (1+ facen-1))) 1607 (let ((facen (1+ facen-1)))
1585 (custom-set-faces 1608 (custom-set-faces
1586 `(,(intern (format "org-level-%s" facen)) 1609 `(,(intern (format "org-level-%s" facen))
1587 ((t :inherit 1610 ((t :inherit
1588 (,(intern (format "modus-themes-heading-%s" facen)) 1611 (,(intern (format "modus-themes-heading-%s" facen))
1589 fixed-pitch)) 1612 fixed-pitch))
1590 :now))))) 1613 :now)))))
1591 (dawn-schedule #'modus-themes-load-operandi 1614 (dawn-schedule #'modus-themes-load-operandi
1592 #'modus-themes-load-vivendi)) 1615 #'modus-themes-load-vivendi))
1593 1616
@@ -1816,11 +1839,11 @@ See also `crux-reopen-as-root-mode'."
1816 '(:eval 1839 '(:eval
1817 (list 1840 (list
1818 (propertize " " 1841 (propertize " "
1819 'display 1842 'display
1820 `((space 1843 `((space
1821 :align-to 1844 :align-to
1822 ,(unless (bound-and-true-p visual-fill-column-mode) 1845 ,(unless (bound-and-true-p visual-fill-column-mode)
1823 0)))) 1846 0))))
1824 (funcall topsy-fn)))))) 1847 (funcall topsy-fn))))))
1825 1848
1826(setup (:straight transpose-frame) 1849(setup (:straight transpose-frame)
@@ -1840,8 +1863,8 @@ See also `crux-reopen-as-root-mode'."
1840 (:option trashed-action-confirmer #'y-or-n-p)) 1863 (:option trashed-action-confirmer #'y-or-n-p))
1841 1864
1842(setup (:straight undo-fu) 1865(setup (:straight undo-fu)
1843 (:+key "C-/" #'undo-fu-only-undo 1866 (:global "C-/" #'undo-fu-only-undo
1844 "C-?" #'undo-fu-only-redo)) 1867 "C-?" #'undo-fu-only-redo))
1845 1868
1846(setup (:straight undo-fu-session) 1869(setup (:straight undo-fu-session)
1847 (:option undo-fu-session-incompatible-files '("/COMMIT_EDITMSG\\'" 1870 (:option undo-fu-session-incompatible-files '("/COMMIT_EDITMSG\\'"
@@ -1861,7 +1884,7 @@ See also `crux-reopen-as-root-mode'."
1861 :host github 1884 :host github
1862 :repo "minad/vertico" 1885 :repo "minad/vertico"
1863 :files ("*" "extensions/*" 1886 :files ("*" "extensions/*"
1864 (:exclude ".git")))) 1887 (:exclude ".git"))))
1865 (:also-load +vertico) 1888 (:also-load +vertico)
1866 (:option resize-mini-windows 'grow-only 1889 (:option resize-mini-windows 'grow-only
1867 vertico-count-format nil 1890 vertico-count-format nil