Commit Graph

7844 Commits

Author SHA1 Message Date
fa4ec511e2 build: bump version to 1.12.14-pre5 2026-08-20 15:04:27 -07:00
4ec222f653 mu4e: implement mu4e-dbus-mode
For emacsen that support DBus, implement mu4e-dbus-mode, an experimental mode to
make some mu4e runtime information available outside emacs.
2026-08-20 15:04:27 -07:00
043f0ce337 mu-scm: don't depend on dir order in tests
Some of the tests were using (mfind "") to find messages, but since some
messages don't have dates the order is implicitly defined by the directory
order. This usually works, but not always (i.e. guix).

So let's make the behavior deterministic.

Fixes #2888
2026-08-20 15:04:27 -07:00
b855a0dc93 scm: mention guix in manual
Fixes #2889.
2026-08-20 15:04:27 -07:00
8afef75b30 scm: add convenience methods root-maildir, personal-addresses
For a store, so to avoid assoc-ref.
2026-08-20 15:04:27 -07:00
52f44653b0 scm: return empty lists instead of #f for some methods
Some methods that returned lists would return ~#f~ when there were no
results (e.g., to, from, cc, bcc, references, labels); however, it's
nicer to return an empty list instead, which what we now do. Technically a
breaking change, but justified while we are still 'experimental'.
2026-08-20 15:04:27 -07:00
20efd31f3d build: bump version to 1.12.14-pre4 2026-08-20 15:04:27 -07:00
410ff46881 improve invoking external commands
- don't make assumptions on where programs live (i.e., /bin/sh, /bin/rm,
/bin/mv) are not universal
- dont invoke shell when unnecessary
- improve error-handling
2026-08-20 15:04:27 -07:00
9f69055ef9 test-mu-store: bump timeout in test
Seems some systems are quite slow, so bump the time-out.

Fixes #2886.
2026-08-20 15:04:27 -07:00
fae40680cc mu4e: update versions section in manual 2026-08-20 15:04:27 -07:00
804b1180fe mu-server: improve error message for temp-file
Make it clear what exactly could not be created.
2026-08-20 15:04:27 -07:00
9b3e21081e test-mu-message: use join_path for test-path
We were not doing that correctly, missing a "/" between dirname and filename.
2026-08-20 15:04:27 -07:00
5f7686a767 test-utils: fix some clang-tidy warnings 2026-08-20 15:04:27 -07:00
ad327d3acb test-utils: use remove_directory 2026-08-20 15:04:27 -07:00
d258c77661 utils/file: rework remove_directory, add test
Make remove_directory not much less ugly, but at least more robust, e.g., when
the "rm" binary is not at /bin/rm

