diff options
Diffstat (limited to 'init.el')
-rw-r--r-- | init.el | 151 |
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 @@ | |||
718 | They are completed by \"M-x TAB\" only in Tramp debug buffers." | 720 | They 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 |