summaryrefslogtreecommitdiff
path: root/mu4e
diff options
context:
space:
mode:
authorDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2026-02-14 09:31:59 +0200
committerDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2026-02-14 12:10:47 +0200
commita031b271dfb426560b92a63628d58ecd2c435902 (patch)
tree72386863bb4f5b8461ec55705a5aec5ec357ae21 /mu4e
parentd04f3de102ca570374f51edfdbfd45fbde13d385 (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.el58
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 ()