Add unit test
2026-08-20 15:04:27 -07:00
95843d4e8a build: bump version to 1.12.14-pre3
Unlike earlier development releases, we use the "pre"` suffix, so 1.12.14-pre3
rather than 1.12.14-dev3. This for compatibility with the version-to-string
Elisp function that some external programs use to parse version information.
2026-08-20 15:04:27 -07:00
c1181be157 Makefile: small tweaks 2026-08-20 15:04:27 -07:00
4acf708eb9 logging: don't g_message with --quiet
When `--quiet` is passed (and not --debug), do not log with g_message at
startup.
2026-08-20 15:04:27 -07:00
976b6210fc message: ensure message text is valid utf8
Seems this is not guaranteed, so convert if needed.
2026-08-20 15:04:27 -07:00
5c6642c9b9 utils: add utf8_clean helper
To morph text into valid utf8 if it isn't already.
2026-08-20 15:04:27 -07:00
78539e8900 Fixed some broken links. 2026-08-20 15:04:27 -07:00
612038d75a Fixed some typos. 2026-08-20 15:04:27 -07:00
b177bb1589 Add the mu4e-view-mark-and-next function. 2026-08-20 15:04:27 -07:00
b021b1e85c mu4e.texi: make reply-to-self avoidance clearer
Move near where it's useful

Fixes #2876
2026-08-20 15:04:27 -07:00
3534a9fee9 mu4e.texi: update doc for mu4e-view-mime-parts
mu4e-view-for-each-part is long gone.

Fixes #2877.
2026-08-20 15:04:27 -07:00
f7448ff7b5 mu4e-helpers: restore missing mu4e-get-time-date
It was in use in mu4e-headers-custom-markers, but somehow got lost back in 2021,
it seems. Restore it.

Fixes #2879.
2026-08-20 15:04:27 -07:00
52fe171788 mu4e-quit: improve docstring 2026-08-20 15:04:27 -07:00
23e16f7c41 mu4e-folders: improve mu4e-maildir-shortcuts docstring
... and :type
2026-08-20 15:04:27 -07:00
e3ec84386c Mainly typo and grammar fixes. 2026-08-20 15:04:27 -07:00
017e6c237e Em dashes everywhere instead of en dashes for consistency 2026-08-20 15:04:27 -07:00
db375d8841 Avoid using @xref in the middle of a sentence to avoid the capitalized "See"
word.
2026-08-20 15:04:27 -07:00
cc45f4dc77 Fixed cross references with repeated "the", like "in the The headers view" 2026-08-20 15:04:27 -07:00
5b8810fc8a Updated the definition of mu4e-bookmarks in mu4e.texi to match that from
mu4e-bookmarks.el
2026-08-20 15:04:27 -07:00
9ba925da44 build: bump version to 1.12.14-dev2 2026-08-20 15:04:27 -07:00
37eedffa65 mu4e.texi: tweaks 2026-08-20 15:04:27 -07:00
b698c1a89f mu4e-headers: set header-line after query
We only have the complete query-info when we get :found,
so update the header-line only then.

Fixes #2875
2026-08-20 15:04:26 -07:00
7526777c7d mu4e: implement mu4e-quit-hook
As seen on r/emacs.
2026-08-20 15:04:26 -07:00
20d18cb7ee scm.texi: some improvements in text 2026-08-20 15:04:26 -07:00
056540b8e8 utils: avoid fmt:gmtime/fmt::localtime
They've been deprecated and give build warnings with new enough libfmt.
2026-08-20 15:04:26 -07:00
79c903d557 build: bump version to 1.12.14-dev1 2026-08-20 15:04:26 -07:00
913190f532 mu4e.texi: be explicit about :labels
As noted in #2870, this isn't explicitly mentioned in discussion about labels,
so unless you read the mu4e-headers-fields / mu4e-view-fields docstrings, you
may guess wrong.
2026-08-20 15:04:26 -07:00
42bc5a19ad build: bump version to 1.12.13
New stable release 1.12.13. This contains improvements to the build process, the
Guile/Scheme binding ("SCM") and a new experimental "labels" sub-command. Let's
start with that last one.

* Labels

There's a new, experimental feature: *labels*. Labels are similar to the
existing "tags", but better integrated with both mu and mu4e,

You can search for message with a given label using 'label:', e.g
  $ mu find label:tupperware

Or add/remove labels, e.g., remove the label "planet" and add the label
"dwarf-planet" to all messages that have "pluto" in their subject:

  $ mu labels update "subject:pluto" --labels -planet,+dwarf-planet

Clear all labels from messages with the label "boring":

  $ mu labels clear "label:boring"

Labels are only stored in mu's database, and do not write to the message file
themselves. I.e., when you remove your database, your labels are gone. However,
you can use the `mu labels export` and `mu labels import` to save/restore them;
see the mu-labels(1) man-page for details.

In mu4e, you can do the same using `mu4e-headers-mark-for-label` (bound to `l`)
and clearing with `mu4e-headers-mark-for-unlabel` (bound to 'L').

I.e., mark some messages (or the current one by default), and in the
headers-buffer type
   l -planet +dwarf-planet RET
This works similar to the other marks.

There's autocompletion as well, both for search (label:) and marking (after +/-)

It's experimental, but it seems quite useful so far. See the man-page for
further details.

* SCM

The SCM/Guile bindings have been improved substantially; some common operations
are much faster (algorithmically). Also, the "glue" was added to interact with
Emacs and the "geiser" package, either with or without mu4e.

For the "plain Emacs" integraticon, see the Mu-SCM documentation, section
`Hooking up with GNU/Emacs and Geiser'.

For the mu4e integration, see the chapter `Using mu's SCM/Guile integration' in
the mu4e reference manual; or check the `mu4e-mu-scm-server' configuration
variable and the `mu4e-mu-scm-repl' command.

Future version will add more, and start answering questions like "Why would I
even want SCM bindings?!" :-)

* Building

- by default, tests are built 'lazily', i.e., only when running tests;
  this speeds up the build considerably for people that don't want to run
  tests (there's also -Btest=disabled of course)

- when available/found, mu now (by default) uses the system versions of CLI11
  and libfmt, rather than mu's "vendored" versions.

  You can influence where the build system (i.e., meson) looks through the
  `PKG_CONFIG_PATH` environment variable (see the pkg-config/pkgconf man-pages),
  and you can disable
2026-08-20 15:04:26 -07:00
652b5ccbea labels: tighten labels regexp 2026-08-20 15:04:26 -07:00
54aaaf98c1 mu4e: labels tweaks
Make the code a little clearer, and catch error earlier.

Allow for comma-separated labels.
2026-08-20 15:04:26 -07:00
47fdc73bfb mu4e: use string-join
No need for mapconcat / identity.
2026-08-20 15:04:26 -07:00
31b5b142a1 IDEAS.org: move some tickets from issues list
No need to clutter our issues list.

Closes #2671
Closes #2647
2026-08-20 15:04:26 -07:00
c16fffed22 build: bump version to 1.12.13-dev2 2026-08-20 15:04:26 -07:00
656aa41ada rename 'mu label' -> 'mu labels'
Update names, docs etc.
2026-08-20 15:04:26 -07:00
755c453b9f mu4e-server: don't error on nil maildirs/label
Use plist-member to match :labels / :maildirs in the server-response.
2026-08-20 15:04:26 -07:00
74c0a231b7 scm: small improvements to manual 2026-08-20 15:04:26 -07:00