diff options
| author | Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> | 2026-02-14 09:31:59 +0200 |
|---|---|---|
| committer | Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> | 2026-02-14 12:10:47 +0200 |
| commit | a031b271dfb426560b92a63628d58ecd2c435902 (patch) | |
| tree | 72386863bb4f5b8461ec55705a5aec5ec357ae21 /mu4e | |
| parent | d04f3de102ca570374f51edfdbfd45fbde13d385 (diff) | |
mu4e-main: -hide-personal-addresses can be a number
mu4e-main-hide-personal-addresses can now also be number, which
indicates the maximum number of personal addresses to show in the main
view.
Remove the 'user-mail-address' tip, perhaps it annoyed more than it
helped?
Diffstat (limited to 'mu4e')
| -rw-r--r-- | mu4e/mu4e-main.el | 58 |
1 files changed, 33 insertions, 25 deletions
diff --git a/mu4e/mu4e-main.el b/mu4e/mu4e-main.el index 9bd3964..ac6367e 100644 --- a/mu4e/mu4e-main.el +++ b/mu4e/mu4e-main.el @@ -49,8 +49,12 @@ This can be useful to avoid the noise when there are many, and also hides the warning if your `user-mail-address' is not part of -the personal addresses." - :type 'boolean +the personal addresses. + +If set to t hide all personal addresses; if set to some number, +at most so so many addresses." + :type '(choice (boolean :tag "Hide addresses") + (natnum :tag "Maximum number to show")) :group 'mu4e-main) (defcustom mu4e-main-hide-fully-read nil @@ -285,19 +289,35 @@ for aligning them." (current-time-string baseline-t) "Never")))) +(defun mu4e--personal-addresses () + "Return menu information regarding personal addresses." + (let* ((maybe-num mu4e-main-hide-personal-addresses) + (addrs (mu4e-personal-addresses)) + (addrs (if (natnump maybe-num) ;; all or subset? + (seq-take addrs maybe-num) + addrs))) + ;; show personal addresses, or some subset? + (if (eq mu4e-main-hide-personal-addresses t) + "" + (mu4e--key-val "personal addresses" + (if addrs (string-join addrs ", ") "none"))))) + (defun mu4e--main-redraw () - "Redraw the main buffer if there is one. -Otherwise, do nothing." + "Redraw the main buffer if there is one." (when-let* ((buffer (get-buffer mu4e-main-buffer-name)) (buffer (and (buffer-live-p buffer) buffer))) (with-current-buffer buffer (let* ((inhibit-read-only t) (pos (point)) - (addrs (mu4e-personal-addresses)) (max-length (seq-reduce (lambda (a b) (max a (length (plist-get b :name)))) (mu4e-query-items) 0))) - (mu4e-main-mode) + + ;; must be in mu4e-main-mode, or the bindings + ;; handling won't work. + (unless (eq major-mode 'mu4e-main-mode) + (mu4e-main-mode)) + (erase-buffer) (insert "* " @@ -345,16 +365,7 @@ Otherwise, do nothing." (mu4e--key-val "in store" (format "%d" (plist-get mu4e--server-props :doccount)) "messages") - (if mu4e-main-hide-personal-addresses "" - (mu4e--key-val "personal addresses" - (if addrs (string-join addrs ", " ) "none")))) - - (if mu4e-main-hide-personal-addresses "" - (unless (mu4e-personal-address-p user-mail-address) - (mu4e-message (concat - "Tip: `user-mail-address' ('%s') is not part " - "of mu's addresses; add it with 'mu init - --personal-address='") user-mail-address))) + (mu4e--personal-addresses)) (goto-char pos))))) (defun mu4e--main-view-queue () @@ -394,13 +405,11 @@ If `mu4e-split-view' equals \\='single-window, show a mu4e menu instead." (if (eq mu4e-split-view 'single-window) (mu4e--main-menu) - (let ((buf (get-buffer-create mu4e-main-buffer-name)) - (inhibit-read-only t)) - (with-current-buffer buf - (mu4e--main-redraw)) + (let* ((buf (get-buffer-create mu4e-main-buffer-name)) + (inhibit-read-only t)) + (mu4e--main-redraw) (mu4e-display-buffer buf t) - (run-hooks 'mu4e-main-rendered-hook))) - (goto-char (point-min))) + (run-hooks 'mu4e-main-rendered-hook)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Interactive functions @@ -409,13 +418,12 @@ instead." "Toggle sending mail mode, either queued or direct." (interactive) (unless (file-directory-p smtpmail-queue-dir) - (mu4e-error "`smtpmail-queue-dir' does not exist")) + (mu4e-warn"`smtpmail-queue-dir' does not exist")) (setq smtpmail-queue-mail (not smtpmail-queue-mail)) (mu4e-message (concat "Outgoing mail will now be " (if smtpmail-queue-mail "queued" "sent directly"))) - (unless (or (eq mu4e-split-view 'single-window) - (not (buffer-live-p (get-buffer mu4e-main-buffer-name)))) + (unless (or (eq mu4e-split-view 'single-window)) (mu4e--main-redraw))) (defun mu4e--main-menu () |
