Re: [PATCH] emacs: PATCH [1/2] mail user agent

Subject: Re: [PATCH] emacs: PATCH [1/2] mail user agent

Date: Thu, 03 Jun 2021 21:22:44 +0300

To: Tory S. Anderson, David Bremner


From: Tomi Ollila

On Thu, Jun 03 2021, Tory S. Anderson wrote:

> Nice follow-upabout what other browsers do!
> David Bremner <> writes:
>> Tomi Ollila <> writes:
>>> On Mon, May 31 2021, David Bremner wrote:
>>>> Tomi Ollila <> writes:
>>>>> I am for 'ripping the bandage off' and not configure mail-user-agent
>>>>> outside of notmuch use (and just require 'notmuch would not set anything...)
>>>>> Could we have some 'compose-mail' variant (different name, of course;
>>>>> I had one in mind but then came off-by one problem... >;) which 
>>>>> configures mail-user-agent just for that use (or something).
>>>> Are you thinking about notmuch-mua-mail (which exists)?
>>>> Tory, did you try the eval-after-load trick I mentioned btw? That seemed
>>>> to work in my testing, and I'm just not sure that customizing a
>>>> notmuch-* variable is much less annoying than adding an eval-after-load to
>>>> reset the variable after notmuch messes with it.
> No, I'm guilty here. I used my patch instead and haven't looked back
> since. I think having to add code lines to an init file is much more
> annoying (and less transparent) than simply having something for which I
> can add a =:custom= line in my use-package statements, or new users just
> use the customizer to explore to. Maybe that's just me, but I feel much
> more comfortable about sharing that config or that suggestion with
> others, too. Explorability is what customizer's big benefit to emacs is,
> so it seems to me a real advantage to have this in there.

mail-user-agent is defcustom in simple.el, starting:

  (defcustom mail-user-agent 'message-user-agent
    "Your preference for a mail composition package.
  Various Emacs Lisp packages (e.g. Reporter) require you to compose an
  outgoing email message.  This variable lets you specify which
  mail-sending package you prefer.

  Valid values include:

    `message-user-agent'  -- use the Message package.
                             See Info node `(message)'.
    `sendmail-user-agent' -- use the Mail package.
                             See Info node `(emacs)Sending Mail'.
    `mh-e-user-agent'     -- use the Emacs interface to the MH mail system.
                             See Info node `(mh-e)'.
    `gnus-user-agent'     -- like `message-user-agent', but with Gnus
                             paraphernalia if Gnus is running, particularly
                             the Gcc: header for archiving.

  Additional valid symbols may be available; check with the author of
  your package for details.  The function should return non-nil if it

Currently if one uses/used customizer to change to something else, which
is saved to .emacs (or somewhere else where custom-file points to), and
then loads notmuch, it suddenly changes to 'notmuch-user-agent.

AFAIU the change your patch did does not change that, one just has to
customize notmuch-mail-user-agent.

IMO that makes things messy.

If there were option to somehow magically add more values to the
mail-user-agent customize menu while loading notmuch.el then one
could just directly choose notmuch-user-agent from that menu.

Otherwise I don't see other options than document how to do that
configuration (and drop that setq and add NEWS entry).


>>>> Still waiting for feedback from notmuch users that actually use M-x
>>>> compose-mail or other similar generic entry points.
>>> Does anyone know how compose-mail behaves when one has loaded any other
>>> emacs mua (mh, vm, gnus, mu, ...) ?
>> As far as I can tell
>>    vm: only locally binds mail-user-agent
>>    mh-e: used to have a setq mail-user-agent, removed in 2003-ish
>>    mu4e: documents how to set mail-user-agent
>>    rmail: reads mail-user-agent, but does not set
>>    gnus: only locally binds mail-user-agent
>>    wanderlust: tells you how how to set mail-user-agent (and oddly, how
>>                to define conditionaly define a user agent)
>> So I think notmuch is the odd one out here.
>> _______________________________________________
>> notmuch mailing list --
>> To unsubscribe send an email to
> _______________________________________________
> notmuch mailing list --
> To unsubscribe send an email to
notmuch mailing list --
To unsubscribe send an email to