Notmuch 0.23 (2016-10-03)
General (Xapian 1.4+)
Compiling against Xapian 1.4 enables several new features.
Support for single argument date: queries
date:<expr>
is equivalent to date:<expr>..<expr>
.
Support for blocking opens
When opening a database notmuch by default will wait for another process to release a write lock, rather than returning an error.
Support for named queries
Named queries (also known as 'saved searches') can be defined with a
query:name
format. The expansion of these queries is stored in the
database and they can be used from any notmuch client.
Library
Message property API
libnotmuch now supports the attachment of arbitrary key-value pairs to messages. These can be used by various tools to manage their private data without polluting the user tag space. They also support iteration of values with the same key or same key prefix.
Bug fix for notmuch_directory_set_mtime
Update cached mtime to match on-disk mtime.
CLI
Support for compile time options
A group of built_with
keys is now supported for notmuch
config. Initial keys in this group are compact
, field_processor
,
and retry_lock
.
Dump/Restore support for configuration information and properties
Any configuration information stored in the database (initially just named queries) is dumped and restored. Similarly any properties attached to messages are also dumped and restored. Any new information in the dump format is prefixed by '#' to allow existing scripts to ignore it.
Emacs
Make notmuch-message-mode use insert for fcc
Notmuch-message-mode now defaults to using notmuch insert for
fcc. The old file based fcc behaviour can be restored by setting the
defcustom notmuch-maildir-use-notmuch-insert
to nil.
When using notmuch insert, notmuch-fcc-dirs
must be a subdirectory
of the mailstore (absolute paths are not permitted) followed by any
tag changes to be applied to the inserted message. The tag changes
are applied after the default tagging for new messages. For example
setting the header to "sentmail -inbox +sent" would insert the
message in the subdirectory sentmail of the mailstore, add the tag
"sent", and not add the (normally added) "inbox" tag.
Finally, if the insert fails (e.g. if the database is locked) the user is presented with the option to retry, ignore, or edit the header.
Make internal address completion customizable
There is a new defcustom notmuch-address-internal-completion
which
controls how the internal completion works: it allows the user to
choose whether to match on messages the user sent, or the user
received, and to filter the messages used for the match, for example
by date.
Allow internal address completion on an individual basis
There is a new function notmuch-address-toggle-internal-completion
(by default it has no keybinding) which allows users who normally
use an external completion command to use the builtin internal
completion for the current buffer.
Alternatively, if the user has company-mode enabled, then the user
can use company mode commands such as company-complete
to
activate the builtin completion for an individual completion.
Resend messages
The function notmuch-show-resend-message
(bound to b
in show
and tree modes) will (attempt to) send current message to new
recipients. The headers of the message won't be altered (e.g. To:
may point to yourself). New Resent-To:
, Resent-From:
and so on
will be added instead.
Face customization is easier
New faces notmuch-tag-unread
, notmuch-tag-flagged
,
notmuch-tag-deleted
, notmuch-tag-added
,
notmuch-search-flagged-face
and notmuch-search-unread-face
are
now used by default. Customize notmuch-faces
to modify them.
Omit User-Agent header by default when sending mail
Ruby Bindings
Add support for notmuch_database_get_all_tags
Go Bindings
Go bindings moved to contrib
Add support for notmuch_threads_t
and notmuch_thread_t
Fixed constant values so they are not all zero anymore
Previously, it was impossible to open writable database handles,
because DATABASE_MODE_READ_ONLY
and DATABASE_MODE_READ_WRITE
were
both set to zero.
The same issue occurred with sort modes.