There are a few things that depend on the context in Mu4e, some of which are mentioned in the documentation…
It can be useful to switch between different sets of settings in Mu4e; a typical example is the case where you have different e-mail accounts for private and work email, each with their own values for folders, e-mail addresses, mailservers and so on.
Personally I need to be in the right context since I use multiple accounts in my setup. For instance:
- The right sender needs to be selected when composing an email
- The right variables
mu4e-refile-folderneed to be correct when refiling/archiving emails
- And more…
As it turns out, the right context is not always selected when switching mailboxes in the way my contexts are configured. Meaning I need a more robust solution.
When switching to a mailbox using
timu-mu4e-jump-to-maildir – especially into a mailbox of a different account – Mu4e does not switch the context correctly. At least that has been my experience.
The code I use has a prerequisite however. The email directories (
maildir) for each account need to have the exact same name as the account in the Mu4e inside Emacs.
The function uses
mu4e~headers-mode-line-label to get the current
maildir string and uses REGEXP to obtain the name of the account this then used as the current context using
(defun timu-mu4e-switch-context () "Switch context of the current maildir. Uses `mu4e~headers-mode-line-label' and regex to get the context." (let* ((new-context (let ((input mu4e~headers-mode-line-label)) (string-match "maildir:\"/\\(.+\\)/.*\"" input) (match-string 1 input)))) (if new-context (mu4e-context-switch t new-context) (mu4e-context-switch t "icloud"))))
This function is then used as a
mu4e-headers-found-hook which is of course applied whenever I switch to a mailbox, meaning to a headers view.
(add-hook 'mu4e-headers-found-hook #'timu-mu4e-switch-context)
I am certain that there exists a better solution out there. I could probably rewrite the setup of the Mu4e context in my configuration to make it more robust.
But since the current solution works wonders for me – I know this is hyperbolic – I cannot be bothered to look more into it.