1
0
Fork 0
mirror of https://git.sr.ht/~rjarry/aerc synced 2026-03-14 20:09:49 +01:00
cli mail client
Find a file
Robin Jarry 9e77103592 notmuch: simplify source URL and use automatic discovery
Replace the explicit database path and config file in the source URL
with automatic discovery via libnotmuch (environment variables
NOTMUCH_CONFIG, NOTMUCH_DATABASE, NOTMUCH_PROFILE and XDG conventions).
The source URL hostname is now interpreted as an optional profile name:

    source = notmuch://
    source = notmuch://work

Replace the maildir-store path option with an enable-maildir boolean
(default: true). The maildir root is now always obtained from the
notmuch API via notmuch_config_get(NOTMUCH_CONFIG_MAIL_ROOT) instead
of being specified manually.

Deprecation warnings are emitted when old-style source URLs with
database paths or the maildir-store option are detected in
accounts.conf. Legacy database paths are identified by checking if
the URL hostname+path resolves to an existing file or directory on
disk; if it does not exist, it is treated as a profile name.

The account wizard no longer shells out to "notmuch config get" to
pre-fill the database path. The server field now accepts an optional
profile name instead.

Remove dead code from lib/notmuch/ related to database and config paths.

Implements: https://todo.sr.ht/~rjarry/aerc/325
Changelog-changed: The notmuch maildir-store option has been replaced
 by enable-maildir (default: true). The maildir root is always obtained
 from the notmuch database configuration.
Changelog-changed: The notmuch source URL no longer accepts an explicit
 database path or config query parameter. Database and configuration
 are now discovered automatically. An optional profile name can be
 specified as the URL hostname.
Changelog-deprecated: The notmuch maildir-store option and explicit
 database paths in the source URL now emit deprecation warnings.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: septante <septante@memeware.net>
Acked-by: septante <septante@memeware.net>
2026-03-07 21:39:01 +01:00
.builds mark: add filter-based marking 2025-05-12 13:22:03 +02:00
.github/workflows macos: test build on go 1.23 2025-02-05 12:03:40 +01:00
app notmuch: simplify source URL and use automatic discovery 2026-03-07 21:39:01 +01:00
commands dirtree: add toggle-folder command 2026-03-07 21:15:56 +01:00
completer treewide: run go modernize 2025-12-20 18:06:30 +01:00
config notmuch: simplify source URL and use automatic discovery 2026-03-07 21:39:01 +01:00
contrib treewide: run go modernize 2025-12-20 18:06:30 +01:00
doc notmuch: simplify source URL and use automatic discovery 2026-03-07 21:39:01 +01:00
filters colorize: use strtok to split styleset paths 2026-03-07 21:16:58 +01:00
lib notmuch: simplify source URL and use automatic discovery 2026-03-07 21:39:01 +01:00
models msgstore: add index field for incremental updates 2026-02-09 14:46:27 +01:00
stylesets colorize: highlight trailing whitespace in diff lines 2026-01-07 11:19:30 +01:00
templates templates: convert html parts before quoting 2025-01-14 21:48:24 +01:00
worker notmuch: simplify source URL and use automatic discovery 2026-03-07 21:39:01 +01:00
.codespellrc lib: vendor-in the jwz library 2025-08-28 09:28:16 +02:00
.editorconfig release.sh: update version in GNUMakefile 2023-10-11 10:25:41 +02:00
.gitignore git: Update git ignore list for mac 2025-03-06 17:26:25 +01:00
.golangci.toml golangci-lint: update to v2.6.0 2025-11-02 18:01:13 +01:00
.mailmap mailmap: fix email typo for tim 2024-09-04 15:02:43 +02:00
CHANGELOG.md Release version 0.21.0 2025-08-28 11:34:18 +02:00
CONTRIBUTING.md contributing: fix double backtick 2024-06-17 09:37:42 +02:00
GNUmakefile golangci-lint: update to v2.6.0 2025-11-02 18:01:13 +01:00
go.mod viewer: add html-inline-images option 2025-12-04 13:52:37 +01:00
go.sum patch: fix subcommand argument parsing 2025-11-17 09:51:00 +01:00
LICENSE LICENSE: add license name 2022-02-06 16:04:15 +01:00
main.go worker: pass message channel explicitly to constructor 2026-02-09 14:46:27 +01:00
MAINTAINERS maintainers: add inwit and ferdinandyb 2023-11-22 23:43:28 +01:00
Makefile mk: deprecate BSD make in favor of GNU make 2023-08-11 21:13:39 +02:00
README.md help: list pages dynamically from mandb 2025-12-11 21:37:09 +01:00

