diff options
-rw-r--r-- | init.el | 121 | ||||
-rw-r--r-- | lisp/+browse-url.el | 6 | ||||
-rw-r--r-- | lisp/+consult.el | 2 | ||||
-rw-r--r-- | lisp/+dired.el | 23 | ||||
-rw-r--r-- | lisp/+init.el | 9 | ||||
-rw-r--r-- | lisp/+jabber.el | 12 | ||||
-rw-r--r-- | lisp/+key.el | 6 | ||||
-rw-r--r-- | lisp/+org.el | 13 |
8 files changed, 119 insertions, 73 deletions
diff --git a/init.el b/init.el index 4c0c4b0..206ba45 100644 --- a/init.el +++ b/init.el | |||
@@ -14,6 +14,14 @@ | |||
14 | ;; - Be kind to yourself. | 14 | ;; - Be kind to yourself. |
15 | ;; - Make good choices. | 15 | ;; - Make good choices. |
16 | 16 | ||
17 | ;;; Commentary | ||
18 | |||
19 | ;; My init.el. There are many like it, but this one is mine. | ||
20 | |||
21 | ;; Ideas: | ||
22 | ;; [[https://emacs.stackexchange.com/questions/17278/truncate-only-certain-lines-and-use-continuation-lines-elsewhere][Truncate org-mode headings]] | ||
23 | ;; [[https://emacs.stackexchange.com/questions/7432/make-visual-line-mode-more-compatible-with-org-mode][another link that might be useful for truncating]] | ||
24 | |||
17 | ;;; Code: | 25 | ;;; Code: |
18 | 26 | ||
19 | (let ((early-features `((early-init . ,(locate-user-emacs-file "early-init")) | 27 | (let ((early-features `((early-init . ,(locate-user-emacs-file "early-init")) |
@@ -104,6 +112,8 @@ | |||
104 | (:with-mode Custom-mode | 112 | (:with-mode Custom-mode |
105 | (:local-set imenu-generic-expression +cus-edit-imenu-generic-expression))) | 113 | (:local-set imenu-generic-expression +cus-edit-imenu-generic-expression))) |
106 | 114 | ||
115 | (setup (:require find-script)) | ||
116 | |||
107 | (setup (:require goto-addr) | 117 | (setup (:require goto-addr) |
108 | (if (fboundp #'global-goto-address-mode) | 118 | (if (fboundp #'global-goto-address-mode) |
109 | (global-goto-address-mode) | 119 | (global-goto-address-mode) |
@@ -242,17 +252,15 @@ | |||
242 | (:option +browse-url-transformations `((,(rx (or "youtube.com" | 252 | (:option +browse-url-transformations `((,(rx (or "youtube.com" |
243 | "youtu.be")) | 253 | "youtu.be")) |
244 | . ,+invidious-host) | 254 | . ,+invidious-host) |
245 | ("twitter\\.com" | 255 | ("twitter\\.com" . "nitter.net") |
246 | . "nitter.net") | 256 | ("instagram\\.com" . "bibilogram.art") |
247 | ("instagram\\.com" | ||
248 | . "bibilogram.art") | ||
249 | (,(rx (or "reddit.com" | 257 | (,(rx (or "reddit.com" |
250 | "old.reddit.com")) | 258 | "old.reddit.com")) |
251 | . "teddit.net") | 259 | . "teddit.net") |
252 | ("medium\\.com" | 260 | ("medium\\.com" . "scribe.rip") |
253 | . "scribe.rip") | 261 | ("www\\.npr\\.org" . "text.npr.org") |
254 | ("www\\.npr\\.org" | 262 | ;;TODO: Various paste sites |
255 | . "text.npr.org"))) | 263 | )) |
256 | (+browse-url-transform-url-global-mode +1)) | 264 | (+browse-url-transform-url-global-mode +1)) |
257 | 265 | ||
258 | (setup calendar | 266 | (setup calendar |
@@ -458,7 +466,8 @@ | |||
458 | '(context-menu-ffap | 466 | '(context-menu-ffap |
459 | context-menu-region | 467 | context-menu-region |
460 | context-menu-undo | 468 | context-menu-undo |
461 | context-menu-dictionary)) | 469 | ;; context-menu-dictionary |
470 | )) | ||
462 | (context-menu-mode +1)) | 471 | (context-menu-mode +1)) |
463 | (dolist (click '(;; Fix scrolling in the margin | 472 | (dolist (click '(;; Fix scrolling in the margin |
464 | wheel-down double-wheel-down triple-wheel-down | 473 | wheel-down double-wheel-down triple-wheel-down |
@@ -467,9 +476,25 @@ | |||
467 | (global-set-key (vector 'left-margin click) 'mwheel-scroll))) | 476 | (global-set-key (vector 'left-margin click) 'mwheel-scroll))) |
468 | 477 | ||
469 | (setup net-utils | 478 | (setup net-utils |
479 | (:needs "traceroute") | ||
470 | (:require +finger) ; fixes `finger' to use var below | 480 | (:require +finger) ; fixes `finger' to use var below |
471 | (:option finger-X.500-host-regexps '(".") ; only send username | 481 | (:option finger-X.500-host-regexps '(".") ; only send username |
472 | )) | 482 | ) |
483 | (require 'transient) | ||
484 | (transient-define-prefix net-utils () | ||
485 | "Networking utilities" | ||
486 | ["Actions" | ||
487 | ("p" "Ping" ping) | ||
488 | ("i" "Ifconfig" ifconfig) | ||
489 | ("w" "Iwconfig" iwconfig) | ||
490 | ("n" "Netstat" netstat) | ||
491 | ("a" "Arp" arp) | ||
492 | ("r" "Route" route) | ||
493 | ("h" "Nslookup host" nslookup-host) | ||
494 | ("d" "Dig" dig) | ||
495 | ("s" "Smb Client" smbclient) | ||
496 | ("t" "Traceroute" traceroute)]) | ||
497 | (:+key "C-z M-n" #'net-utils)) | ||
473 | 498 | ||
474 | (setup notmuch | 499 | (setup notmuch |
475 | (:load-from "~/usr/share/emacs/site-lisp/") | 500 | (:load-from "~/usr/share/emacs/site-lisp/") |
@@ -558,7 +583,7 @@ | |||
558 | org-fontify-done-headline t | 583 | org-fontify-done-headline t |
559 | org-fontify-quote-and-verse-blocks t | 584 | org-fontify-quote-and-verse-blocks t |
560 | org-fontify-whole-heading-line t | 585 | org-fontify-whole-heading-line t |
561 | org-hide-emphasis-markers t | 586 | org-hide-emphasis-markers nil |
562 | org-html-coding-system 'utf-8-unix | 587 | org-html-coding-system 'utf-8-unix |
563 | org-image-actual-width (list (* (window-font-width) | 588 | org-image-actual-width (list (* (window-font-width) |
564 | (- fill-column 8))) | 589 | (- fill-column 8))) |
@@ -617,7 +642,15 @@ | |||
617 | "C-c C-p" #'+org-previous-heading-widen | 642 | "C-c C-p" #'+org-previous-heading-widen |
618 | "C-c C-o" #'+org-open-at-point-dwim | 643 | "C-c C-o" #'+org-open-at-point-dwim |
619 | "`" #'+org-insert-tilde | 644 | "`" #'+org-insert-tilde |
620 | "~" #'+org-insert-backtick) | 645 | "~" #'+org-insert-backtick |
646 | "C-c C-x l" #'org-toggle-link-display | ||
647 | "C-c C-x m" (lambda () (interactive) | ||
648 | (setq-local org-hide-emphasis-markers | ||
649 | (not org-hide-emphasis-markers)) | ||
650 | (font-lock-update)) | ||
651 | "C-c C-x r" #'+org-drawer-list-add-resource | ||
652 | "C-M-k" #'kill-paragraph | ||
653 | "C-M-t" #'transpose-paragraphs) | ||
621 | (:global [f8] #'org-clock-in | 654 | (:global [f8] #'org-clock-in |
622 | [f9] #'org-clock-out | 655 | [f9] #'org-clock-out |
623 | "C-c l" #'org-store-link) | 656 | "C-c l" #'org-store-link) |
@@ -629,6 +662,12 @@ | |||
629 | (:local-set prettify-symbols-alist '(("DEADLINE:" . ?→) | 662 | (:local-set prettify-symbols-alist '(("DEADLINE:" . ?→) |
630 | ("SCHEDULED:" . ?↷) | 663 | ("SCHEDULED:" . ?↷) |
631 | ("CLOSED:" . ?✓)) | 664 | ("CLOSED:" . ?✓)) |
665 | ;; electric-pair-pairs | ||
666 | ;; (append electric-pair-pairs | ||
667 | ;; (mapcar (lambda (emph) | ||
668 | ;; (let ((ch (string-to-char (car emph)))) | ||
669 | ;; (cons ch ch))) | ||
670 | ;; org-emphasis-alist)) | ||
632 | ;;+modeline-position-function #'+org-count-words-stupidly | 671 | ;;+modeline-position-function #'+org-count-words-stupidly |
633 | ) | 672 | ) |
634 | (:local-hook user-save-hook #'+org-before-save@prettify-buffer) | 673 | (:local-hook user-save-hook #'+org-before-save@prettify-buffer) |
@@ -646,6 +685,9 @@ | |||
646 | (org-link-set-parameters "sms" :follow #'+org-sms-open) | 685 | (org-link-set-parameters "sms" :follow #'+org-sms-open) |
647 | (setf (alist-get "\\.x?html?\\'" org-file-apps nil nil #'equal) | 686 | (setf (alist-get "\\.x?html?\\'" org-file-apps nil nil #'equal) |
648 | #'+org-open-html)) | 687 | #'+org-open-html)) |
688 | (:face 'org-done '((t (:inherit (modus-themes-subtle-green)))) | ||
689 | 'org-tag '((t (:inherit (secondary-selection)))) | ||
690 | 'org-todo '((t (:inherit (modus-themes-subtle-red))))) | ||
649 | ;; Extra keywords | 691 | ;; Extra keywords |
650 | (font-lock-add-keywords | 692 | (font-lock-add-keywords |
651 | 'org-mode | 693 | 'org-mode |
@@ -1158,10 +1200,6 @@ | |||
1158 | (:hook #'visual-line-mode | 1200 | (:hook #'visual-line-mode |
1159 | #'enable-lui-track | 1201 | #'enable-lui-track |
1160 | #'visual-fill-column-mode | 1202 | #'visual-fill-column-mode |
1161 | (defun +disable-electric-pair-mode () | ||
1162 | "Disable `electric-pair-mode' in the current buffer." | ||
1163 | (interactive) | ||
1164 | (electric-pair-local-mode -1)) | ||
1165 | #'enable-lui-autopaste) | 1203 | #'enable-lui-autopaste) |
1166 | (:local-set fringes-outside-margins t | 1204 | (:local-set fringes-outside-margins t |
1167 | right-margin-width (length lui-time-stamp-format) | 1205 | right-margin-width (length lui-time-stamp-format) |
@@ -1178,6 +1216,7 @@ | |||
1178 | (setf (alist-get 'lui-next-button-or-complete vertico-multiform-commands) | 1216 | (setf (alist-get 'lui-next-button-or-complete vertico-multiform-commands) |
1179 | '(flat)))) | 1217 | '(flat)))) |
1180 | 1218 | ||
1219 | (tracking-mode +1) | ||
1181 | (:with-mode tracking-mode | 1220 | (:with-mode tracking-mode |
1182 | (:option tracking-position 'before-modes) | 1221 | (:option tracking-position 'before-modes) |
1183 | (:bind "C-c C-SPC" (lambda () (interactive) | 1222 | (:bind "C-c C-SPC" (lambda () (interactive) |
@@ -1295,19 +1334,20 @@ | |||
1295 | (with-eval-after-load 'vertico-multiform | 1334 | (with-eval-after-load 'vertico-multiform |
1296 | (setf (alist-get 'consult-buffer vertico-multiform-commands) '(flat)) | 1335 | (setf (alist-get 'consult-buffer vertico-multiform-commands) '(flat)) |
1297 | (dolist (buf-cmd '(consult-find | 1336 | (dolist (buf-cmd '(consult-find |
1298 | consult-yank-pop | 1337 | consult-flymake |
1299 | consult-locate | 1338 | consult-focus-lines |
1300 | consult-grep | ||
1301 | consult-git-grep | 1339 | consult-git-grep |
1302 | consult-ripgrep | 1340 | consult-grep |
1341 | consult-imenu | ||
1342 | consult-imenu-multi | ||
1343 | consult-keep-lines | ||
1303 | consult-line | 1344 | consult-line |
1304 | consult-line-multi | 1345 | consult-line-multi |
1346 | consult-locate | ||
1305 | consult-multi-occur | 1347 | consult-multi-occur |
1306 | consult-keep-lines | 1348 | consult-outline |
1307 | consult-focus-lines | 1349 | consult-ripgrep |
1308 | consult-imenu | 1350 | consult-yank-pop)) |
1309 | consult-imenu-multi | ||
1310 | consult-outline)) | ||
1311 | (setf (alist-get buf-cmd vertico-multiform-commands) nil))))) | 1351 | (setf (alist-get buf-cmd vertico-multiform-commands) nil))))) |
1312 | 1352 | ||
1313 | (setup (:straight consult-dir) | 1353 | (setup (:straight consult-dir) |
@@ -1505,6 +1545,11 @@ | |||
1505 | (add-hook 'embark-collect-mode-hook #'consult-preview-at-point-mode)) | 1545 | (add-hook 'embark-collect-mode-hook #'consult-preview-at-point-mode)) |
1506 | 1546 | ||
1507 | (setup (:straight embrace) | 1547 | (setup (:straight embrace) |
1548 | (dolist (mode '(LaTeX-mode org-mode ruby-mode)) | ||
1549 | (add-hook (intern (format "%s-hook" mode)) | ||
1550 | (intern (format "embrace-%s-hook" mode)))) | ||
1551 | (:face 'embrace-help-pair-face '((t ( :inverse-video nil | ||
1552 | :inherit font-lock-keyword-face)))) | ||
1508 | (:+key "C-," #'embrace-commander)) | 1553 | (:+key "C-," #'embrace-commander)) |
1509 | 1554 | ||
1510 | (setup (:straight (ement | 1555 | (setup (:straight (ement |
@@ -1611,7 +1656,7 @@ | |||
1611 | (setup (:straight (forge | 1656 | (setup (:straight (forge |
1612 | :host github :repo "magit/forge") | 1657 | :host github :repo "magit/forge") |
1613 | (eq system-type 'gnu/linux)) | 1658 | (eq system-type 'gnu/linux)) |
1614 | (require 'forge) | 1659 | (:quit) ; XXX: Somehow missing compat-26 |
1615 | (add-to-list 'forge-alist | 1660 | (add-to-list 'forge-alist |
1616 | '("tildegit.org" "tildegit.org/api/v1" "tildegit.org" | 1661 | '("tildegit.org" "tildegit.org/api/v1" "tildegit.org" |
1617 | forge-gitea-repository))) | 1662 | forge-gitea-repository))) |
@@ -1624,6 +1669,7 @@ | |||
1624 | (setup (:straight (frowny | 1669 | (setup (:straight (frowny |
1625 | :host github | 1670 | :host github |
1626 | :repo "duckwork/frowny.el")) | 1671 | :repo "duckwork/frowny.el")) |
1672 | (:option frowny-eyes (rx (any ":=") (opt "'") (? "-"))) | ||
1627 | (global-frowny-mode +1)) | 1673 | (global-frowny-mode +1)) |
1628 | 1674 | ||
1629 | (setup (:straight gcmh) | 1675 | (setup (:straight gcmh) |
@@ -1749,9 +1795,6 @@ | |||
1749 | :fork ( :host nil | 1795 | :fork ( :host nil |
1750 | :repo "https://codeberg.org/acdw/emacs-jabber"))) | 1796 | :repo "https://codeberg.org/acdw/emacs-jabber"))) |
1751 | (:also-load +jabber) | 1797 | (:also-load +jabber) |
1752 | (defvar +jabber-ws-prefix 0 "Width to pad left side of chats.") | ||
1753 | (defvar +jabber-pre-prompt "\n" | ||
1754 | "String to show before a prompt.") | ||
1755 | (:option jabber-account-list '(("acdw@hmm.st")) | 1798 | (:option jabber-account-list '(("acdw@hmm.st")) |
1756 | jabber-groupchat-buffer-format "%n" | 1799 | jabber-groupchat-buffer-format "%n" |
1757 | jabber-chat-buffer-format "%n" | 1800 | jabber-chat-buffer-format "%n" |
@@ -1760,7 +1803,7 @@ | |||
1760 | jabber-muc-decorate-presence-patterns | 1803 | jabber-muc-decorate-presence-patterns |
1761 | '(("\\( enters the room ([^)]+)\\| has left the chatroom\\)$") | 1804 | '(("\\( enters the room ([^)]+)\\| has left the chatroom\\)$") |
1762 | ("." . jabber-muc-presence-dim)) | 1805 | ("." . jabber-muc-presence-dim)) |
1763 | jabber-muc-colorize-foreign t | 1806 | jabber-muc-colorize-foreign nil ; colorizing doesn't match my color theme |
1764 | jabber-chat-foreign-prompt-format (concat +jabber-pre-prompt | 1807 | jabber-chat-foreign-prompt-format (concat +jabber-pre-prompt |
1765 | "[%t] %n\n" | 1808 | "[%t] %n\n" |
1766 | (make-string +jabber-ws-prefix | 1809 | (make-string +jabber-ws-prefix |
@@ -1794,7 +1837,6 @@ | |||
1794 | jabber-console-mode)) | 1837 | jabber-console-mode)) |
1795 | (let ((hook (intern (format "%s-hook" mode)))) | 1838 | (let ((hook (intern (format "%s-hook" mode)))) |
1796 | (add-hook hook #'visual-fill-column-mode))) | 1839 | (add-hook hook #'visual-fill-column-mode))) |
1797 | (add-hook 'jabber-activity-mode-hook #'tracking-mode) | ||
1798 | (with-eval-after-load 'tracking | 1840 | (with-eval-after-load 'tracking |
1799 | (add-to-list 'tracking-ignored-buffers "discuss@conference.soprani.ca")) | 1841 | (add-to-list 'tracking-ignored-buffers "discuss@conference.soprani.ca")) |
1800 | (:with-mode jabber-chat-mode | 1842 | (:with-mode jabber-chat-mode |
@@ -1888,6 +1930,7 @@ | |||
1888 | 1930 | ||
1889 | (setup (:straight mastodon) | 1931 | (setup (:straight mastodon) |
1890 | (:option mastodon-instance-url "https://tiny.tilde.website" | 1932 | (:option mastodon-instance-url "https://tiny.tilde.website" |
1933 | mastodon-active-user "acdw" | ||
1891 | mastodon-client--token-file (.etc "mastodon.plstore") | 1934 | mastodon-client--token-file (.etc "mastodon.plstore") |
1892 | mastodon-auth-source-file (seq-some (lambda (i) | 1935 | mastodon-auth-source-file (seq-some (lambda (i) |
1893 | (when (and (stringp i) | 1936 | (when (and (stringp i) |
@@ -2016,7 +2059,7 @@ | |||
2016 | (:option completion-styles '(substring orderless basic) | 2059 | (:option completion-styles '(substring orderless basic) |
2017 | completion-category-defaults nil | 2060 | completion-category-defaults nil |
2018 | completion-category-overrides | 2061 | completion-category-overrides |
2019 | '((file (styles partial-completion)) | 2062 | '((file (styles basic partial-completion)) |
2020 | (command (styles +orderless-with-initialism)) | 2063 | (command (styles +orderless-with-initialism)) |
2021 | (variable (styles +orderless-with-initialism)) | 2064 | (variable (styles +orderless-with-initialism)) |
2022 | (symbol (styles +orderless-with-initialism))) | 2065 | (symbol (styles +orderless-with-initialism))) |
@@ -2056,6 +2099,7 @@ | |||
2056 | (local-set-key (kbd "C-c M-o") 'org-mime-org-buffer-htmlize)))) | 2099 | (local-set-key (kbd "C-c M-o") 'org-mime-org-buffer-htmlize)))) |
2057 | 2100 | ||
2058 | (setup (:straight org-modern) | 2101 | (setup (:straight org-modern) |
2102 | (:quit "I think I can do most of this myself.") | ||
2059 | (:option org-modern-hide-stars nil | 2103 | (:option org-modern-hide-stars nil |
2060 | org-modern-star nil | 2104 | org-modern-star nil |
2061 | org-modern-list nil | 2105 | org-modern-list nil |
@@ -2081,7 +2125,9 @@ | |||
2081 | (org-visibility-enable-hooks)) | 2125 | (org-visibility-enable-hooks)) |
2082 | 2126 | ||
2083 | (setup (:straight orglink) | 2127 | (setup (:straight orglink) |
2084 | (global-orglink-mode +1)) | 2128 | (:option orglink-activate-in-modes '(text-mode prog-mode)) |
2129 | (global-orglink-mode +1) | ||
2130 | (global-goto-address-mode -1)) | ||
2085 | 2131 | ||
2086 | (setup (:straight package-lint)) | 2132 | (setup (:straight package-lint)) |
2087 | 2133 | ||
@@ -2126,7 +2172,7 @@ | |||
2126 | (executable-find "g++"))) | 2172 | (executable-find "g++"))) |
2127 | (setf (alist-get "\\.pdf\\'" auto-mode-alist nil nil #'equal) | 2173 | (setf (alist-get "\\.pdf\\'" auto-mode-alist nil nil #'equal) |
2128 | #'pdf-view-mode) | 2174 | #'pdf-view-mode) |
2129 | (pdf-tools-install)) | 2175 | (pdf-tools-install t)) |
2130 | 2176 | ||
2131 | (setup (:straight (plancat | 2177 | (setup (:straight (plancat |
2132 | :host github | 2178 | :host github |
@@ -2210,6 +2256,8 @@ | |||
2210 | (:also-load +slack) | 2256 | (:also-load +slack) |
2211 | (:option slack-prefer-current-team t | 2257 | (:option slack-prefer-current-team t |
2212 | slack-buffer-emojify t | 2258 | slack-buffer-emojify t |
2259 | slack-thread-also-send-to-room nil | ||
2260 | slack-typing-visibility 'buffer | ||
2213 | slack-buffer-create-on-notify t | 2261 | slack-buffer-create-on-notify t |
2214 | slack-enable-wysiwyg t | 2262 | slack-enable-wysiwyg t |
2215 | slack-file-dir (xdg-user-dir "DOWNLOAD") | 2263 | slack-file-dir (xdg-user-dir "DOWNLOAD") |
@@ -2243,7 +2291,8 @@ | |||
2243 | (sophomore-enable #'narrow-to-region) | 2291 | (sophomore-enable #'narrow-to-region) |
2244 | (sophomore-disable ; These are mostly annoying commands | 2292 | (sophomore-disable ; These are mostly annoying commands |
2245 | #'view-hello-file | 2293 | #'view-hello-file |
2246 | #'describe-gnu-project) | 2294 | #'describe-gnu-project |
2295 | #'suspend-frame) | ||
2247 | (sophomore-mode +1)) | 2296 | (sophomore-mode +1)) |
2248 | 2297 | ||
2249 | (setup (:straight ssh-config-mode) | 2298 | (setup (:straight ssh-config-mode) |
@@ -2257,7 +2306,7 @@ | |||
2257 | (setup (:straight super-save) | 2306 | (setup (:straight super-save) |
2258 | (:option auto-save-default nil | 2307 | (:option auto-save-default nil |
2259 | super-save-auto-save-when-idle t | 2308 | super-save-auto-save-when-idle t |
2260 | super-save-idle-duration 60 | 2309 | super-save-idle-duration 30 |
2261 | super-save-exclude '(".gpg") | 2310 | super-save-exclude '(".gpg") |
2262 | super-save-remote-files nil) | 2311 | super-save-remote-files nil) |
2263 | (auto-save-visited-mode -1) | 2312 | (auto-save-visited-mode -1) |
diff --git a/lisp/+browse-url.el b/lisp/+browse-url.el index dbbfef2..fc479e4 100644 --- a/lisp/+browse-url.el +++ b/lisp/+browse-url.el | |||
@@ -120,9 +120,9 @@ ARGS are ignored here, but passed on for later processing." | |||
120 | ;; along with the rest of the args, in a list to the original caller (probably | 120 | ;; along with the rest of the args, in a list to the original caller (probably |
121 | ;; `browse-url'.) | 121 | ;; `browse-url'.) |
122 | (apply 'list | 122 | (apply 'list |
123 | (cl-loop with url = (substring-no-properties | 123 | (cl-loop with url = (substring-no-properties |
124 | (if (consp url) (car url) url)) | 124 | (if (consp url) (car url) url)) |
125 | for (regex . transformation) in +browse-url-transformations | 125 | for (regex . transformation) in +browse-url-transformations |
126 | if (string-match regex url) | 126 | if (string-match regex url) |
127 | return (replace-match transformation nil nil url) | 127 | return (replace-match transformation nil nil url) |
128 | ;; else | 128 | ;; else |
diff --git a/lisp/+consult.el b/lisp/+consult.el index dc06ad5..21c2565 100644 --- a/lisp/+consult.el +++ b/lisp/+consult.el | |||
@@ -5,7 +5,7 @@ | |||
5 | (defun +consult-project-root () | 5 | (defun +consult-project-root () |
6 | "Return either the current project, or the VC root, of current file." | 6 | "Return either the current project, or the VC root, of current file." |
7 | (if (and (functionp 'project-current) | 7 | (if (and (functionp 'project-current) |
8 | (project-current)) | 8 | (project-current)) |
9 | (car (project-roots (project-current))) | 9 | (car (project-roots (project-current))) |
10 | (vc-root-dir))) | 10 | (vc-root-dir))) |
11 | 11 | ||
diff --git a/lisp/+dired.el b/lisp/+dired.el index 9a2e01a..2e42c19 100644 --- a/lisp/+dired.el +++ b/lisp/+dired.el | |||
@@ -2,18 +2,17 @@ | |||
2 | 2 | ||
3 | ;;; Code: | 3 | ;;; Code: |
4 | 4 | ||
5 | (require 'vertico) | 5 | (with-eval-after-load 'vertico |
6 | 6 | (defun +dired-goto-file (file) | |
7 | (defun +dired-goto-file (file) | 7 | "ADVICE for `dired-goto-file' to make RET call `vertico-exit'." |
8 | "ADVICE for `dired-goto-file' to make RET call `vertico-exit'." | 8 | (interactive ; stolen from `dired-goto-file' |
9 | (interactive ; stolen from `dired-goto-file' | 9 | (prog1 |
10 | (prog1 | 10 | (list (dlet ((vertico-map (copy-keymap vertico-map))) |
11 | (list (dlet ((vertico-map (copy-keymap vertico-map))) | 11 | (define-key vertico-map (kbd "RET") #'vertico-exit) |
12 | (define-key vertico-map (kbd "RET") #'vertico-exit) | 12 | (expand-file-name (read-file-name "Goto file: " |
13 | (expand-file-name (read-file-name "Goto file: " | 13 | (dired-current-directory))))) |
14 | (dired-current-directory))))) | 14 | (push-mark))) |
15 | (push-mark))) | 15 | (dired-goto-file file))) |
16 | (dired-goto-file file)) | ||
17 | 16 | ||
18 | ;;; [[https://www.reddit.com/r/emacs/comments/u2lf9t/weekly_tips_tricks_c_thread/i4n9aoa/?context=3][Dim files in .gitignore]] | 17 | ;;; [[https://www.reddit.com/r/emacs/comments/u2lf9t/weekly_tips_tricks_c_thread/i4n9aoa/?context=3][Dim files in .gitignore]] |
19 | 18 | ||
diff --git a/lisp/+init.el b/lisp/+init.el index 8f999f9..a3f680b 100644 --- a/lisp/+init.el +++ b/lisp/+init.el | |||
@@ -72,11 +72,10 @@ are sorted lexigraphically." | |||
72 | ;; otherwise, sort lexigraphically | 72 | ;; otherwise, sort lexigraphically |
73 | (t (string< s1 s2))))))))) | 73 | (t (string< s1 s2))))))))) |
74 | ;; Return to original point relative to the defun we were in | 74 | ;; Return to original point relative to the defun we were in |
75 | (goto-char (point-min)) | 75 | (ignore-errors (goto-char (point-min)) |
76 | (re-search-forward current-defun-re) | 76 | (re-search-forward current-defun-re) |
77 | (beginning-of-defun) | 77 | (beginning-of-defun) |
78 | (goto-char (+ (point) defun-point)) | 78 | (goto-char (+ (point) defun-point))))) |
79 | )) | ||
80 | 79 | ||
81 | (defun +init-sort-then-save () | 80 | (defun +init-sort-then-save () |
82 | "Sort init.el, then save it." | 81 | "Sort init.el, then save it." |
diff --git a/lisp/+jabber.el b/lisp/+jabber.el index c5d568c..e018b0c 100644 --- a/lisp/+jabber.el +++ b/lisp/+jabber.el | |||
@@ -10,6 +10,18 @@ | |||
10 | (require 'jabber) | 10 | (require 'jabber) |
11 | (require 'tracking) | 11 | (require 'tracking) |
12 | 12 | ||
13 | (defgroup +jabber nil | ||
14 | "Extra jabber.el customizations." | ||
15 | :group 'jabber) | ||
16 | |||
17 | (defcustom +jabber-ws-prefix 0 | ||
18 | "Width to pad left side of chats." | ||
19 | :type 'string) | ||
20 | |||
21 | (defcustom +jabber-pre-prompt "\n" | ||
22 | "String to put before the prompt." | ||
23 | :type 'string) | ||
24 | |||
13 | (defvar +jabber-tracking-show-p #'jabber-activity-show-p-default | 25 | (defvar +jabber-tracking-show-p #'jabber-activity-show-p-default |
14 | "Function that checks if the given JID should be shown in the mode line. | 26 | "Function that checks if the given JID should be shown in the mode line. |
15 | This does the same as `jabber-activity-show-p', but for the | 27 | This does the same as `jabber-activity-show-p', but for the |
diff --git a/lisp/+key.el b/lisp/+key.el index ad3b215..a217dad 100644 --- a/lisp/+key.el +++ b/lisp/+key.el | |||
@@ -19,9 +19,9 @@ | |||
19 | 19 | ||
20 | ;; I need to define this map before the proper mode map. | 20 | ;; I need to define this map before the proper mode map. |
21 | (defvar +key-leader-map (let ((map (make-sparse-keymap)) | 21 | (defvar +key-leader-map (let ((map (make-sparse-keymap)) |
22 | (c-z (global-key-binding "\C-z"))) | 22 | (c-z (global-key-binding "\C-z"))) |
23 | (define-key map "\C-z" c-z) | 23 | ;;(define-key map "\C-z" c-z) |
24 | map) | 24 | map) |
25 | "A leader keymap under the \"C-z\" bind.") | 25 | "A leader keymap under the \"C-z\" bind.") |
26 | 26 | ||
27 | ;; http://xahlee.info/emacs/emacs/emacs_menu_app_keys.html and | 27 | ;; http://xahlee.info/emacs/emacs/emacs_menu_app_keys.html and |
diff --git a/lisp/+org.el b/lisp/+org.el index 252ee55..6075b60 100644 --- a/lisp/+org.el +++ b/lisp/+org.el | |||
@@ -588,19 +588,6 @@ and POST-PROCESS are passed to `org-export-to-file'." | |||
588 | ("—" "---")))) | 588 | ("—" "---")))) |
589 | (replace-match replace nil nil))))) | 589 | (replace-match replace nil nil))))) |
590 | 590 | ||
591 | ;;; Toggle org-hide-emphasis-markers | ||
592 | |||
593 | (define-minor-mode +org-show-mode | ||
594 | "Show emphasis markers and full links in `org-mode'." | ||
595 | :lighter "/*/" | ||
596 | (setq org-hide-emphasis-markers (not +org-show-mode) | ||
597 | org-link-descriptive (not +org-show-mode)) | ||
598 | (funcall (if +org-show-mode | ||
599 | #'remove-from-invisibility-spec | ||
600 | #'add-to-invisibility-spec) | ||
601 | '(org-link)) | ||
602 | (font-lock-update)) | ||
603 | |||
604 | ;;; go forward and backward in the tree, ~ cleanly ~ | 591 | ;;; go forward and backward in the tree, ~ cleanly ~ |
605 | ;; https://stackoverflow.com/a/25201697/10756297 | 592 | ;; https://stackoverflow.com/a/25201697/10756297 |
606 | 593 | ||