Commit Graph

2583 Commits

Author SHA1 Message Date
39b7cf2e9d mu4e: update queue handling ui
Hide queue commands from main-view when smtpmail-queue-dir is nil.
Update docs.
2026-08-20 15:05:30 -07:00
dcc537c545 mu4e-view: tweak html generation
Use the message plist.
2026-08-20 15:05:30 -07:00
e323ec51fb mu4e-view: clear up message massaging
Remove some non-working / rarely useful options. Fix
show-all-mime-part.
x
2026-08-20 15:05:30 -07:00
06b8d3fc5b mu4e-view: improve html support, link-indicators
Use the updated support for HTML messages (even converting plain-text
only). Update the link detection, clean up.

Add links for e-mail addresses too, not just ones that start with
mailto:.

Only show link-indicators when mu4e-view-go-to-url or mu4e-view-save-url
are invoked, or with mu4e-view-always-show-indicator set to non-nil.

Update docs.
2026-08-20 15:05:30 -07:00
94051898a5 mu4e-mime-parts: handle html parts and conversion
Produce HTML-versions of messages, even plain-text ones without an
HTML-part. This allows for uniform handling, e.g. showing a message in
an external browser.

Implement linkification as well.
2026-08-20 15:05:30 -07:00
8e638a639a mu4e: fix byte-compile warnings 2026-08-20 15:05:30 -07:00
2d022f1756 mu4e: cite region in reply
When replying to a message with some part selected / marked, cite only
that part.

Implements ancient feature-request, issue #44.
2026-08-20 15:05:30 -07:00
9b6a277eca mu4e: allow listing org-links
New command mu4e-org-agenda-links to pop up a buffer with a tabulated
list of the mu4e links in your org-agenda-files
x
This is just a little experiment.
2026-08-20 15:05:30 -07:00
8d1919cd36 mu4e: clean up temp file handling
Use a temp file directory per mu4e session

Remove files when a buffer is closed, not after 30 secs
2026-08-20 15:05:30 -07:00
008529696a mu4e: remove emacs < 28.1 shims
We can depend on more functions now, so can get rid of our own versions.
2026-08-20 15:05:30 -07:00
a27398ae39 mu4e-draft: fix friendly-name rx
Corner-case, but it was incorrect.
2026-08-20 15:05:30 -07:00
cbe64d4cae mu4e: emacs 28.1 modernization
We can now use setq-local, length>, string-empty-p, affixations
functions and "choice" defcustoms.
2026-08-20 15:05:30 -07:00
dca5334295 Remove unnecessary eager loads of ido 2026-08-20 15:05:29 -07:00
0067fac944 mu4e-view: create dummy summary buffer
Some Gnus commands depend on the existence of a *Summary* buffer; and in
older versions of mu4e we created it, since mu4e depended on it. It no
longer does, but some gnus command users may want to try, do.

So create the Summary buffer once again.
2026-08-20 15:05:29 -07:00
ba533ef92c mu4e-view: normalize internal name
mu4e~gnus-article-mime-handles => mu4e--view-gnus-article-mime-handles
2026-08-20 15:05:29 -07:00
f9751cedbd mu4e-view: silence unsupported mime-part errors
Silence any error when we cannot get the filename for a handle. Not the
most elegant, but works around it... might help for #2923.
2026-08-20 15:05:29 -07:00
105a93dd9e mu4e-view: avoid cleaning up too much
In mu4e--view-cleanup-message-text (used for "reply citing") we were
removing all gnus "buttons", however gnus also includes buttons for
addresses, URLs etc., which should stay.

So be a bit let eager and only remove gnus-mm-display-part items.

Issue #2922
2026-08-20 15:05:29 -07:00
c09dfc432c mu4e-search: filter out control chars
Help users fat-fingering queries.
2026-08-20 15:05:29 -07:00
2c01b9135c mu4e-compose: use text/x-diff default
... in mu4e-compose-reply-include-mime-types, add text/x-diff as well.
2026-08-20 15:05:29 -07:00
04c02573e1 mu4e-view: improve html/text toggling
Fix the mu4e-view-toggle-html switching, which could re-insert body
parts when an Attachments: header was present.

I.e. specifically toggle the part in the body.
2026-08-20 15:05:29 -07:00
e432d3d626 mu4e-window: don't return dead linked window
It can happen, let it create a new buffer instead.
2026-08-20 15:05:29 -07:00
dd9c73bb8a mu4e-headers: restore view-win in search exec
We must restore the view-win from the correct context (i.e.: the
headers-buffer/window)

Fixes #2920.
2026-08-20 15:05:29 -07:00
d07139f5b4 mu4e-view: cleanup reply text
Remove some of the gnus attachment residue.
2026-08-20 15:05:29 -07:00
94cfb201f0 mu4e-view: tweak html toggling
Ensure the buffer is marked as writable when doing the switch.
2026-08-20 15:05:29 -07:00
c491d9c1e0 mu4e.texi: fix misnamed node 2026-08-20 15:05:29 -07:00
e1e64db7f0 mu4e: update docs 2026-08-20 15:05:29 -07:00
e6e463fc95 mu4e: mu4e-mime-parts: small cleanups
Small refactorings in mu4e--part-affixation, factoring out some shared
code.
2026-08-20 15:05:29 -07:00
2a3f9a1399 improve documentation 2026-08-20 15:05:29 -07:00
b33f1450f0 mu4e-view: update field handling
Restrict fields in mu4e-view-fields. Make the defcustom a bit more
helpful by checking for valid fields.