aerc

logo

builds.sr.ht status GitHub macOS CI status

aerc is an email client for your terminal.

This is a fork of the original aerc by Drew DeVault.

A short demonstration can be found on https://aerc-mail.org/

Join the IRC channel: #aerc on irc.libera.chat for end-user support, and development.

Usage

On its first run, aerc will copy the default config files to ~/.config/aerc on Linux or ~/Library/Preferences/aerc on MacOS (or $XDG_CONFIG_HOME/aerc if set) and show the account configuration wizard.

If you redirect stdout to a file, logging output will be written to that file:

$ aerc > log

Note that the default HTML filter additionally needs w3m to be installed along with optional unshare (from util-linux) or socksify (from dante-utils).

Documentation

Also available as man pages:

User contributions and integration with external tools:

Installation

Binary Packages

Recent versions of aerc are available on:

And likely other platforms.

From Source

Install the dependencies:

  • go (>=1.23) (Go versions are supported until their end-of-life; support for older versions may be dropped at any time due to incompatibilities or newer required language features.)
  • scdoc
  • GNU make

Then compile aerc:

$ gmake

aerc optionally supports notmuch. To enable it, you need to have a recent version of notmuch, including the header files (notmuch.h). The notmuch build tag should be automatically added. To check if it is, run the following command:

$ ./aerc -v
aerc 0.14.0-108-g31e1cd9af565 +notmuch (go1.19.6 amd64 linux)
                              ^^^^^^^^

If it is not, you can force it before building:

$ gmake GOFLAGS=-tags=notmuch

If you have notmuch headers available but do not want to build notmuch support in aerc, force GOFLAGS to an empty value:

$ gmake GOFLAGS=

To install aerc locally (no need to be root):

$ gmake install PREFIX=~/.local
$ mandb -q ~/.local/share/man

By default, aerc will install config files to directories under /usr/local/aerc, and will search for templates and stylesets in these locations in order:

  • ${XDG_CONFIG_HOME:-~/.config}/aerc
  • ${XDG_DATA_HOME:-~/.local/share}/aerc
  • /usr/local/share/aerc
  • /usr/share/aerc

At build time it is possible to add an extra location to this list and to use that location as the default install location for config files by setting the PREFIX option like so:

# gmake PREFIX=/custom/location
# gmake install PREFIX=/custom/location
# mandb -q /custom/location/share/man

This will install templates and other config files to /custom/location/share/aerc, and man pages to /custom/location/share/man. This extra location will have lower priority than the XDG locations but higher than the fixed paths.

Contributing

Anyone can contribute to aerc. Please refer to the contribution guidelines

Resources

Ask for support or follow general discussions on ~rjarry/aerc-discuss@lists.sr.ht.

Send patches and development related questions to ~rjarry/aerc-devel@lists.sr.ht.

Instructions for preparing a patch are available at git-send-email.io

Subscribe to release announcements on ~rjarry/aerc-announce@lists.sr.ht

Submit confirmed bug reports and confirmed feature requests on https://todo.sr.ht/~rjarry/aerc.

Send security vulnerability reports via emails to ~rjarry/aerc-security@lists.sr.ht encrypted with the GPG key located at contrib/signing-key.asc (fingerprint DC07 18E3 22E2 C760 5EBD C831 4695 7EC0 8FD0 FE90).

License.

Change log.