From a479b2dd82cb8985fceffc8a329cc4bb12765679 Mon Sep 17 00:00:00 2001 From: jao Date: Thu, 13 Nov 2025 20:09:31 +0000 Subject: mail: better open email url in notmuch --- custom/jao-custom-gnus.el | 10 +++------- custom/jao-custom-notmuch.el | 23 ++++++++++++++++------- 2 files changed, 19 insertions(+), 14 deletions(-) (limited to 'custom') diff --git a/custom/jao-custom-gnus.el b/custom/jao-custom-gnus.el index 409860c..dad3de1 100644 --- a/custom/jao-custom-gnus.el +++ b/custom/jao-custom-gnus.el @@ -592,14 +592,10 @@ (when (eq major-mode 'gnus-summary-mode) (gnus-summary-select-article-buffer)) (save-excursion - (goto-char (point-min)) - (when (or (search-forward-regexp "^Via: h" nil t) - (search-forward-regexp "^URL:[\n ]h" nil t) - (and (search-forward-regexp "^Link$" nil t) - (not (beginning-of-line)))) + (when-let* ((url (jao-url-email-url))) (cond (external (jao-browse-with-external-browser)) - ((featurep 'jao-custom-eww) (eww (jao-url-around-point))) - (t (browse-url (jao-url-around-point))))))) + ((featurep 'jao-custom-eww) (eww url)) + (t (browse-url url)))))) (defun jao-gnus-from-eww (keep-eww-buffer) (interactive "P") diff --git a/custom/jao-custom-notmuch.el b/custom/jao-custom-notmuch.el index 4d797c8..18c62b7 100644 --- a/custom/jao-custom-notmuch.el +++ b/custom/jao-custom-notmuch.el @@ -462,16 +462,25 @@ (defun jao-notmuch--via-url () (when (window-live-p notmuch-tree-message-window) (with-selected-window notmuch-tree-message-window - (goto-char (point-min)) - (when (re-search-forward "^Via: http" nil t) - (thing-at-point-url-at-point))))) + (jao-url-email-url)))) (defun jao-notmuch-browse-url (ext) (interactive "P") - (when-let (url (or (jao-notmuch--via-url) - (car (last (jao-notmuch-message-urls))))) - (funcall (if ext browse-url-secondary-browser-function #'browse-url) - url))) + (when-let* ((url (or (jao-notmuch--via-url) + (car (last (jao-notmuch-message-urls)))))) + (if ext + (funcall browse-url-secondary-browser-function url) + (window-configuration-to-register ?G) + (select-window notmuch-tree-message-window) + (eww url)))) + +(defun jao-notmuch-from-eww (keep-eww-buffer) + (interactive "P") + (unless keep-eww-buffer (jao-eww-close)) + (jump-to-register ?G)) + +(with-eval-after-load 'eww + (define-key eww-mode-map (kbd "h") #'jao-notmuch-from-eww)) (defun jao-notmuch-adjust-tree-fonts (&optional family) (let ((fg (face-attribute 'jao-themes-dimm :foreground))) -- cgit v1.2.3