Add :labels to default fields

Remove some unused code.
2026-08-20 15:05:29 -07:00
0aff86690a mu4e/NEWS: mention sign-signed-replies, doc update 2026-08-20 15:05:29 -07:00
f45dc9ddb7 mu4e-draft: add "{sign,encrypt}-signed-replies" to crypto options
This scratches an itch of mine: being able to sign messages when they're replies
to signed messages.

Signed-off-by: Sergio Durigan Junior <sergiodj@sergiodj.net>
2026-08-20 15:05:29 -07:00
93a6e73940 mu4e: improve mime-type display
Better handle some 'special' MIME-types where we need a tiny bit of
processing/special casing to invent a proper file-name.

Include size information when displaying the MIME-types in the actions
menu.
2026-08-20 15:05:29 -07:00
f353e2dacf message: improve attachment heuristics
Do not consider calender-invitations "attachments"; do mark as
"calendar". Do recognize application/ics as calendar messages.

Update mime-object to expose a message part's disposition.

Change the "is-attachment" heuristic to include inline parts if they
have a filename parameter in their content-disposition.

Note that this doesn't change things radically; the delta is +69 and
-202 for ~6500 attachments.
2026-08-20 15:05:29 -07:00
e526386395 mu4e-view: support icons for message view
Support showing the icons in the message view as well.
(see previous commit)
2026-08-20 15:05:29 -07:00
1dc02a72ac mu4e: support icons for mime-types
In mu4e-view-mime-part-action, support icons or, well, "icons".

For this to work user needs to install a package like nerd-icons and set
mu4e-file-name-to-icon-function to #'nerd-icons-icon-for-file. (see
docstring for details)
2026-08-20 15:05:29 -07:00
23e28fd1ae mu4e: be more careful deleting frames
Remember the exact frame we created, and only kill that one.

Ensure mu4e-compose-post-hook fires at most once.
2026-08-20 15:05:29 -07:00
0ca6389c03 mu4e: small code cleanups
Update some old code (we have 28.1 now); mostly:
- (= (length lst) x) ===> (length== lst x)
- (cdr (assoc ...)) ==> alist-get
2026-08-20 15:05:29 -07:00
65b3dbb5c9 mu4e-view: extract shared headers function refact
Extract the header insertion code from mu4e--view-gnus-display-mime into
a new mu4e--view-insert-headers function.

Add a fallback label in mu4e--view-gnus-insert-header for fields not in
mu4e-header-info, such as :user-agent.
2026-08-20 15:05:29 -07:00
f9760e8f98 mu4e.texi: small improvements
Add mu-move example, remove some obsolete comments. Update version.
2026-08-20 15:05:29 -07:00
1525d350a8 mu4e-headers: fix mu4e--in-headers-context
Two problems:

1) In mu4e--in-headers-context we went through the whole dance of
   finding the headers buffer even if we were already there. That's
   unnecessary and incidentally makes it impossible to go back from the
   "Found ..." line in the headers-buf to the previous one.

Fixes #2913

2) We didn't handle the case where there _is_ no headers window, such as
   when in single-window mode.
2026-08-20 15:05:29 -07:00
86b3b47470 mu4e-view: unbreak mu4e-view-toggle-html
And add/remove the clickables as needed.
2026-08-20 15:05:29 -07:00
57fd152296 mu4e-view: don't make clickables when already
Don't make clickable links when displaying in html mode already, since
in that case the html-render handles it, and we shouldn't mess up the
display.

As discussed in issue #2094.
2026-08-20 15:05:29 -07:00
d7b0001f96 mu4e-draft/headers: resync headers-buf
After restoring the window configuration, we could end up pointing at
the wrong message.

Let's try harder to restore... issue #2902.
2026-08-20 15:05:29 -07:00
3527e20f5c mu4e-draft: decode utf-8 bytes in headers
Another attempt at fixing the old #2722 decoding issue.
2026-08-20 15:05:29 -07:00
695da3e1ed mu4e-draft: make compose frame config buffer-local
This should help when multiple compose windows are present, such as in
issue #2912.
2026-08-20 15:05:29 -07:00
9acf8a67de mu4e.texi: add note about discouraged alternatives 2026-08-20 15:05:28 -07:00
939582e98a mu4e-mime-parts: fix actions
Use mm-pipe-part rather then gnus-article-pipe-part since we no longer
have the gnus buffer available.
2026-08-20 15:05:28 -07:00
1c846b9e14 mu4e-headers: avoid showing up in the wrong frame
Don't switch buffers for background searches, that might show up in the
wrong frame.

This hopefully helps for #2766.
2026-08-20 15:05:28 -07:00
5e8e3b5a36 mu4e-draft: handle corner-case decoding issue
When there are raw utf-8 headers.

Should help for #2722.
2026-08-20 15:05:28 -07:00
8c067f8726 mu4e-compose: allow including parent mime parts
mu4e-compose-reply-include-mime-types specifies the mime-types for
message attachments that should be included in replies, with the default
set to "text/x-patch" -- i.e., patches are included in replies, so you
can comment on them.

As mentioned in #2896.
2026-08-20 15:05:28 -07:00