diff --git a/mu4e/mu4e-folders.el b/mu4e/mu4e-folders.el index 421ba8c5..888d69b8 100644 --- a/mu4e/mu4e-folders.el +++ b/mu4e/mu4e-folders.el @@ -92,11 +92,13 @@ This makes it possible to quickly go to a particular maildir (folder), or quickly moving messages to them (e.g., for archiving or refiling). -Each of the list elements is a plist with at least: +Each of the list elements is a plist with at least a `:maildir' - the maildir for the shortcut (e.g. \"/archive\") -`:key' - the shortcut key. Optionally, you can add the following: +`:key' - the shortcut key, can also be a string that gets +displayed in the main view. +`:name' - name of the maildir to be displayed in main-view. `:hide' - if t, the shortcut is hidden from the main-view and speedbar. `:hide-unread' - do not show the counts of unread/total number @@ -164,7 +166,8 @@ This is compatibile with `mu4e-bookmarks'." (seq-map (lambda (item) (let* ((maildir (plist-get item :maildir)) - (item (plist-put item :name maildir)) + (name (or (plist-get item :name) maildir)) + (item (plist-put item :name name)) (item (plist-put item :query (format "maildir:\"%s\"" maildir)))) item)) ;; we don't need ":maildir", but it's harmless. (mu4e-maildir-shortcuts))) diff --git a/mu4e/mu4e-main.el b/mu4e/mu4e-main.el index 5fb4f824..bbad7dc9 100644 --- a/mu4e/mu4e-main.el +++ b/mu4e/mu4e-main.el @@ -210,7 +210,7 @@ clicked." with longest = (mu4e--longest-of-maildirs-and-bookmarks) with queries = (plist-get mu4e--server-props :queries) for m in mds - for key = (string (plist-get m :key)) + for key = (plist-get m :key) for name = (plist-get m :name) for query = (plist-get m :query) for qcounts = (and (stringp query) @@ -226,9 +226,12 @@ clicked." when (not (and mu4e-main-hide-fully-read (eq unread 0))) concat (concat ;; menu entry - (mu4e--main-action-str - (concat "\t* [j" key "] " name) - (concat "j" key)) + (cond ((characterp key) + (mu4e--main-action-str + (concat "\t* [j" (string key) "] " name) + (concat "j" (string key)))) + ((stringp key) (concat "\t* " key " " name)) + (t (concat "\t* " name))) ;; append all/unread numbers, if available. (if qcounts (let ((unread (plist-get (car qcounts) :unread)) diff --git a/mu4e/mu4e.texi b/mu4e/mu4e.texi index 6ad347f7..dbd0a65f 100644 --- a/mu4e/mu4e.texi +++ b/mu4e/mu4e.texi @@ -2016,7 +2016,9 @@ quick access to, for example: (:maildir "/archive" :key ?a) (:maildir "/lists" :key ?l) (:maildir "/work" :key ?w) - (:maildir "/sent" :key ?s))) + (:maildir "/sent" :key ?s) + (:maildir "/lists/project_a/list_b" :key "Lab") + (:maildir "/lists/project_c/list_x" :key ?x :name "Project X"))) @end lisp This sets @key{i} as a shortcut for the @t{/inbox} folder --- effectively a @@ -2025,7 +2027,9 @@ query @t{maildir:/inbox}. There is a special shortcut @key{o} or @key{/} for choose from @emph{all} maildirs that you have. There is support for autocompletion; note that the list of maildirs is determined when @t{mu4e} starts; if there are changes in the maildirs while @t{mu4e} is running, you -need to restart @t{mu4e}. +need to restart @t{mu4e}. Optionally, you can specify a name to be displayed +in the main view. The key can also be a string, in that case the string gets +displayed in the main view. This is useful e.g. for calling custom Hydras. Each of the folder names is relative to your top-level maildir directory; so if you keep your mail in @file{~/Maildir}, @file{/inbox} would refer to