init: pristine aerc 0.20.0 source
This commit is contained in:
@@ -0,0 +1,321 @@
|
||||
AERC-ACCOUNTS(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-accounts - account configuration file format for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
The _accounts.conf_ file is used for configuring each mail account used for
|
||||
aerc. It is expected to be in your XDG config home plus _aerc_, which defaults
|
||||
to _~/.config/aerc/accounts.conf_. This file must be kept secret, as it may
|
||||
include your account credentials. An alternate file can be specified via the
|
||||
_--accounts-conf_ command line argument, see *aerc*(1).
|
||||
|
||||
If _accounts.conf_ does not exist, the *:new-account* configuration wizard will
|
||||
be executed automatically on first startup.
|
||||
|
||||
This file is written in the ini format where each *[section]* is the name of an
|
||||
account you want to configure, and the keys & values in that section specify
|
||||
details of that account's configuration. Global options may be configured by
|
||||
placing them at the top of the file, before any account-specific sections. These
|
||||
can be overridden for an account by specifying them again in the account
|
||||
section. In addition to the options documented here, specific transports for
|
||||
incoming and outgoing emails may have additional configuration parameters,
|
||||
documented on their respective man pages.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Note that many of these configuration options are written for you, such as
|
||||
*source* and *outgoing*, when you run the account configuration wizard
|
||||
(*:new-account*).
|
||||
|
||||
*archive* = _<folder>_
|
||||
Specifies a folder to use as the destination of the *:archive* command.
|
||||
|
||||
Default: _Archive_
|
||||
|
||||
*check-mail* = _<duration>_
|
||||
Specifies an interval to check for new mail. Mail will be checked at
|
||||
startup, and every interval. IMAP accounts will check for mail in all
|
||||
unselected folders, and the selected folder will continue to receive
|
||||
PUSH mail notifications. Maildir/Notmuch folders must use
|
||||
*check-mail-cmd* in conjunction with this option. See *aerc-maildir*(5)
|
||||
and *aerc-notmuch*(5) for more information.
|
||||
|
||||
Setting this option to _0_ will disable *check-mail*
|
||||
|
||||
Example:
|
||||
*check-mail* = _5m_
|
||||
|
||||
Default: _0_
|
||||
|
||||
*copy-to* = _<folder1,folder2,folder3...>_
|
||||
Specifies a comma separated list of folders to copy sent mails to,
|
||||
usually _Sent_.
|
||||
|
||||
By default, the mail is copied to no folders;
|
||||
|
||||
*copy-to-replied* = _true_|_false_
|
||||
In addition of *copy-to*, also copy replies to the folder in which the
|
||||
replied message is.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*strip-bcc* = _true_|_false_
|
||||
Strip _Bcc_ headers before sending emails. This also affects local
|
||||
copies of the sent messages (*copy-to* and *copy-to-replied*).
|
||||
|
||||
Some email providers/backends automatically strip _Bcc_ headers before
|
||||
dispatching the messages to recipients. Double check before setting this
|
||||
to _false_ to avoid leaking any private information.
|
||||
|
||||
Default: _true_
|
||||
|
||||
*default* = _<folder>_
|
||||
Specifies the default folder to open in the message list when aerc
|
||||
configures this account.
|
||||
|
||||
Default: _INBOX_
|
||||
|
||||
*folders* = _<folder1,folder2,folder3...>_
|
||||
Specifies the comma separated list of folders to display in the sidebar.
|
||||
Names prefixed with _~_ are interpreted as regular expressions.
|
||||
|
||||
By default, all folders are displayed.
|
||||
|
||||
*folders-exclude* = _<folder1,folder2,folder3...>_
|
||||
Specifies the comma separated list of folders to exclude from the sidebar.
|
||||
Names prefixed with _~_ are interpreted as regular expressions.
|
||||
Note that this overrides anything from *folders*.
|
||||
|
||||
By default, no folders are excluded.
|
||||
|
||||
*enable-folders-sort* = _true_|_false_
|
||||
If _true_, folders are sorted, first by specified folders (see *folders-sort*),
|
||||
then alphabetically.
|
||||
|
||||
Default: _true_
|
||||
|
||||
*folders-sort* = _<folder1,folder2,folder3...>_
|
||||
Specifies a comma separated list of folders to be shown at the top of the
|
||||
list in the provided order. Remaining folders will be sorted alphabetically.
|
||||
|
||||
*folder-map* = _<file>_
|
||||
The folder map contains a one-to-one mapping of server folders to displayed
|
||||
folder names. The *folder-map* file expects a
|
||||
_<display-folder-name>_=_<server-folder-name>_[\*]
|
||||
mapping per line (similar key=value syntax as for the *query-map* in notmuch).
|
||||
The mappings are applied as they appear in the *folder-map*.
|
||||
Supported backends: imap, maildir.
|
||||
|
||||
Note that other account options such as *archive*, *default*, *copy-to*,
|
||||
*postpone*, *folders*, *folders-exclude*, *folders-sort* need to be
|
||||
adjusted if one of those folders is affected by a folder mapping.
|
||||
|
||||
To apply the mapping to subfolders or folders with a similar prefix,
|
||||
append '\*' to the server folder name.
|
||||
|
||||
Examples:
|
||||
|
||||
Remap a single folder:
|
||||
```
|
||||
Spam = [Gmail]/Spam
|
||||
```
|
||||
|
||||
Remap the folder and all of its subfolders:
|
||||
```
|
||||
G = [Gmail]\*
|
||||
```
|
||||
|
||||
Remove a prefix for all subfolders:
|
||||
```
|
||||
* = [Gmail]/\*
|
||||
```
|
||||
|
||||
Remap all subfolders and avoid a folder collision:
|
||||
```
|
||||
Archive/existing = Archive\*
|
||||
Archive = OldArchive\*
|
||||
```
|
||||
|
||||
*from* = _<address>_
|
||||
The default value to use for the From header in new emails. This should be
|
||||
an RFC 5322-compatible string, such as _Your Name <you@example.org>_.
|
||||
|
||||
*aliases* = _<address1,address2,address3...>_
|
||||
All aliases of the current account. These will be used to fill in the From:
|
||||
field. Make sure that your email server accepts this value, or for example
|
||||
use *aerc-sendmail*(5) in combination with *msmtp*(1) and
|
||||
*--read-envelope-from*.
|
||||
|
||||
An alias can also use fnmatch-style wildcards in the address portion. These
|
||||
wildcards can be useful for catch-all addresses. For example, the alias
|
||||
_"Your Name" <\*@you.com>_ would ensure that when replying to emails addressed
|
||||
to _hi@you.com_ and _contact@you.com_, the From: field is set to
|
||||
_hi@you.com_ and _contact@you.com_, respectively. The name from the alias,
|
||||
not from the matching address, is used.
|
||||
|
||||
*use-envelope-from* = _true_|_false_
|
||||
Use the email envelope From header address instead of the *from*
|
||||
configuration option when submitting messages.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*headers* = _<header1,header2,header3...>_
|
||||
Specifies the comma separated list of headers to fetch with the message.
|
||||
|
||||
By default, all headers are fetched. If any headers are specified in this
|
||||
list, aerc will append it to the following list of required headers:
|
||||
|
||||
- date
|
||||
- subject
|
||||
- from
|
||||
- sender
|
||||
- reply-to
|
||||
- to
|
||||
- cc
|
||||
- bcc
|
||||
- in-reply-to
|
||||
- message-id
|
||||
- references
|
||||
|
||||
*headers-exclude* = _<header1,header2,header3...>_
|
||||
Specifies the comma separated list of headers to exclude from fetching.
|
||||
Note that this overrides anything from *headers*.
|
||||
|
||||
By default, no headers are excluded.
|
||||
|
||||
*outgoing* = _<uri>_
|
||||
Specifies the transport for sending outgoing emails on this account. It
|
||||
should be a connection string, and the specific meaning of each component
|
||||
varies depending on the protocol in use. See each protocol's man page for
|
||||
more details:
|
||||
|
||||
- *aerc-sendmail*(5)
|
||||
- *aerc-smtp*(5)
|
||||
|
||||
*outgoing-cred-cmd* = _<command>_
|
||||
Specifies an optional command that is run to get the outgoing account's
|
||||
password. See each protocol's man page for more details.
|
||||
|
||||
*outgoing-cred-cmd-cache* = _true_|_false_
|
||||
By default, the credentials returned by the command will be cached until
|
||||
aerc is shut down. If set to _false_, *outgoing-cred-cmd* will be executed
|
||||
every time an email is to be sent.
|
||||
|
||||
Default: _true_
|
||||
|
||||
*pama-auto-switch* = _true_|_false_
|
||||
If _true_, the patch manager will automatically switch to an existing
|
||||
project for the *:patch* command if the subject contains a '[PATCH <project>]'
|
||||
segment.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*pgp-auto-sign* = _true_|_false_
|
||||
If _true_, all outgoing emails from this account will be signed (if a signing
|
||||
key is available).
|
||||
|
||||
Default: _false_
|
||||
|
||||
*pgp-attach-key* = _true_|_false_
|
||||
If _true_, attach the public signing key to signed outgoing emails.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*pgp-self-encrypt* = _true_|_false_
|
||||
If _true_, any outgoing encrypted email will be also encrypted for the sender
|
||||
or the key specified in *pgp-key-id*.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*pgp-error-level* = _none_|_warn_|_error_
|
||||
The level of error to display when opportunistic encryption cannot be
|
||||
performed. See *pgp-opportunistic-encryption*.
|
||||
|
||||
Default: _warn_
|
||||
|
||||
*pgp-key-id* = _<key-id>_
|
||||
Specify the key id to use when signing a message. Can be either short or
|
||||
long key id. If unset, aerc will look up the key by email.
|
||||
|
||||
*pgp-opportunistic-encrypt* = _true_|_false_
|
||||
If _true_, any outgoing email from this account will be encrypted when all
|
||||
recipients (including Cc and Bcc field) have a public key available in
|
||||
the keyring. The level of error to display when a message can't be
|
||||
encrypted can be configured with *pgp-error-level*.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*postpone* = _<folder>_
|
||||
Specifies the folder to save postponed messages to.
|
||||
|
||||
Default: _Drafts_
|
||||
|
||||
*send-as-utc* = _true_|_false_
|
||||
Converts the timestamp of the Date header to UTC.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*send-with-hostname* = _true_|_false_
|
||||
Uses the local hostname in outgoing Message-Id headers instead of your
|
||||
email address domain name.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*source* = _<uri>_
|
||||
Specifies the source for reading incoming emails on this account. This key
|
||||
is required for all accounts. It should be a connection string, and the
|
||||
specific meaning of each component varies depending on the protocol in use.
|
||||
See each protocol's man page for more details:
|
||||
|
||||
- *aerc-imap*(5)
|
||||
- *aerc-jmap*(5)
|
||||
- *aerc-maildir*(5)
|
||||
- *aerc-notmuch*(5)
|
||||
|
||||
*source-cred-cmd* = _<command>_
|
||||
Specifies an optional command that is run to get the source account's
|
||||
password. See each protocol's man page for more details.
|
||||
|
||||
*signature-file* = _<path>_
|
||||
Specifies the file to read in order to obtain the signature to be added
|
||||
to emails sent from this account.
|
||||
|
||||
Please note that by convention the Usenet signature style of two dashes,
|
||||
followed by a space ("-- ") should be placed at the top of the signature
|
||||
to separate content and signature. Aerc will add that delimiter if it is
|
||||
not already present.
|
||||
|
||||
*signature-cmd* = _<command>_
|
||||
Specifies the command to execute with _sh -c_ in order to obtain the
|
||||
signature to be added to emails sent from this account. If the command
|
||||
fails then *signature-file* is used instead.
|
||||
|
||||
*trusted-authres* = _<host1,host2,host3...>_
|
||||
Comma-separated list of trustworthy hostnames from which the
|
||||
Authentication Results header will be displayed. Entries can be regular
|
||||
expressions. If you want to trust any host (e.g. for debugging),
|
||||
use the wildcard _\*_.
|
||||
|
||||
*subject-re-pattern* = _<regexp>_
|
||||
When replying to a message, this is the regular expression that will
|
||||
be used to match the prefix of the original message's subject that has
|
||||
to be removed, to create the subject line of the new message.
|
||||
Typically, this will be used to avoid a repetition of the Re:
|
||||
prefix in the subject header. The default will match known
|
||||
translations for the common Re:.
|
||||
|
||||
Default: _(?i)^((AW|RE|SV|VS|ODP|R): ?)+_
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-config*(5) *aerc-imap*(5) *aerc-jmap*(5) *aerc-maildir*(5)
|
||||
*aerc-notmuch*(5) *aerc-sendmail*(5) *aerc-smtp*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,220 @@
|
||||
AERC-BINDS(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-binds - key bindings configuration file format for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
The _binds.conf_ file is used for configuring keybindings used in the aerc
|
||||
interactive client. It is expected to be in your XDG config home plus _aerc_,
|
||||
which defaults to _~/.config/aerc/binds.conf_. If the file does not exist, the
|
||||
built-in default will be installed. An alternate file can be specified via the
|
||||
_--binds-conf_ command line argument, see *aerc*(1).
|
||||
|
||||
This file is written in the ini format with key bindings defined as:
|
||||
|
||||
*<key sequence>* = _<command>_
|
||||
|
||||
Where *<key sequence>* is the keystrokes pressed (in order) to invoke this
|
||||
keybinding, and _<command>_ specifies keystrokes that aerc will simulate when
|
||||
the keybinding is invoked. Generally this is used to execute commands, for
|
||||
example:
|
||||
|
||||
*rq* = _:reply -q<Enter>_
|
||||
|
||||
Pressing *r*, then *q*, will simulate typing in _:reply -q<Enter>_, and execute
|
||||
*:reply -q* accordingly. It is also possible to invoke keybindings recursively
|
||||
in a similar fashion.
|
||||
|
||||
You may configure different keybindings for different contexts by writing them
|
||||
into different *[sections]* of the ini file.
|
||||
|
||||
# CONTEXTS
|
||||
|
||||
The available contexts are:
|
||||
|
||||
*[messages]*
|
||||
keybindings for the message list
|
||||
|
||||
*[view]*
|
||||
keybindings for the message viewer
|
||||
|
||||
*[view::passthrough]*
|
||||
keybindings for the viewer, when in key passthrough mode
|
||||
(toggled with *:toggle-key-passthrough*)
|
||||
|
||||
*[compose]*
|
||||
keybindings for the message composer
|
||||
|
||||
*[compose::editor]*
|
||||
keybindings for the composer, when the editor is focused
|
||||
|
||||
*[compose::review]*
|
||||
keybindings for the composer, when reviewing the email before it's sent
|
||||
|
||||
To customize the description shown on the review screen, add a comment
|
||||
(_" # "_) at the end of the keybinding. Example:
|
||||
|
||||
p = :postpone<Enter> # I'll work on it later
|
||||
|
||||
The order in which bindings are defined is preserved on the review
|
||||
screen. If a non-default binding is not annotated it will be displayed
|
||||
without any description.
|
||||
|
||||
To hide a binding from the review screen, explicitly annotate it with
|
||||
a _" # -"_ comment. Example:
|
||||
|
||||
<C-e> = :encrypt<Enter> # -
|
||||
|
||||
*[terminal]*
|
||||
keybindings for terminal tabs
|
||||
|
||||
You may also configure account specific key bindings for each context:
|
||||
|
||||
*[context:account=*_AccountName_*]*
|
||||
keybindings for this context and account, where _AccountName_ is a
|
||||
regular expression that matches the account name you provided in _accounts.conf_.
|
||||
|
||||
Folder and context-specific bindings can be configured for message lists:
|
||||
|
||||
*[messages:folder=*_FolderName_*]*++
|
||||
*[view:folder=*_FolderName_*]*++
|
||||
*[compose:folder=*_FolderName_*]*++
|
||||
*[compose::editor:folder=*_FolderName_*]*++
|
||||
*[compose::review:folder=*_FolderName_*]*
|
||||
keybindings under this section will be specific to the folder that
|
||||
matches the regular expression _FolderName_.
|
||||
Keybindings from a folder specifier will take precedence over account specifiers
|
||||
|
||||
Examples:
|
||||
|
||||
```
|
||||
[messages:account=Mailbox]
|
||||
c = :cf path:mailbox/** and<space>
|
||||
|
||||
[compose::editor:account=Mailbox2]
|
||||
|
||||
[compose::editor:folder=aerc]
|
||||
y = :send -t aerc
|
||||
|
||||
[messages:folder=Drafts]
|
||||
<Enter> = :recall<Enter>
|
||||
|
||||
[messages:folder=Archive/\d+/.*]
|
||||
gi = :cf Inbox<Enter>
|
||||
...
|
||||
```
|
||||
|
||||
You may also configure global keybindings by placing them at the beginning of
|
||||
the file, before specifying any context-specific sections.
|
||||
|
||||
Parent keybindings can be erased in the context ones by specifying an "empty"
|
||||
binding:
|
||||
|
||||
```
|
||||
[compose::review]
|
||||
a = :attach<space>
|
||||
d = :detach<space>
|
||||
|
||||
[compose::review:account=no-attachments]
|
||||
a =
|
||||
d =
|
||||
```
|
||||
|
||||
# SPECIAL OPTIONS
|
||||
|
||||
In addition of user defined key sequences, the following special options are
|
||||
available in each binding context:
|
||||
|
||||
*$noinherit* = _true_|_false_
|
||||
If set to _true_, global keybindings will not be effective in this context.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*$ex* = _<key-stroke>_
|
||||
This can be set to a keystroke which will bring up the command input in this
|
||||
context.
|
||||
|
||||
Default: _:_
|
||||
|
||||
*$complete* = _<key-stroke>_
|
||||
This can be set to a keystroke which will trigger command completion in
|
||||
this context for text inputs that support it.
|
||||
|
||||
Default: _<tab>_
|
||||
|
||||
Note: automatic command completion is disabled when simulating
|
||||
keystrokes and re-enabled at the end. When *[ui].completion-min-chars*
|
||||
is set to _manual_ (see *aerc-config*(5)), it is possible to end
|
||||
a keybinding with the completion key to explicitly display the
|
||||
completion menu. E.g.:
|
||||
|
||||
*o* = _:cf<space><tab>_
|
||||
|
||||
# SUPPORTED KEYS
|
||||
|
||||
In addition to letters and some characters (e.g. *a*, *RR*, *gu*, *?*, *!*,
|
||||
etc.), special keys may be specified in *<angle brackets>*. The syntax for
|
||||
modified or special keys is:
|
||||
|
||||
<C-A-S-key>
|
||||
|
||||
Where C is control, A is alt, S is shift, and key is the named key or character.
|
||||
|
||||
Valid key names are:
|
||||
|
||||
[[ *Name*
|
||||
:- *Description*
|
||||
| *<space>*
|
||||
: " "
|
||||
| *<semicolon>*
|
||||
: ;
|
||||
| *<tab>*
|
||||
: Tab
|
||||
| *<enter>*
|
||||
: Enter
|
||||
| *<up>*
|
||||
: Up arrow
|
||||
| *<down>*
|
||||
: Down arrow
|
||||
| *<right>*
|
||||
: Right arrow
|
||||
| *<left>*
|
||||
: Left arrow
|
||||
| *<pgup>*
|
||||
: Page Up
|
||||
| *<pgdn>*
|
||||
: Page Down
|
||||
| *<home>*
|
||||
: Home
|
||||
| *<end>*
|
||||
: End
|
||||
| *<insert>*
|
||||
: Insert
|
||||
| *<delete>*
|
||||
: Delete
|
||||
| *<backspace>*
|
||||
: Backspace
|
||||
| *<exit>*
|
||||
: Exit
|
||||
| *<cancel>*
|
||||
: Cancel
|
||||
| *<print>*
|
||||
: Print screen
|
||||
| *<pause>*
|
||||
: Pause
|
||||
| *<backtab>*
|
||||
: Shift+Tab
|
||||
| *<esc>*
|
||||
: Escape
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-config*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,164 @@
|
||||
AERC-IMAP(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-imap - IMAP configuration for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc implements the IMAP protocol as specified by RFC 3501, with the following
|
||||
IMAP extensions:
|
||||
|
||||
- IDLE (RFC 2177)
|
||||
- LIST-STATUS (RFC 5819)
|
||||
- X-GM-EXT-1 (Gmail)
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Basic IMAP configuration may be done interactively with the *:new-account*
|
||||
command.
|
||||
|
||||
In _accounts.conf_ (see *aerc-accounts*(5)), the following IMAP-specific options
|
||||
are available:
|
||||
|
||||
*source* = _<scheme>_://_<username>_[_:<password>_]_@<hostname>_[_:<port>_]_?_[_<oauth2_params>_]
|
||||
Remember that all fields must be URL encoded. The _@_ symbol, when URL
|
||||
encoded, is _%40_.
|
||||
|
||||
Possible values of _<scheme>_ are:
|
||||
|
||||
_imap_
|
||||
IMAP with STARTTLS
|
||||
|
||||
_imap+insecure_
|
||||
IMAP without STARTTLS
|
||||
|
||||
_imaps_
|
||||
IMAP with TLS/SSL
|
||||
|
||||
_imaps+insecure_
|
||||
IMAP with TLS/SSL, skipping certificate verification
|
||||
|
||||
_imaps+oauthbearer_
|
||||
IMAP with TLS/SSL using OAUTHBEARER Authentication
|
||||
|
||||
_<oauth2_params>_:
|
||||
|
||||
If specified and a _token_endpoint_ is provided, the configured password
|
||||
is used as a refresh token to obtain an access token. If _token_endpoint_
|
||||
is omitted, refresh token exchange is skipped, and the password acts
|
||||
like an access token instead.
|
||||
|
||||
- _token_endpoint_ (optional)
|
||||
- _client_id_ (optional)
|
||||
- _client_secret_ (optional)
|
||||
- _scope_ (optional)
|
||||
|
||||
Example:
|
||||
imaps+oauthbearer://...?token_endpoint=https://...&client_id=
|
||||
|
||||
_imaps+xoauth2_
|
||||
IMAP with TLS/SSL using XOAUTH2 Authentication. Parameters are
|
||||
the same as OAUTHBEARER.
|
||||
|
||||
*source-cred-cmd* = _<command>_
|
||||
Specifies the command to run to get the password for the IMAP
|
||||
account. This command will be run using _sh -c command_. If a
|
||||
password is specified in the *source* option, the password will
|
||||
take precedence over this command.
|
||||
|
||||
Example:
|
||||
source-cred-cmd = pass hostname/username
|
||||
|
||||
*connection-timeout* = _<duration_>
|
||||
Maximum delay to establish a connection to the IMAP server. See
|
||||
https://pkg.go.dev/time#ParseDuration.
|
||||
|
||||
Default: _30s_
|
||||
|
||||
*keepalive-period* = _<duration>_
|
||||
The interval between the last data packet sent (simple ACKs are not
|
||||
considered data) and the first keepalive probe. After the connection is
|
||||
marked to need keepalive, this counter is not used any further. See
|
||||
https://pkg.go.dev/time#ParseDuration.
|
||||
|
||||
By default, the system tcp socket settings are used.
|
||||
|
||||
*keepalive-probes* = _<int>_
|
||||
The number of unacknowledged probes to send before considering the
|
||||
connection dead and notifying the application layer.
|
||||
|
||||
By default, the system tcp socket settings are used.
|
||||
If keepalive-period is specified, this option defaults to 3 probes.
|
||||
|
||||
This option is only supported on linux. On other platforms, it will be
|
||||
ignored.
|
||||
|
||||
*keepalive-interval* = _<duration>_
|
||||
The interval between subsequential keepalive probes, regardless of what
|
||||
the connection has exchanged in the meantime. Fractional seconds are
|
||||
truncated.
|
||||
|
||||
By default, the system tcp socket settings are used.
|
||||
If *keepalive-period* is specified, this option defaults to _3s_.
|
||||
|
||||
This option is only supported on linux. On other platforms, it will be
|
||||
ignored.
|
||||
|
||||
*check-mail-include* = _<folder1,folder2,folder3...>_
|
||||
Specifies the comma separated list of folders to include when checking for
|
||||
new mail with *:check-mail*. Names prefixed with _~_ are interpreted as regular
|
||||
expressions. This setting is ignored if your IMAP server supports the
|
||||
LIST-STATUS command, in which case all folders will be checked.
|
||||
|
||||
By default, all folders are included.
|
||||
|
||||
*check-mail-exclude* = _<folder1,folder2,folder3...>_
|
||||
Specifies the comma separated list of folders to exclude when checking for
|
||||
new mail with *:check-mail*. Names prefixed with _~_ are interpreted as regular
|
||||
expressions. This setting is ignored if your IMAP server supports the
|
||||
LIST-STATUS command, in which case all folders will be checked.
|
||||
Note that this overrides anything from *check-mail-include*.
|
||||
|
||||
By default, no folders are excluded.
|
||||
|
||||
*cache-headers* = _true_|_false_
|
||||
If set to _true_, headers will be cached. The cached headers will be stored
|
||||
in _$XDG_CACHE_HOME/aerc_, which defaults to _~/.cache/aerc_.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*cache-max-age* = _<duration>_
|
||||
Defines the maximum age of cached files. Note: the longest unit of time
|
||||
*cache-max-age* can be specified in is hours. Set to _0_ to disable cleaning
|
||||
the cache
|
||||
|
||||
Default: _720h_ (30 days)
|
||||
|
||||
*idle-timeout* = _<duration>_
|
||||
The length of time the client will wait for the server to send any final
|
||||
update before the IDLE is closed.
|
||||
|
||||
Default: _10s_
|
||||
|
||||
*idle-debounce* = _<duration>_
|
||||
Specifies the length of time from the last client command until the
|
||||
idler starts.
|
||||
|
||||
Default: _10ms_
|
||||
|
||||
*use-gmail-ext* = _true_|_false_
|
||||
If set to _true_, the X-GM-EXT-1 extension will be used if supported.
|
||||
This only works for Gmail accounts.
|
||||
|
||||
Default: _false_
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-accounts*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,148 @@
|
||||
AERC-JMAP(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-jmap - JMAP configuration for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc implements the JMAP protocol as specified by RFCs 8620 and 8621.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Basic JMAP configuration may be done interactively with the *:new-account*
|
||||
command.
|
||||
|
||||
In _accounts.conf_ (see *aerc-accounts*(5)), the following JMAP-specific options
|
||||
are available:
|
||||
|
||||
*source* = _<scheme>_://[_<username>_][_:<password>@_]_<hostname>_[_:<port>_]/_<path>_
|
||||
Remember that all fields must be URL encoded. The _@_ symbol, when URL
|
||||
encoded, is _%40_.
|
||||
|
||||
_<hostname>_[_:<port>_]/_<path>_ is the HTTPS JMAP session resource as
|
||||
specified in RFC 8620 section 2 without the leading _https://_ scheme.
|
||||
|
||||
Possible values of _<scheme>_ are:
|
||||
|
||||
_jmap_
|
||||
JMAP over HTTPS using Basic authentication.
|
||||
|
||||
_jmap+oauthbearer_
|
||||
JMAP over HTTPS using OAUTHBEARER authentication
|
||||
|
||||
The username is ignored and may be left empty. If specifying the
|
||||
password, make sure to prefix it with _:_ to make it explicit
|
||||
that the username is empty. Or set the username to any random
|
||||
value. E.g.:
|
||||
|
||||
```
|
||||
source = jmap+oauthbearer://:s3cr3t@example.com/jmap/session
|
||||
source = jmap+oauthbearer://me:s3cr3t@example.com/jmap/session
|
||||
```
|
||||
|
||||
Your source credentials must have the _urn:ietf:params:jmap:mail_
|
||||
capability.
|
||||
|
||||
*source-cred-cmd* = _<command>_
|
||||
Specifies the command to run to get the password for the JMAP account.
|
||||
This command will be run using _sh -c command_. If a password is
|
||||
specified in the *source* option, the password will take precedence over
|
||||
this command.
|
||||
|
||||
Example:
|
||||
source-cred-cmd = pass hostname/username
|
||||
|
||||
*outgoing* = _jmap://_
|
||||
The JMAP connection can also be used to send emails. No need to repeat
|
||||
the URL nor any credentials. Just the URL scheme will be enough.
|
||||
|
||||
Your source credentials must have the _urn:ietf:params:jmap:submission_
|
||||
capability.
|
||||
|
||||
*cache-state* = _true_|_false_
|
||||
Cache all email state (mailboxes, email headers, mailbox contents, email
|
||||
flags, etc.) on disk in a levelDB database located in folder
|
||||
_~/.cache/aerc/<account>/state_.
|
||||
|
||||
The cached data should remain small, in the order of a few megabytes,
|
||||
even for very large email stores. Aerc will make its best to purge
|
||||
deleted/outdated information. It is safe to delete that folder when aerc
|
||||
is not running and it will be recreated from scratch on next startup.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*cache-blobs* = _true_|_false_
|
||||
Cache all downloaded email bodies and attachments on disk as individual
|
||||
files in _~/.cache/aerc/<account>/blobs/<xx>/<blob_id>_ (where _<xx>_ is
|
||||
a subfolder named after the last two characters of _<blob_id>_).
|
||||
|
||||
Aerc will not purge the cached blobs automatically. Even when their
|
||||
related emails are destroyed permanently from the server. If required,
|
||||
you may want to run some periodic cleanup based on file creation date in
|
||||
a crontab, e.g.:
|
||||
|
||||
@daily find ~/.cache/aerc/foo/blobs -type f -mtime +30 -delete
|
||||
|
||||
Default: _false_
|
||||
|
||||
*use-labels* = _true_|_false_
|
||||
If set to _true_, mailboxes with the _archive_ role (usually _Archive_)
|
||||
will be hidden from the directory list and replaced by an *all-mail*
|
||||
virtual folder. The name of that folder can be configured via the
|
||||
*all-mail* setting.
|
||||
|
||||
*:archive* _flat_ may still be used to effectively "tag" messages with the
|
||||
hidden _Archive_ mailbox so that they appear in the *all-mail* virtual
|
||||
folder. When the *all-mail* virtual folder is selected, *:archive* _flat_
|
||||
should not be used and will have no effect. The messages will be grayed
|
||||
out but will never be refreshed until aerc is restarted.
|
||||
|
||||
Also, this enables support for the *:modify-labels* (alias *:tag*)
|
||||
command.
|
||||
|
||||
Default: _false_
|
||||
|
||||
*all-mail* = _<name>_
|
||||
Name of the virtual folder that replaces the role=_archive_ mailbox when
|
||||
*use-labels* = _true_.
|
||||
|
||||
Default: _All mail_
|
||||
|
||||
*server-ping* = _<duration>_
|
||||
Interval the server should ping the client at when monitoring for email
|
||||
changes. The server may choose to ignore this value. By default, no ping
|
||||
will be requested from the server.
|
||||
|
||||
See https://pkg.go.dev/time#ParseDuration.
|
||||
|
||||
# NOTES
|
||||
|
||||
JMAP messages can be seen as "labels" or "tags". Every message must belong to
|
||||
one or more mailboxes (folders in aerc). Each mailbox has a "role" as described
|
||||
in _https://www.iana.org/assignments/imap-mailbox-name-attributes/_.
|
||||
|
||||
When deleting messages that belong only to the selected mailbox, aerc will
|
||||
attempt to "move" these messages to a mailbox with the _trash_ role. If it
|
||||
cannot find such mailbox or if the selected mailbox is the _trash_ mailbox, it
|
||||
will effectively destroy the messages from the server.
|
||||
|
||||
*:delete* removes messages from the selected mailbox and effectively does the
|
||||
same thing than *:tag -<selected_folder>*.
|
||||
|
||||
*:cp <foo>* is an alias for *:tag <foo>* or *:tag +<foo>*.
|
||||
|
||||
*:mv <foo>* is a compound of *:delete* and *:mv* and can be seen as an alias of
|
||||
*:tag -<selected_folder> +<foo>*.
|
||||
|
||||
*:archive* _flat_ is an alias for *:tag -<selected_folder> +<archive>*.
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-accounts*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,58 @@
|
||||
AERC-MAILDIR(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-maildir - maildir configuration for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc implements the maildir format.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Basic Maildir configuration may be done interactively with the *:new-account*
|
||||
command.
|
||||
|
||||
The following maildir-specific options are available:
|
||||
|
||||
*check-mail-cmd* = _<command>_
|
||||
Command to run in conjunction with *check-mail* option.
|
||||
|
||||
Example:
|
||||
check-mail-cmd = mbsync -a
|
||||
|
||||
*check-mail-timeout* = _<duration>_
|
||||
Timeout for the *check-mail-cmd*. The command will be stopped if it does
|
||||
not complete in this interval and an error will be displayed. Increase from
|
||||
the default if repeated errors occur
|
||||
|
||||
Default: 10s
|
||||
|
||||
*source* = _maildir_|_maildirpp_://_<path>_
|
||||
The *source* indicates the path to the directory containing your maildirs
|
||||
rather than one maildir specifically.
|
||||
|
||||
The path portion of the URL following _maildir://_ must be either an absolute
|
||||
path prefixed by _/_ or a path relative to your home directory prefixed with
|
||||
*~*. For example:
|
||||
|
||||
source = maildir:///home/me/mail
|
||||
|
||||
source = maildir://~/mail
|
||||
|
||||
If your maildir is using the Maildir++ directory layout, you can use the
|
||||
_maildirpp://_ scheme instead:
|
||||
|
||||
source = maildirpp:///home/me/mail
|
||||
|
||||
source = maildirpp://~/mail
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-accounts*(5) *aerc-smtp*(5) *aerc-notmuch*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,122 @@
|
||||
AERC-NOTMUCH(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-notmuch - notmuch configuration for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc supports using the notmuch email system as a backend, for fast indexing
|
||||
and searching.
|
||||
|
||||
For this to be enabled, aerc needs to be built with notmuch support.
|
||||
Refer to the installation instructions for details.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Basic Notmuch configuration may be done interactively with the *:new-account*
|
||||
command.
|
||||
|
||||
In _accounts.conf_ (see *aerc-accounts*(5)), the following notmuch-specific
|
||||
options are available:
|
||||
|
||||
*check-mail-cmd* = _<command>_
|
||||
Command to run in conjunction with *check-mail* option.
|
||||
|
||||
Example:
|
||||
check-mail-cmd = mbsync -a
|
||||
|
||||
*check-mail-timeout* = _<duration>_
|
||||
Timeout for the *check-mail-cmd*. The command will be stopped if it does
|
||||
not complete in this interval and an error will be displayed. Increase from
|
||||
the default if repeated errors occur
|
||||
|
||||
Default: _10s_
|
||||
|
||||
*source* = notmuch://_<path>_
|
||||
The *source* indicates the path to the directory containing your notmuch
|
||||
database (usually a _.notmuch/_ folder).
|
||||
|
||||
The path portion of the URL following _notmuch://_ must be either an absolute
|
||||
path prefixed by _/_ or a path relative to your home directory prefixed with
|
||||
_~_. For example:
|
||||
|
||||
source = notmuch:///home/me/mail
|
||||
|
||||
source = notmuch://~/mail
|
||||
|
||||
*query-map* = _<file>_
|
||||
Path to a file containing a mapping from display name to notmuch query
|
||||
in the form of *<NAME>*=_<QUERY>_.
|
||||
|
||||
Multiple entries can be specified, one per line. Lines starting with _#_
|
||||
are ignored and serve as comments.
|
||||
|
||||
e.g. inbox=tag:inbox and not tag:archived
|
||||
|
||||
*exclude-tags* = _<tag1,tag2,tag3...>_
|
||||
Comma separated list of tags which will be excluded from query results,
|
||||
unless explicitly mentioned in the query.
|
||||
|
||||
This can for example be useful if you use an _archive_ or _spam_ tag.
|
||||
|
||||
*maildir-store* = _<path>_
|
||||
Path to the maildir store containing the message files backing the
|
||||
notmuch database. This is often the same as the notmuch database path.
|
||||
If specified, this option will be used by aerc to list available folders
|
||||
and enable commands such as *:delete* and *:archive*.
|
||||
|
||||
N.B.: aerc will still always show messages and not files (under notmuch,
|
||||
a single message can be represented by several files), which makes the
|
||||
semantics of certain commands as *move* ambiguous. Use *multi-file-strategy*
|
||||
to tell aerc how to resolve these ambiguities.
|
||||
|
||||
*maildir-account-path* = _<path>_
|
||||
Path to the maildir account relative to the *maildir-store*.
|
||||
|
||||
This could be used to achieve traditional maildir one tab per account
|
||||
behavior. The note on *maildir-store* also applies to this option.
|
||||
|
||||
*multi-file-strategy* = _<strategy>_
|
||||
Strategy for file operations (e.g., move, copy, delete) on messages that are
|
||||
backed by multiple files. Possible values:
|
||||
|
||||
- *refuse* (default): Refuse to act.
|
||||
- *act-all*: Act on all files.
|
||||
- *act-one*: Act on one of the files, arbitrarily chosen, and ignore the
|
||||
rest.
|
||||
- *act-one-delete-rest*: Like *act-one*, but delete the remaining files.
|
||||
- *act-dir*: Act on all files within the current folder and ignore the rest.
|
||||
Note that this strategy only works within the maildir directories; in other
|
||||
directories, it behaves like *refuse*.
|
||||
- *act-dir-delete-rest*: Like *act-dir*, but delete the remaining files.
|
||||
|
||||
Note that the strategy has no effect on cross-account operations. Copying a
|
||||
message across accounts will always copy a single file, arbitrarily chosen.
|
||||
Moving a message across accounts will always copy a single file, arbitrarily
|
||||
chosen, and refuse to delete multiple files from the source account.
|
||||
|
||||
# USAGE
|
||||
|
||||
Notmuch shows slightly different behavior than for example imap. Some commands
|
||||
are slightly different in semantics and mentioned below:
|
||||
|
||||
*cf* _<notmuch query>_
|
||||
The change folder command allows for arbitrary notmuch queries. Performing a
|
||||
*:cf* command will perform a new top-level notmuch query.
|
||||
|
||||
*filter* _<notmuch query>_
|
||||
The filter command for notmuch backends takes in arbitrary notmuch queries.
|
||||
It applies the query on the set of messages shown in the message list. This
|
||||
can be used to perform successive filters/queries. It is equivalent to
|
||||
performing a set of queries concatenated with "and".
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-accounts*(5) *aerc-smtp*(5) *aerc-maildir*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,195 @@
|
||||
AERC-PATCH(7)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-patch - local patch management for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
*aerc* provides support for managing local patch sets. In an email-based
|
||||
software development workflow, there are usually many different locally applied
|
||||
patch series for testing and reviewing. Managing the local repository can thus
|
||||
be challenging. With the local patch management system, *aerc* facilitates this
|
||||
bookkeeping process.
|
||||
|
||||
When applying a patch set, *aerc* creates a tag for those commits. With this
|
||||
tag, the patch set can be tracked and later dropped if needed. Patches are
|
||||
stored in a project data structure which also keeps track of the directory where
|
||||
the repository is. Multiple code bases can be tracked by defining a separate
|
||||
project for each.
|
||||
|
||||
# COMMANDS
|
||||
|
||||
The following *:patch* sub-commands are supported:
|
||||
|
||||
*:patch init* [*-f*] [_<project>_]
|
||||
Creates a new project _<project>_. If _<project>_ is not defined, *aerc*
|
||||
will use the last element of the current directory path. It also
|
||||
performs a search for a supported repository in the current directory.
|
||||
|
||||
*-f*: Overwrite an existing project.
|
||||
|
||||
*:patch list* [*-a*]++
|
||||
*:patch ls* [*-a*]
|
||||
Lists the current project with the tracked patch sets.
|
||||
|
||||
*-a*: Lists all projects.
|
||||
|
||||
*:patch apply* [*-c* _<cmd>_] [*-w* _<commit-ish>_] _<tag>_
|
||||
Applies the selected message(s) to the repository of the current
|
||||
project. It uses the *:pipe* command for this and keeps track of the
|
||||
applied patch.
|
||||
|
||||
Completions for the _<tag>_ are available based on the subject lines of
|
||||
the selected or marked messages.
|
||||
|
||||
*-c* _<cmd>_: Apply patches with the provided _<cmd>_. Any occurrence of
|
||||
'%r' in the command string will be replaced with the root directory of
|
||||
the current project. Note that this approach is not recommended in
|
||||
general and should only be used for very specific purposes, i.e. when
|
||||
a maintainer is applying a patch set via a separate script to deal with
|
||||
git trailers.
|
||||
|
||||
*aerc* will propose completions for the _<tag>_ based on the subject
|
||||
lines of the selected or marked messages.
|
||||
|
||||
Example:
|
||||
```
|
||||
:patch apply -c "git -C %r am -3" fix_v2
|
||||
```
|
||||
|
||||
*-w* _<commit-ish>_: Create a linked worktree for the current project at
|
||||
_<commit-ish>_ and apply the patches to the linked worktree. A new
|
||||
project is created to store the worktree information. When this project
|
||||
is deleted, the worktree will be deleted as well.
|
||||
|
||||
Example:
|
||||
```
|
||||
:patch apply -w origin/master fix_v2
|
||||
```
|
||||
|
||||
*:patch drop* _<tag>_
|
||||
Drops the patch _<tag>_ from the repository.
|
||||
|
||||
*:patch rebase* [_<commit-ish>_]
|
||||
Rebases the patch data on commit _<commit-ish>_.
|
||||
|
||||
If the _<commit-ish>_ is omitted, *aerc* will use the base commit of
|
||||
the current project for the rebase.
|
||||
|
||||
*:patch find* [*-f*] _<commit-hash>_
|
||||
Searches the messages in the current folder of the current account for
|
||||
the message associated with this _commit hash_ based on the subject line.
|
||||
|
||||
If a Message-ID is linked to a commit (i.e. when *:patch apply* was
|
||||
used) then *find* will first perform a search for the Message-ID.
|
||||
|
||||
*-f*: Filter the message list instead of just showing the search
|
||||
results. Only effective when search for Message-ID was not successful.
|
||||
|
||||
*:patch cd*
|
||||
Changes the working directory to the root directory of the current
|
||||
project.
|
||||
|
||||
*:patch term* [_<cmd>_]
|
||||
Opens a shell (or runs _<cmd>_) in the working directory of the
|
||||
current project.
|
||||
|
||||
*:patch switch* _<project>_
|
||||
Switches the context to _<project>_.
|
||||
|
||||
*:patch unlink* [_<project>_]
|
||||
Deletes all patch tracking data for _<project>_ and unlinks it from
|
||||
a repository. If no project is provided, the current project is deleted.
|
||||
|
||||
*:patch*
|
||||
Root command for path management. Use it to run the sub-commands.
|
||||
|
||||
# GETTING STARTED
|
||||
|
||||
Make sure you have an initialized project (see *:patch init*).
|
||||
|
||||
Now, there are two ways to get patches under the local patch management system:
|
||||
|
||||
- Apply patches with the *:patch apply* command. This will automatically create
|
||||
a new tag for the applied commits.
|
||||
|
||||
- Use *:patch rebase*. If there are some existing local patches in the commit
|
||||
history that should be managed by *aerc*, you can run *:patch rebase
|
||||
<commit-ish>* and set the _<commit-ish>_ to the commit before the first patch
|
||||
that you want to include. For a *git* repository which has an upstream called
|
||||
*origin*, you would run *:patch rebase origin/master*.
|
||||
|
||||
# EXAMPLE
|
||||
|
||||
The following example demonstrates how to manage the local patch sets.
|
||||
|
||||
First, a project needs to be initialized. This is done by changing into the
|
||||
working directory where the project's repository is located. For this example,
|
||||
let's assume we have a project called _bar_ in the directory
|
||||
_/home/user/foo/bar_.
|
||||
|
||||
```
|
||||
:cd /home/user/foo/bar
|
||||
```
|
||||
|
||||
and then creating a new project with
|
||||
|
||||
```
|
||||
:patch init
|
||||
```
|
||||
|
||||
If no name is provided to *:patch init*, *aerc* will use the last element of the
|
||||
working directory path (here: _bar_).
|
||||
|
||||
Now the patch tracking is ready for action. Go to the message list, mark a patch
|
||||
series and apply it:
|
||||
|
||||
```
|
||||
:patch apply fix_v2
|
||||
```
|
||||
|
||||
This will apply the selected patch set and assigns the _fix_v2_ tag to those
|
||||
commits. The tag helps to keep the commits grouped together, and will be helpful
|
||||
when we want to drop this exact patch set at a later point.
|
||||
|
||||
With *:patch list* you can verify that the patch set was correctly applied.
|
||||
|
||||
If there is a change in the underlying repository (e.g. by rebasing to
|
||||
upstream), the hashes of the applied local commits can change. *:patch list* can
|
||||
detect such a change and will then propose to rebase the internal data. To
|
||||
do this, run
|
||||
|
||||
```
|
||||
:patch rebase
|
||||
```
|
||||
|
||||
This will open an editor where you can adjust the correct tags again. You could
|
||||
also change the rebase point by providing an optional argument (e.g. a commit
|
||||
hash, or even _HEAD~3_ or _origin/master_, etc.).
|
||||
|
||||
To drop a patch set, use the tag that was assigned during applying:
|
||||
|
||||
```
|
||||
:patch drop fix_v2
|
||||
```
|
||||
|
||||
And to delete the project data in *aerc*:
|
||||
|
||||
```
|
||||
:patch unlink bar
|
||||
```
|
||||
|
||||
# SUPPORTED REVISION CONTROL SYSTEMS
|
||||
|
||||
The supported revision control systems are currently: *git*.
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,129 @@
|
||||
AERC-SEARCH(1)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-search - search and filter patterns and options for *aerc*(1)
|
||||
|
||||
# SYNTAX
|
||||
|
||||
This syntax is common to all backends.
|
||||
|
||||
*:filter* [*-rubae*] [*-x* _<flag>_] [*-X* _<flag>_] [*-H* _<header>:[<value>]_] [*-f* _<from>_] [*-t* _<to>_] [*-c* _<cc>_] [*-d* _<start[..end]>_] [_<terms>_...]++
|
||||
*:search* [*-rubae*] [*-x* _<flag>_] [*-X* _<flag>_] [*-H* _<header>:[<value>]_] [*-f* _<from>_] [*-t* _<to>_] [*-c* _<cc>_] [*-d* _<start[..end]>_] [_<terms>_...]
|
||||
Searches the current folder for messages matching the given set of
|
||||
conditions.
|
||||
|
||||
*:filter* restricts the displayed messages to only the search results.
|
||||
|
||||
Each space separated term of _<terms>_, if provided, is searched
|
||||
case-insensitively among subject lines unless *-b* or *-a* are
|
||||
provided.
|
||||
|
||||
*-r*: Search for read messages
|
||||
|
||||
*-u*: Search for unread messages
|
||||
|
||||
*-x* _<flag>_, *-X* _<flag>_: Restrict search to messages with or without _<flag>_
|
||||
Use *-x* to search for messages with the flag set.
|
||||
Use *-X* to search for messages without the flag set.
|
||||
|
||||
Possible values are:
|
||||
_Seen_
|
||||
Read messages
|
||||
_Answered_
|
||||
Replied messages
|
||||
_Forwarded_
|
||||
Forwarded messages
|
||||
_Flagged_
|
||||
Flagged messages
|
||||
_Draft_
|
||||
Draft messages
|
||||
|
||||
*-H* _<header>:[<value>]_:
|
||||
Search in the headers of the messages for a specific _<header>_ that matches _<value>_,
|
||||
_<value>_ can be omitted to only search for a _<header>_.
|
||||
If either the _<header>_ or the _<value>_ contain a space then the whole argument needs
|
||||
to be escaped with quotes, note: spaces around _<value>_ are trimmed.
|
||||
|
||||
*-b*: Search in the body of the messages
|
||||
|
||||
*-a*: Search in the entire text of the messages
|
||||
|
||||
*-e*: Instruct the backend to use a custom search extension
|
||||
(such as X-GM-EXT-1 if available). Search terms are expected
|
||||
in _<terms>_; other flags will be ignored.
|
||||
|
||||
*-f* _<from>_: Search for messages from _<from>_
|
||||
|
||||
*-t* _<to>_: Search for messages to _<to>_
|
||||
|
||||
*-c* _<cc>_: Search for messages cc'ed to _<cc>_
|
||||
|
||||
*-d* _<since[..until]>_:
|
||||
Search for messages within a particular date range between
|
||||
_since_ and _until_, excluding the latter (in mathematical
|
||||
notation: search for messages in the [_since_, _until_)
|
||||
interval). _until_ can be omitted to only search for _<since>_
|
||||
to present.
|
||||
|
||||
Spaces and underscores are allowed in relative dates to improve
|
||||
readability.
|
||||
|
||||
_YYYY-MM-DD_
|
||||
|
||||
*today*, *yesterday*
|
||||
|
||||
*(this|last) (year|month|week)*
|
||||
|
||||
*Weekdays*, *Monthnames*
|
||||
Can also be abbreviated, so Monday..Tuesday can be written
|
||||
as Mon..Tue and February..March as Feb..Mar.
|
||||
|
||||
_<N>_ *(y[ear]|m[onth]|w[eek]|d[ay])*
|
||||
_<N>_ is a positive integer that represents the number
|
||||
of time units in the past. Multiple relative terms
|
||||
can be accumulated. The units can also be abbreviated
|
||||
by a single letter such that yesterday would
|
||||
correspond to _1d_ (equivalent to _1 day_ or _1_day_)
|
||||
and _8 days ago_ would be either _1w1d_ or _8d_.
|
||||
|
||||
# CUSTOM IMAP EXTENSIONS
|
||||
|
||||
The Gmail IMAP extension (X-GM-EXT-1) can be used for searching and filtering.
|
||||
To use this custom extension, make sure it is activated (see *aerc-imap*(5))
|
||||
and use the extension *-e* flag in your *:filter* or *:search* commands.
|
||||
|
||||
Example:
|
||||
|
||||
:filter -e filename:pdf from:bob
|
||||
:filter -e has:attachment newer_than:2d
|
||||
|
||||
:search -e is:read is:starred
|
||||
:search -e list:~rjarry/aerc-devel@lists.sr.ht
|
||||
|
||||
|
||||
# NOTMUCH
|
||||
|
||||
For notmuch, it is possible to avoid using the above flags and only rely on
|
||||
notmuch search syntax.
|
||||
|
||||
*:filter* _query_...++
|
||||
*:search* _query_...
|
||||
You can use the full notmuch query language as described in
|
||||
*notmuch-search-terms*(7).
|
||||
|
||||
The query will only apply on top of the active folder query.
|
||||
|
||||
Example, jump to next unread:
|
||||
|
||||
:search tag:unread
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-config*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,32 @@
|
||||
AERC-SENDMAIL(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-sendmail - sendmail configuration for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc can defer to sendmail for the delivery of outgoing messages.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Basic sendmail configuration may be done interactively with the *:new-account*
|
||||
command.
|
||||
|
||||
In _accounts.conf_ (see *aerc-accounts*(5)), the following sendmail-specific
|
||||
options are available:
|
||||
|
||||
*outgoing* = _</path/to/sendmail>_
|
||||
This should be set to the path to the sendmail binary you wish to use,
|
||||
which is generally _/usr/sbin/sendmail_. aerc will execute it with a list of
|
||||
recipients on the command line and pipe the message to deliver to stdin.
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-accounts*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,79 @@
|
||||
AERC-SMTP(5)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-smtp - SMTP configuration for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc implements the SMTP protocol as specified by RFC 5321.
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
Basic SMTP configuration may be done interactively with the *:new-account*
|
||||
command.
|
||||
|
||||
In _accounts.conf_ (see *aerc-accounts*(5)), the following SMTP-specific options
|
||||
are available:
|
||||
|
||||
*outgoing* = _<scheme>_[_+<auth>_]://_<username>_[_:<password>_]_@<hostname>_[_:<port>_]?[_<oauth2_params>_]
|
||||
Remember that all fields must be URL encoded. The _@_ symbol, when URL
|
||||
encoded, is _%40_.
|
||||
|
||||
The value of _<scheme>_ can be:
|
||||
|
||||
_smtp_
|
||||
SMTP with STARTTLS
|
||||
|
||||
_smtp+insecure_
|
||||
SMTP without STARTTLS
|
||||
|
||||
_smtps_
|
||||
SMTP with TLS/SSL
|
||||
|
||||
Additionally, you can specify an authentication mechanism like so:
|
||||
|
||||
_none_
|
||||
No authentication is required to use this SMTP server. You may omit the
|
||||
username and password in this case.
|
||||
|
||||
_plain_
|
||||
Authenticate with a username and password using AUTH PLAIN. This is the
|
||||
default behavior.
|
||||
|
||||
_login_
|
||||
Authenticate with a username and password using AUTH LOGIN. This is an obsolete
|
||||
protocol, but is required for some common webmail providers.
|
||||
|
||||
_oauthbearer_
|
||||
SMTP with TLS/SSL using OAUTHBEARER Authentication. See
|
||||
documentation in *aerc-imap*(5) for usage.
|
||||
|
||||
_xoauth2_
|
||||
SMTP with TLS/SSL using XOAUTH2 Authentication. See
|
||||
documentation in *aerc-imap*(5) for usage.
|
||||
|
||||
*outgoing-cred-cmd* = _<command>_
|
||||
Specifies the command to run to get the password for the SMTP
|
||||
account. This command will be run using _sh -c [command]_. If a
|
||||
password is specified in the *outgoing* option, the password will
|
||||
take precedence over this command.
|
||||
|
||||
Example:
|
||||
outgoing-cred-cmd = pass hostname/username
|
||||
|
||||
*smtp-domain* = _<domain>_
|
||||
Local domain name to use in the HELO/EHLO SMTP command. Set this to a fully
|
||||
qualified domain name if the server requires it as an antispam measure.
|
||||
|
||||
Default: _localhost_
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-accounts*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,466 @@
|
||||
AERC-STYLESETS(7)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-stylesets - styleset file specification for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc uses a simple configuration syntax to configure the styleset for
|
||||
its ui.
|
||||
|
||||
# STYLESET CONFIGURATION
|
||||
|
||||
The styleset is described as *<object>*.*<attribute>* = _<value>_ pairs.
|
||||
|
||||
For example, in the line below, the foreground color of the
|
||||
style object *msglist_unread* is set to _cornflowerblue_
|
||||
|
||||
*msglist_unread*.*fg* = _cornflowerblue_
|
||||
|
||||
The configuration also allows wildcard matching of the keys
|
||||
to configure multiple style objects at a time.
|
||||
|
||||
# ATTRIBUTES
|
||||
|
||||
The following options are available to be modified for each of the
|
||||
style objects.
|
||||
|
||||
*<object>*.*fg* = _<color>_
|
||||
The foreground color of the style object is set.
|
||||
|
||||
*<object>*.*bg* = _<color>_
|
||||
The background color of the style object is set.
|
||||
|
||||
*<object>*.*bold* = _true_|_false_|_toggle_
|
||||
The bold attribute of the style object is set/unset.
|
||||
|
||||
*<object>*.*blink* = _true_|_false_|_toggle_
|
||||
The blink attribute of the style object is set/unset.
|
||||
The terminal needs to support blinking text.
|
||||
|
||||
*<object>*.*underline* = _true_|_false_|_toggle_
|
||||
The underline attribute of the style object is set/unset.
|
||||
The terminal needs to support underline text.
|
||||
|
||||
*<object>*.*italic* = _true_|_false_|_toggle_
|
||||
The italic attribute of the style object is set/unset.
|
||||
The terminal needs to support italic text.
|
||||
|
||||
*<object>*.*dim* = _true_|_false_|_toggle_
|
||||
The dim attribute of the style object is set/unset.
|
||||
The terminal needs to support half-bright text.
|
||||
|
||||
*<object>*.*reverse* = _true_|_false_|_toggle_
|
||||
Reverses the color of the style object. Exchanges the foreground
|
||||
and background colors.
|
||||
|
||||
If the value is _false_, it doesn't change anything.
|
||||
|
||||
*<object>*.*normal* = true
|
||||
All the attributes of the style object are unset.
|
||||
|
||||
The value doesn't matter.
|
||||
|
||||
*<object>*.*default* = true
|
||||
Set the style object to the default style of the context. Usually
|
||||
based on the terminal.
|
||||
|
||||
The value doesn't matter.
|
||||
|
||||
# STYLE OBJECTS
|
||||
|
||||
The style objects represent the various ui elements or ui instances for
|
||||
styling.
|
||||
|
||||
[[ *Style Object*
|
||||
:[ *Description*
|
||||
| *default*
|
||||
: The default style object used for normal ui elements while not using specialized configuration.
|
||||
| *error*
|
||||
: The style used to show errors.
|
||||
| *warning*
|
||||
: The style used when showing warnings.
|
||||
| *success*
|
||||
: The style used for success messages.
|
||||
| *title*
|
||||
: The style object used to style titles in ui elements.
|
||||
| *header*
|
||||
: The style object used to style headers in ui elements.
|
||||
| *statusline_default*
|
||||
: The default style applied to the statusline.
|
||||
| *statusline_error*
|
||||
: The style used for error messages in statusline.
|
||||
| *statusline_success*
|
||||
: The style used for success messages in statusline.
|
||||
| *msglist_default*
|
||||
: The default style for messages in a message list.
|
||||
| *msglist_unread*
|
||||
: Unread messages in a message list.
|
||||
| *msglist_read*
|
||||
: Read messages in a message list.
|
||||
| *msglist_flagged*
|
||||
: The messages with the flagged flag.
|
||||
| *msglist_deleted*
|
||||
: The messages marked as deleted.
|
||||
| *msglist_marked*
|
||||
: The messages with the marked flag.
|
||||
| *msglist_result*
|
||||
: The messages which match the current search.
|
||||
| *msglist_answered*
|
||||
: The messages marked as answered.
|
||||
| *msglist_forwarded*
|
||||
: The messages marked as forwarded.
|
||||
| *msglist_gutter*
|
||||
: The message list gutter.
|
||||
| *msglist_pill*
|
||||
: The message list pill.
|
||||
| *msglist_thread_folded*
|
||||
: Visible messages that have folded thread children.
|
||||
| *msglist_thread_context*
|
||||
: The messages not matching the mailbox / query, displayed for context.
|
||||
| *msglist_thread_orphan*
|
||||
: Threaded messages that have a missing parent message.
|
||||
| *dirlist_default*
|
||||
: The default style for directories in the directory list.
|
||||
| *dirlist_unread*
|
||||
: The style used for directories with unread messages
|
||||
| *dirlist_recent*
|
||||
: The style used for directories with recent messages
|
||||
| *part_switcher*
|
||||
: Background for the part switcher in the message viewer.
|
||||
| *part_filename*
|
||||
: Attachment file name in the part switcher.
|
||||
| *part_mimetype*
|
||||
: Attachment/part MIME type in the part switcher.
|
||||
| *completion_default*
|
||||
: The default style for the completion engine.
|
||||
| *completion_description*
|
||||
: Completion item descriptions.
|
||||
| *completion_gutter*
|
||||
: The completion gutter.
|
||||
| *completion_pill*
|
||||
: The completion pill.
|
||||
| *tab*
|
||||
: The style for the tab bar.
|
||||
| *stack*
|
||||
: The style for ui stack element.
|
||||
| *spinner*
|
||||
: The style for the loading spinner.
|
||||
| *border*
|
||||
: The style used to draw borders (only the *bg* color is used unless you customize *border-char-vertical* and/or *border-char-horizontal* in _aerc.conf_).
|
||||
| *selector_default*
|
||||
: The default style for the selector ui element.
|
||||
| *selector_focused*
|
||||
: The focused item in a selector ui element.
|
||||
| *selector_chooser*
|
||||
: The item chooser in a selector ui element.
|
||||
|
||||
These next style objects only affect the built-in *colorize* filter and must be
|
||||
declared under a *[viewer]* section of the styleset file.
|
||||
|
||||
[[ *Style Object*
|
||||
:[ *Description*
|
||||
| *url*
|
||||
: URLs.
|
||||
| *header*
|
||||
: RFC-822-like header names.
|
||||
| *signature*
|
||||
: Email signatures.
|
||||
| *diff_meta*
|
||||
: Patch diff meta lines.
|
||||
| *diff_chunk*
|
||||
: Patch diff chunks.
|
||||
| *diff_chunk_func*
|
||||
: Patch diff chunk function names.
|
||||
| *diff_add*
|
||||
: Patch diff added lines.
|
||||
| *diff_del*
|
||||
: Patch diff deleted lines.
|
||||
| *quote_1*
|
||||
: First level quoted text.
|
||||
| *quote_2*
|
||||
: Second level quoted text.
|
||||
| *quote_3*
|
||||
: Third level quoted text.
|
||||
| *quote_4*
|
||||
: Fourth level quoted text.
|
||||
| *quote_x*
|
||||
: Above fourth level quoted text.
|
||||
|
||||
User defined styles can be used to style arbitrary strings in go-templates (see
|
||||
_.Style_ in *aerc-templates*(7)). User styles must be defined in the _[user]_
|
||||
ini section. Styles can be referenced by their name (e.g. _red.fg_ is named
|
||||
"red").
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
[user]
|
||||
red.fg=red
|
||||
```
|
||||
|
||||
User styles are layered with other styles applied to the context in which they
|
||||
are rendered. The user style colors (fg and/or bg) will only be effective if the
|
||||
context style does not define any. Other boolean attributes will be merged with
|
||||
the underlying style boolean attributes.
|
||||
|
||||
For example, if the context style is:
|
||||
|
||||
fg=red bold
|
||||
|
||||
And the inline style is:
|
||||
|
||||
fg=yellow italic underline
|
||||
|
||||
The effective style will be:
|
||||
|
||||
fg=red bold italic underline
|
||||
|
||||
# FNMATCH STYLE WILDCARD MATCHING
|
||||
|
||||
The styleset configuration can be made simpler by using the fnmatch
|
||||
style wildcard matching for the style object.
|
||||
|
||||
The special characters used in the fnmatch wildcards are:
|
||||
|
||||
[[ *Pattern*
|
||||
:[ *Meaning*
|
||||
| *\**
|
||||
: Matches everything
|
||||
| *\?*
|
||||
: Matches any single character
|
||||
|
||||
For example, the following wildcards can be made using this syntax.
|
||||
|
||||
[[ *Example*
|
||||
:[ *Description*
|
||||
| *\**.*fg* = _blue_
|
||||
: Set the foreground color of all style objects to blue.
|
||||
| *\*list*.*bg* = _hotpink_
|
||||
: Set the background color of all style objects that end in list to hotpink.
|
||||
|
||||
Note that the statements in a given styleset are parsed in the order in which
|
||||
they are written. That means that with the following styleset:
|
||||
|
||||
```
|
||||
msglist_marked.fg = pink
|
||||
msglist_*.fg = white
|
||||
```
|
||||
|
||||
The *msglist_marked.fg* attribute will be set to _white_.
|
||||
|
||||
# SELECTED MODIFIER
|
||||
|
||||
The *selected* modifier can be applied to any style object. The style provided for
|
||||
the *selected* modifier is applied on top of the style object it corresponds to.
|
||||
|
||||
If you would like to make sure message that are flagged as read in the msglist
|
||||
appear in yellow foreground and black background. You can specify that with
|
||||
this:
|
||||
|
||||
*msglist_default*.*selected*.*fg* = _yellow_
|
||||
|
||||
*msglist_default*.*selected*.*bg* = _black_
|
||||
|
||||
If we specify the global style selected modifier using fnmatch as below:
|
||||
|
||||
*\**.*selected*.*reverse* = _toggle_
|
||||
|
||||
This toggles the reverse switch for selected version of all the style objects.
|
||||
|
||||
*selected* objects inherit from all attributes of their non-selected
|
||||
counterparts. *selected* statements are parsed after non-selected ones and
|
||||
effectively override the attributes of the non-selected style object.
|
||||
|
||||
# LAYERED STYLES
|
||||
|
||||
Some styles, (currently the *msglist_\** and *dirlist_\** ones) are applied in
|
||||
layers. If a style differs from the base (in this case *\*list_default*) then
|
||||
that style applies, unless overridden by a higher layer. If *fg* and *bg* colors
|
||||
are not defined explicitly (or defined to the default color) they will be
|
||||
considered as "transparent" and the colors from the lower layer will be used
|
||||
instead.
|
||||
|
||||
The order that *msglist_\** styles are applied in is, from first to last:
|
||||
|
||||
. *msglist_default*
|
||||
. *msglist_unread*
|
||||
. *msglist_read*
|
||||
. *msglist_answered*
|
||||
. *msglist_forwarded*
|
||||
. *msglist_flagged*
|
||||
. *msglist_deleted*
|
||||
. *msglist_result*
|
||||
. *msglist_thread_folded*
|
||||
. *msglist_thread_context*
|
||||
. *msglist_thread_orphan*
|
||||
. *msglist_marked*
|
||||
|
||||
So, the marked style will override all other msglist styles.
|
||||
|
||||
The order for *dirlist_\** styles is:
|
||||
|
||||
. *dirlist_default*
|
||||
. *dirlist_unread*
|
||||
. *dirlist_recent*
|
||||
|
||||
# DYNAMIC MESSAGE LIST STYLES
|
||||
|
||||
All *msglist_\** styles can be defined for specific email header values. The
|
||||
syntax is as follows:
|
||||
|
||||
*msglist_<name>*._<header>_,_<header_value>_.*<attribute>* = _<attr_value>_
|
||||
|
||||
If _<header_value>_ starts with a tilde character _~_, it will be interpreted as
|
||||
a regular expression. If you are writing regular expressions that try to match
|
||||
with _._ or _\._ you need to wrap like this _~/<expression>/_.
|
||||
|
||||
_<header>,<header_value>_ can be specified multiple times to narrow down matches
|
||||
to more than one email header value. In that case, all given headers must match
|
||||
for the dynamic style to apply.
|
||||
|
||||
Examples:
|
||||
|
||||
```
|
||||
msglist\*.X-Sourcehut-Patchset-Update,APPROVED.fg = green
|
||||
msglist\*.X-Sourcehut-Patchset-Update,NEEDS\_REVISION.fg = yellow
|
||||
msglist\*.X-Sourcehut-Patchset-Update,REJECTED.fg = red
|
||||
"msglist_*.Subject,~^(\\[[\w-]+\]\\s*)?\\[(RFC )?PATCH.fg" = #ffffaf
|
||||
"msglist_*.Subject,~^(\\[[\w-]+\]\\s*)?\\[(RFC )?PATCH.selected.fg" = #ffffaf
|
||||
"msglist_*.From,~^Bob.Subject,~^(\\[[\w-]+\]\\s*)?\\[(RFC )?PATCH.selected.fg" = #ffffaf
|
||||
"msglist_*.List-ID,~/lists\.sr\.ht/selected.fg" = blue
|
||||
```
|
||||
|
||||
When a dynamic style is matched to an email header, it will be used in priority
|
||||
compared to its non-dynamic counterpart. Provided the following styleset:
|
||||
|
||||
```
|
||||
msglist_marked.fg = blue
|
||||
msglist_*.Subject,~foobar.fg = red
|
||||
```
|
||||
|
||||
An email with _foobar_ in its subject will be colored in _red_ all the time,
|
||||
since *msglist_\** also applies to *msglist\_marked*.
|
||||
|
||||
When multiple _<header>,<header_value>_ pairs are given, the last style which
|
||||
matches all given patterns will be applied. Provided the following styleset:
|
||||
|
||||
```
|
||||
msglist_*.From,~^Bob.Subject,~foobar.fg = red
|
||||
msglist_*.From,~^Bob.fg = blue
|
||||
```
|
||||
|
||||
An email from _Bob_ with _foobar_ in its subject will be colored in _blue_,
|
||||
since the second style is a full match too.
|
||||
|
||||
# COLORS
|
||||
|
||||
The color values are set using any of the following methods:
|
||||
|
||||
_default_
|
||||
The color is set as per the system or terminal default.
|
||||
|
||||
_<Color name>_
|
||||
Any w3c approved color name is used to set colors for the style.
|
||||
|
||||
_<Hex code>_
|
||||
Hexcode for a color can be used. The format must be _#XXXXXX_.
|
||||
|
||||
_<Dec number>_
|
||||
Color based on the terminal palette index. Valid numbers are
|
||||
between _0_ and _255_.
|
||||
|
||||
# DEFAULTS
|
||||
|
||||
Before parsing a styleset, it is first initialized with the following defaults:
|
||||
|
||||
```
|
||||
*.selected.bg = 12
|
||||
*.selected.fg = 15
|
||||
*.selected.bold = true
|
||||
statusline_*.dim = true
|
||||
*warning.dim = false
|
||||
*warning.bold = true
|
||||
*warning.fg = 11
|
||||
*success.dim = false
|
||||
*success.bold = true
|
||||
*success.fg = 10
|
||||
*error.dim = false
|
||||
*error.bold = true
|
||||
*error.fg = 9
|
||||
border.bg = 12
|
||||
border.fg = 15
|
||||
title.bg = 12
|
||||
title.fg = 15
|
||||
title.bold = true
|
||||
header.fg = 4
|
||||
header.bold = true
|
||||
msglist_unread.bold = true
|
||||
msglist_deleted.dim = true
|
||||
msglist_marked.bg = 6
|
||||
msglist_marked.fg = 15
|
||||
msglist_pill.bg = 12
|
||||
msglist_pill.fg = 15
|
||||
part_mimetype.fg = 12
|
||||
selector_chooser.bold = true
|
||||
selector_focused.bold = true
|
||||
selector_focused.bg = 12
|
||||
selector_focused.fg = 15
|
||||
completion_*.bg = 8
|
||||
completion_pill.bg = 12
|
||||
completion_default.fg = 15
|
||||
completion_description.fg = 15
|
||||
completion_description.dim = true
|
||||
|
||||
[viewer]
|
||||
url.underline = true
|
||||
url.fg = 3
|
||||
header.bold = true
|
||||
header.fg = 4
|
||||
signature.dim = true
|
||||
signature.fg = 4
|
||||
diff_meta.bold = true
|
||||
diff_chunk.fg = 6
|
||||
diff_chunk_func.fg = 6
|
||||
diff_chunk_func.dim = true
|
||||
diff_add.fg = 2
|
||||
diff_del.fg = 1
|
||||
quote_1.fg = 6
|
||||
quote_2.fg = 4
|
||||
quote_3.fg = 6
|
||||
quote_3.dim = true
|
||||
quote_4.fg = 4
|
||||
quote_4.dim = true
|
||||
quote_x.fg = 5
|
||||
quote_x.dim = true
|
||||
```
|
||||
|
||||
You can choose either to reset everything (except in the *[viewer]* section) by
|
||||
starting your styleset with these two lines:
|
||||
|
||||
```
|
||||
*.default=true
|
||||
*.normal=true
|
||||
```
|
||||
|
||||
Or selectively override style object attributes.
|
||||
|
||||
If you want to also reset the *[viewer]* section, you need to insert the same
|
||||
two lines:
|
||||
|
||||
```
|
||||
[viewer]
|
||||
*.default=true
|
||||
*.normal=true
|
||||
```
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-config*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,598 @@
|
||||
AERC-TEMPLATES(7)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-templates - template file specification for *aerc*(1)
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
aerc uses the go text/template package for the template parsing.
|
||||
Refer to the go text/template documentation for the general syntax.
|
||||
The template syntax described below can be used for message template files and
|
||||
for dynamic formatting of some UI app.
|
||||
|
||||
Template files are composed of headers, followed by a newline, followed by the
|
||||
body text.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
X-Clacks-Overhead: GNU Terry Pratchett
|
||||
|
||||
Hello,
|
||||
|
||||
Greetings,
|
||||
Chuck
|
||||
```
|
||||
|
||||
If you have a template that doesn't add any header, it *must* be preceded by a
|
||||
newline, to avoid parsing parts of the body as header text.
|
||||
|
||||
All headers defined in the template will have precedence over any headers that
|
||||
are initialized by aerc (e.g. Subject, To, From, Cc) when composing a new
|
||||
message, forwarding or replying.
|
||||
|
||||
# MESSAGE DATA
|
||||
|
||||
The following data can be used in templates. Though they are not all
|
||||
available always.
|
||||
|
||||
*Addresses*
|
||||
An array of mail.Address. That can be used to add sender or recipient
|
||||
names to the template.
|
||||
|
||||
- _{{.From}}_: List of senders.
|
||||
- _{{.Peer}}_: List of senders or To recipients if the message is from
|
||||
you.
|
||||
- _{{.To}}_: List of To recipients. Not always Available.
|
||||
- _{{.ReplyTo}}_: List of ReplyTo recipients. Not always Available.
|
||||
- _{{.Cc}}_: List of Cc recipients. Not always Available.
|
||||
- _{{.Bcc}}_: List of Cc recipients. Not always Available.
|
||||
- _{{.OriginalFrom}}_: List of senders of the original message.
|
||||
Available for quoted reply and forward.
|
||||
|
||||
Example:
|
||||
|
||||
Get the name of the first sender.
|
||||
```
|
||||
{{(index .From 0).Name}}
|
||||
{{index (.From | names) 0}}
|
||||
```
|
||||
|
||||
Get the email address of the first sender.
|
||||
```
|
||||
{{(index .From 0).Address}}
|
||||
```
|
||||
|
||||
*Date and Time*
|
||||
The date and time information is always available and can be easily
|
||||
formatted.
|
||||
|
||||
- _{{.Date}}_: Date and time information when the compose window is opened.
|
||||
- _{{.OriginalDate}}_: Date and time when the original message was received.
|
||||
Available for quoted reply and forward.
|
||||
|
||||
To format the date fields, _dateFormat_ and _.Local_ are provided.
|
||||
Refer to the *TEMPLATE FUNCTIONS* section for details.
|
||||
|
||||
*Subject*
|
||||
The subject of the email (_ThreadPrefix_ will be empty unless threading
|
||||
is enabled).
|
||||
|
||||
```
|
||||
{{.ThreadPrefix}}{{if .ThreadFolded}}{{printf "{%d}" .ThreadCount}}{{end}}{{.Subject}}
|
||||
```
|
||||
|
||||
The subject of the email stripped of any _Re:_ and _Fwd:_ prefixes.
|
||||
|
||||
```
|
||||
{{.SubjectBase}}
|
||||
```
|
||||
*Threading*
|
||||
When threading is enabled, these attributes are available in the message
|
||||
list:
|
||||
|
||||
_ThreadPrefix_
|
||||
If the message is part of a thread, this will contain arrows
|
||||
that represent the message tree based on _In-Reply-To_ and
|
||||
_References_ headers.
|
||||
|
||||
_ThreadFolded_
|
||||
Will be _true_ if the message has thread children which are
|
||||
hidden by *:fold*.
|
||||
|
||||
_ThreadCount_
|
||||
The number of messages in the thread.
|
||||
|
||||
_ThreadUnread_
|
||||
The number of unread messages in the thread.
|
||||
|
||||
*Flags*
|
||||
List of message flags, not available when composing, replying nor
|
||||
forwarding. This is a list of strings that may be converted to a single
|
||||
string with *join*.
|
||||
|
||||
```
|
||||
{{.Flags | join ""}}
|
||||
```
|
||||
|
||||
*IsReplied*, *IsForwarded*, *HasAttachment*, *IsFlagged*, *IsRecent*, *IsUnread*,
|
||||
*IsMarked*, *IsDraft*
|
||||
Individual boolean flags. not available when composing, replying nor
|
||||
forwarding.
|
||||
|
||||
```
|
||||
{{if .IsFlagged}}★{{end}}
|
||||
```
|
||||
|
||||
*Labels*
|
||||
Message labels (for example notmuch tags). Not available when composing,
|
||||
replying nor forwarding. This is a list of strings that may be converted
|
||||
to a single string with *join*.
|
||||
|
||||
```
|
||||
{{.Labels | join " "}}
|
||||
```
|
||||
|
||||
*Size*
|
||||
The size of the message in bytes. Not available when composing, replying
|
||||
nor forwarding. It can be formatted with *humanReadable*.
|
||||
|
||||
```
|
||||
{{.Size | humanReadable}}
|
||||
```
|
||||
|
||||
*Filename*
|
||||
The full path of the message file. Not available when composing,
|
||||
replying nor forwarding. For the notmuch backend, it returns a random
|
||||
filename if there are multiple files associated with the message.
|
||||
|
||||
*Filenames*
|
||||
A list of the full paths of the files associated with the message. For
|
||||
maildir this is always a list with a single element. Not available when
|
||||
composing, replying nor forwarding.
|
||||
|
||||
*Any header value*
|
||||
Any header value of the email.
|
||||
|
||||
```
|
||||
{{.Header "x-foo-bar"}}
|
||||
```
|
||||
|
||||
Any header values of the original forwarded or replied message:
|
||||
|
||||
```
|
||||
{{.OriginalHeader "x-foo-bar"}}
|
||||
```
|
||||
*Message-ID*
|
||||
The message-ID of the message.
|
||||
|
||||
```
|
||||
:term b4 am {{.MessageId}}
|
||||
```
|
||||
|
||||
*MIME Type*
|
||||
MIME type is available for quoted reply and forward.
|
||||
|
||||
- _{{.OriginalMIMEType}}_: MIME type info of quoted mail part. Usually
|
||||
_text/plain_ or _text/html_.
|
||||
|
||||
*Original Message*
|
||||
When using quoted reply or forward, the original message is available in a
|
||||
field called _OriginalText_.
|
||||
|
||||
```
|
||||
{{.OriginalText}}
|
||||
```
|
||||
|
||||
*Signature*
|
||||
The signature of the currently selected account obtained from
|
||||
*signature-file* or *signature-cmd*.
|
||||
|
||||
```
|
||||
{{.Signature}}
|
||||
```
|
||||
|
||||
*Account info*
|
||||
The current account name:
|
||||
|
||||
```
|
||||
{{.Account}}
|
||||
```
|
||||
|
||||
The current account's backend:
|
||||
|
||||
```
|
||||
{{.AccountBackend}}
|
||||
```
|
||||
|
||||
The current account's from address:
|
||||
|
||||
```
|
||||
{{.AccountFrom}}
|
||||
{{.AccountFrom.Address}}
|
||||
```
|
||||
|
||||
Currently selected mailbox folder:
|
||||
|
||||
```
|
||||
{{.Folder}}
|
||||
```
|
||||
|
||||
Current message counts for all folders:
|
||||
|
||||
```
|
||||
{{.Recent}} {{.Unread}} {{.Exists}}
|
||||
{{.RUE}}
|
||||
```
|
||||
|
||||
IANA role of the mailbox, converted to lowercase:
|
||||
|
||||
```
|
||||
{{.Role}}
|
||||
```
|
||||
|
||||
*aerc* implements two additional custom roles: A 'query' role is given
|
||||
to folders from a notmuch query-map
|
||||
and 'virtual' indicates a virtual node in the directory tree listing:
|
||||
|
||||
```
|
||||
{{if eq .Role "query"}}{{...}}{{else}}{{...}}{{end}}
|
||||
```
|
||||
|
||||
Current message counts for specific folders:
|
||||
|
||||
```
|
||||
{{.Recent "inbox"}}
|
||||
{{.Unread "inbox" "aerc/pending"}}
|
||||
{{.Exists "archive" "spam" "foo/baz" "foo/bar"}}
|
||||
{{.RUE "inbox"}}
|
||||
```
|
||||
|
||||
*Status line*
|
||||
|
||||
The following data will only be available in the status line templates:
|
||||
|
||||
Connection state.
|
||||
|
||||
```
|
||||
{{.Connected}}
|
||||
{{.ConnectionInfo}}
|
||||
```
|
||||
|
||||
General status information (e.g. filter, search) separated with
|
||||
*[statusline].separator*.
|
||||
|
||||
```
|
||||
{{.ContentInfo}}
|
||||
```
|
||||
|
||||
Combination of *{{.ConnectionInfo}}* and *{{.StatusInfo}}* separated
|
||||
with *[statusline].separator*.
|
||||
|
||||
```
|
||||
{{.StatusInfo}}
|
||||
```
|
||||
|
||||
General on/off information (e.g. passthrough, threading, sorting, visual
|
||||
mode), separated with *[statusline].separator*.
|
||||
|
||||
```
|
||||
{{.TrayInfo}}
|
||||
```
|
||||
|
||||
Currently pressed key sequence that does not match any key binding
|
||||
and/or is incomplete.
|
||||
|
||||
```
|
||||
{{.PendingKeys}}
|
||||
```
|
||||
|
||||
# TEMPLATE FUNCTIONS
|
||||
|
||||
Besides the standard functions described in go's text/template documentation,
|
||||
aerc provides the following additional functions:
|
||||
|
||||
*wrap*
|
||||
Wrap the original text to the specified number of characters per line.
|
||||
|
||||
```
|
||||
{{wrap 72 .OriginalText}}
|
||||
```
|
||||
|
||||
*quote*
|
||||
Prepends each line with _"> "_.
|
||||
|
||||
```
|
||||
{{quote .OriginalText}}
|
||||
```
|
||||
|
||||
*trimSignature*
|
||||
Removes the signature froma passed in mail. Quoted signatures are kept
|
||||
as they are.
|
||||
|
||||
```
|
||||
{{trimSignature .OriginalText}}
|
||||
```
|
||||
|
||||
*join*
|
||||
Join the provided list of strings with a separator:
|
||||
|
||||
```
|
||||
{{.To | names | join ", "}}
|
||||
```
|
||||
|
||||
*split*
|
||||
Split a string into a string slice with a separator:
|
||||
|
||||
```
|
||||
{{.To | names | join ", " | split ", "}}
|
||||
```
|
||||
|
||||
*names*
|
||||
Extracts the names part from a mail.Address list. If there is no name
|
||||
available, the mbox (email address without @domain) is returned instead.
|
||||
|
||||
```
|
||||
{{.To | names | join ", "}}
|
||||
{{index (.To | names) 0}}
|
||||
```
|
||||
|
||||
*firstnames*
|
||||
Extracts the first names part from a mail.Address list. If there is no
|
||||
name available, the short mbox (start of email address without @domain)
|
||||
is returned instead.
|
||||
|
||||
```
|
||||
{{.To | firstnames | join ", "}}
|
||||
{{index (.To | firstnames) 0}}
|
||||
```
|
||||
|
||||
*initials*
|
||||
Extracts the initials from the names part from a mail.Address list. If
|
||||
there is no name available, the first letter of the email address is
|
||||
returned instead.
|
||||
|
||||
```
|
||||
{{.To | initials | join ", "}}
|
||||
{{index (.To | initials) 0}}
|
||||
```
|
||||
|
||||
*emails*
|
||||
Extracts the addresses part from a mail.Address list.
|
||||
|
||||
```
|
||||
{{.To | emails | join ", "}}
|
||||
{{index (.To | emails) 0}}
|
||||
```
|
||||
|
||||
*mboxes*
|
||||
Extracts the mbox part from a mail.Address list (i.e. _smith_ from
|
||||
_smith@example.com_).
|
||||
|
||||
```
|
||||
{{.To | mboxes | join ", "}}
|
||||
{{index (.To | mboxes) 0}}
|
||||
```
|
||||
|
||||
*shortmboxes*
|
||||
Extracts the short mbox part from a mail.Address list (i.e. _smith_ from
|
||||
_smith.and.wesson@example.com_).
|
||||
|
||||
```
|
||||
{{.To | shortmboxes | join ", "}}
|
||||
{{index (.To | shortmboxes) 0}}
|
||||
```
|
||||
|
||||
*persons*
|
||||
Formats a list of mail.Address into a list of strings containing the
|
||||
human readable form of RFC5322 (e.g. _Firstname Lastname
|
||||
<email@address.tld>_).
|
||||
|
||||
```
|
||||
{{.To | persons | join ", "}}
|
||||
{{index (.To | persons) 0}}
|
||||
```
|
||||
|
||||
*.Attach*
|
||||
Attaches a file to the message being composed.
|
||||
|
||||
```
|
||||
{{.Attach '/usr/libexec/aerc/filters/html'}}
|
||||
```
|
||||
|
||||
*exec*
|
||||
Execute external command, provide the second argument to its stdin.
|
||||
The command is executed with the same search *$PATH* than aerc filters
|
||||
(see *aerc-config*(5) in the *FILTERS* section for more details).
|
||||
|
||||
```
|
||||
{{exec `html` .OriginalText}}
|
||||
```
|
||||
|
||||
*.Local*
|
||||
Convert the date to the local timezone as specified by the locale.
|
||||
|
||||
```
|
||||
{{.Date.Local}}
|
||||
```
|
||||
|
||||
*dateFormat*
|
||||
Format date and time according to the format passed as the second argument.
|
||||
The format must be specified according to go's time package format.
|
||||
|
||||
```
|
||||
{{dateFormat .Date "Mon Jan 2 15:04:05 -0700 MST 2006"}}
|
||||
```
|
||||
|
||||
You can also use the _.DateAutoFormat_ method to format the date
|
||||
according to *\*-time\*format* settings:
|
||||
|
||||
```
|
||||
{{.DateAutoFormat .OriginalDate.Local}}
|
||||
```
|
||||
|
||||
*now*
|
||||
Return the current date as a golang time.Time object that can be
|
||||
formatted with *dateFormat*.
|
||||
|
||||
```
|
||||
{{dateFormat now "Mon Jan 2 15:04:05 -0700 MST 2006"}}
|
||||
```
|
||||
|
||||
*humanReadable*
|
||||
Return the human readable form of an integer value.
|
||||
|
||||
```
|
||||
{{humanReadable 3217653721}}
|
||||
```
|
||||
|
||||
*cwd*
|
||||
Return the current working directory with the user home dir replaced by
|
||||
_~_.
|
||||
|
||||
```
|
||||
{{cwd}}
|
||||
```
|
||||
|
||||
*compactDir*
|
||||
Reduce a directory path into a compact form. The directory name will be
|
||||
split with _/_ and each part will be reduced to the first letter in its
|
||||
name: _INBOX/01_WORK/PROJECT_ will become _I/W/PROJECT_.
|
||||
|
||||
```
|
||||
{{compactDir .Folder}}
|
||||
```
|
||||
|
||||
*contains*
|
||||
Checks if a string contains a substring.
|
||||
|
||||
```
|
||||
{{contains "<!DOCTYPE html>" .OriginalText}}
|
||||
```
|
||||
|
||||
*hasPrefix*
|
||||
Checks if a string has a prefix.
|
||||
|
||||
```
|
||||
{{hasPrefix "Business" .Folder}}
|
||||
```
|
||||
|
||||
*toLower*
|
||||
Convert a string to lowercase.
|
||||
|
||||
```
|
||||
{{toLower "SPECIAL OFFER!"}}
|
||||
```
|
||||
|
||||
*toUpper*
|
||||
Convert a string to uppercase.
|
||||
|
||||
```
|
||||
{{toUpper "important"}}
|
||||
```
|
||||
|
||||
*replace*
|
||||
Perform a regular expression substitution on the passed string.
|
||||
|
||||
```
|
||||
{{replace `(.+) - .+ at .+\..+` `$1` ((index .OriginalFrom 0).Name)}}
|
||||
```
|
||||
|
||||
*head*
|
||||
Return first n characters from string.
|
||||
|
||||
```
|
||||
{{"hello" | head 2}}
|
||||
```
|
||||
|
||||
*tail*
|
||||
Return last n characters from string.
|
||||
|
||||
```
|
||||
{{"hello" | tail 2}}
|
||||
```
|
||||
|
||||
*.Style*
|
||||
Apply a user-defined style (see *aerc-stylesets*(7)) to a string.
|
||||
|
||||
```
|
||||
{{.Style .Account "red"}}
|
||||
{{.Style .ThreadPrefix "thread"}}{{.Subject}}
|
||||
```
|
||||
|
||||
*.StyleSwitch*
|
||||
Apply a user-defined style (see *aerc-stylesets*(7)) to a string if it
|
||||
matches one of the associated regular expressions. If the string does
|
||||
not match any of the expressions, leave it unstyled.
|
||||
|
||||
```
|
||||
{{.StyleSwitch .Subject (`^(\[[\w-]+\]\s*)?\[(RFC )?PATCH` "cyan")}}
|
||||
{{.StyleSwitch (.From | names | join ", ") (case `Tim` "cyan") (case `Robin` "pink-blink") (default "blue")}}
|
||||
```
|
||||
|
||||
*.StyleMap*
|
||||
Apply user-defined styles (see *aerc-stylesets*(7)) to elements of
|
||||
a string list. The logic is the same than *.StyleSwitch* but works on
|
||||
a list of elements. An additional *exclude* option is available to
|
||||
remove the matching elements from the list.
|
||||
|
||||
```
|
||||
{{.StyleMap .Labels (exclude .Folder) (exclude `^spam$`) (case `^inbox$` "red") (case `^Archive/.*` "green") (default "blue") | join " "}}
|
||||
```
|
||||
|
||||
*version*
|
||||
Returns the version of aerc, which can be useful for things like X-Mailer.
|
||||
|
||||
```
|
||||
X-Mailer: aerc {{version}}
|
||||
```
|
||||
|
||||
*match*
|
||||
Check if a string matches a regular expression. This is intended for
|
||||
use in conditional control flow:
|
||||
|
||||
```
|
||||
{{if match .Folder `.*/Archive-[0-9]+`}}{{humanReadable .Unread}}{{end}}
|
||||
```
|
||||
|
||||
*switch*
|
||||
Do switch/case/default control flows. The switch value is compared with
|
||||
regular expressions. If none of the case/default arms match, an empty
|
||||
string is returned.
|
||||
|
||||
```
|
||||
{{switch .Folder (case `^INBOX$` "📥") (case `^Archive/.*` "🗃") (default "📁")}}
|
||||
```
|
||||
|
||||
*map*
|
||||
Transform a string list into another one. The logic is the same than
|
||||
*switch* but works on a list of elements. An additional *exclude* option
|
||||
is available to remove the matching elements from the list.
|
||||
|
||||
```
|
||||
{{map .Labels (exclude .Folder) (exclude `^spam$`) (case `^inbox$` "📥") (case `^Archive/.*` "🗃") | join " "}}
|
||||
```
|
||||
|
||||
*Function chaining*
|
||||
All of the template functions can be chained together if needed.
|
||||
|
||||
Example: Automatic HTML parsing for text/html mime type messages
|
||||
|
||||
```
|
||||
{{if eq .OriginalMIMEType "text/html"}}
|
||||
{{exec `/usr/libexec/aerc/filters/html` .OriginalText | wrap 72 | quote}}
|
||||
{{else}}
|
||||
{{wrap 72 .OriginalText | trimSignature | quote}}
|
||||
{{end}}
|
||||
```
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc*(1) *aerc-config*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
@@ -0,0 +1,157 @@
|
||||
AERC-TUTORIAL(7)
|
||||
|
||||
# NAME
|
||||
|
||||
aerc-tutorial - tutorial for *aerc*(1)
|
||||
|
||||
# INTRODUCTION
|
||||
|
||||
Welcome to aerc! This tutorial will guide you through your first steps in using
|
||||
the client. This tutorial is a man page - you can read it again later with
|
||||
*:help* _tutorial_ from aerc, or *man aerc-tutorial* from your terminal.
|
||||
|
||||
First, let's introduce some basic keybindings. For convention, we'll use *<C-p>*
|
||||
to represent _Ctrl+p_, which matches the convention used for writing keybindings
|
||||
for aerc.
|
||||
|
||||
*<C-p>*, *<C-n>*
|
||||
Cycles to the previous or next tab
|
||||
|
||||
Try using these now to switch between your message list and the tutorial. In
|
||||
your message list, we use vim-style keys to get around.
|
||||
|
||||
*k*, *j*
|
||||
Scrolls up and down between messages
|
||||
|
||||
*<C-u>*, *<C-d>*
|
||||
Scrolls half a page up or down
|
||||
|
||||
*g*, *G*
|
||||
Selects the first or last message, respectively
|
||||
|
||||
*K*, *J*
|
||||
Switches between folders in the sidebar
|
||||
|
||||
*<Enter>*
|
||||
Opens the selected message
|
||||
|
||||
You can also search the selected folder with */*, or filter with *\\ *. When
|
||||
searching you can use *n* and *p* to jump to the next and previous result.
|
||||
Filtering hides any non-matching message.
|
||||
|
||||
# THE MESSAGE VIEWER
|
||||
|
||||
Press *<Enter>* to open a message. By default, the message viewer will display
|
||||
your message using *less*(1). This should also have familiar, vim-like
|
||||
keybindings for scrolling around in your message.
|
||||
|
||||
Multipart messages (messages with attachments, or messages with several
|
||||
alternative formats) show a part selector on the bottom of the message viewer.
|
||||
|
||||
*<C-k>*, *<C-j>*
|
||||
Cycle between parts of a multipart message
|
||||
|
||||
*q*
|
||||
Close the message viewer
|
||||
|
||||
To show HTML messages parts, the _text/html_ filter in your _aerc.conf_ file
|
||||
(which is probably in _~/.config/aerc/_) requires *w3m* along with optional
|
||||
dependencies for safer network isolation: *unshare* (from *util-linux*) or
|
||||
*socksify* (from *dante-utils*).
|
||||
|
||||
You can also do many tasks you could do in the message list from here, like
|
||||
replying to emails, deleting the email, or view the next and previous message
|
||||
(*J* and *K*).
|
||||
|
||||
# COMPOSING MESSAGES
|
||||
|
||||
Return to the message list by pressing *q* to dismiss the message viewer. Once
|
||||
there, let's compose a message.
|
||||
|
||||
*C*
|
||||
Compose a new message
|
||||
|
||||
*rr*
|
||||
Reply-all to a message
|
||||
|
||||
*rq*
|
||||
Reply-all to a message, and pre-fill the editor with a quoted version of the
|
||||
message being replied to
|
||||
|
||||
*Rr*
|
||||
Reply to a message
|
||||
|
||||
*Rq*
|
||||
Reply to a message, and pre-fill the editor with a quoted version of the
|
||||
message being replied to
|
||||
|
||||
For now, let's use *C* to compose a new message. The message composer will
|
||||
appear. You should see To, From, and Subject lines, as well as your *$EDITOR*.
|
||||
You can use *<Tab>* or *<C-j>* and *<C-k>* to cycle between these fields (tab
|
||||
won't cycle between fields once you enter the editor, but *<C-j>* and *<C-k>*
|
||||
will).
|
||||
|
||||
Let's send an email to yourself. Note that the To and From headers expect RFC
|
||||
5322 addresses, e.g. *John Doe <john@example.org>*, or simply
|
||||
*<john@example.org>*. Separate multiple recipients with commas. Go ahead and
|
||||
fill out an email, then close the editor.
|
||||
|
||||
The message review screen is shown next. You have a chance now to revise the
|
||||
email before it's sent. Press *y* to send the email if it looks good.
|
||||
|
||||
*Note*: when using the terminal in the message view, you can summon aerc's ex
|
||||
command line by using *<C-x>*. *:* is sent to the editor.
|
||||
|
||||
# USING THE TERMINAL
|
||||
|
||||
aerc comes with an embedded terminal, which you've already used to view and edit
|
||||
emails. We can also use this for other purposes, such as referencing a git
|
||||
repository while reviewing a patch. From the message list, we can use the
|
||||
following keybindings to open a terminal:
|
||||
|
||||
*<C-t>*
|
||||
Opens a new terminal tab, running your shell
|
||||
|
||||
*$*, *!*
|
||||
Prompts for a command to run, then opens a new terminal tab running that
|
||||
command
|
||||
|
||||
*|*
|
||||
Prompts for a command to run, then pipes the selected email into that
|
||||
command and displays the result on a new terminal tab
|
||||
|
||||
Try pressing *$* and entering _top_. You can also use the *:cd* command to
|
||||
change aerc's working directory, and the directory in which new terminals run.
|
||||
Use *:pwd* to see it again if you're not sure where you are.
|
||||
|
||||
# ADDITIONAL NOTES
|
||||
|
||||
## COMMANDS
|
||||
|
||||
Every keybinding is ultimately bound to an aerc command. You can also summon the
|
||||
command line by pressing *:*, then entering one of these commands. See *aerc*(1)
|
||||
or *:help* for a full list of commands.
|
||||
|
||||
## MESSAGE FILTERS
|
||||
|
||||
When displaying messages in the message viewer, aerc will pipe them through a
|
||||
message filter first. This allows you to decode messages in non-plaintext
|
||||
formats, add syntax highlighting, etc. aerc ships with a few default filters:
|
||||
|
||||
- _text/plain_ parts are piped through the _colorize_ built-in filter which
|
||||
handles URL, quotes and diff coloring.
|
||||
- _text/calendar_ is processed to be human readable text
|
||||
- _text/html_ (disabled by default) can be uncommented to pipe through the
|
||||
built-in _html_ filter.
|
||||
|
||||
## CUSTOMIZING AERC
|
||||
|
||||
Aerc is highly customizable. Review *aerc-config*(5) (or use *:help config*) to
|
||||
learn more about how to add custom keybindings, install new message filters,
|
||||
change its appearance and behavior, and so on.
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
+1009
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,103 @@
|
||||
CARDDAV-QUERY(1)
|
||||
|
||||
# NAME
|
||||
|
||||
carddav-query - Query a CardDAV server for contact names and emails.
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
*carddav-query* [*-h*] [*-l* _<limit>_] [*-v*] [*-c* _<file>_]
|
||||
\[*-s* _<section>_] [*-k* _<key\_source>_] [*-C* _<key\_cred\_cmd>_]
|
||||
\[*-s* _<server\_url>_] [*-u* _<username>_] [*-p* _<password>_] _<term>_ [_<term>_ ...]
|
||||
|
||||
This tool has been tailored for use as *address-book-cmd* in *aerc-config*(5).
|
||||
|
||||
# OPTIONS
|
||||
|
||||
*-h*, *--help*
|
||||
show this help message and exit
|
||||
|
||||
*-v*, *--verbose*
|
||||
Print debug info on stderr.
|
||||
|
||||
*-l* _<limit>_, *--limit* _<limit>_
|
||||
Maximum number of results returned by the server. If the server does not
|
||||
support limiting, this option will be disregarded.
|
||||
|
||||
Default: _10_
|
||||
|
||||
*-c* _<file>_, *--config-file* _<file>_
|
||||
INI configuration file from which to read the CardDAV URL endpoint.
|
||||
|
||||
Default: _~/.config/aerc/accounts.conf_
|
||||
|
||||
*-S* _<section>_, *--config-section* _<section>_
|
||||
INI configuration section where to find _<key\_source>_ and
|
||||
_<key\_cred\_cmd>_. By default the first section where _<key\_source>_
|
||||
is found will be used.
|
||||
|
||||
*-k* _<key\_source>_, *--config-key-source* _<key\_source>_
|
||||
INI configuration key to lookup in _<section>_ from _<file>_. The value
|
||||
must respect the following format:
|
||||
|
||||
https?://_<username>_[:_<password>_]@_<hostname>_/_<path/to/addressbook>_
|
||||
|
||||
Both _<username>_ and _<password>_ must be percent encoded. If
|
||||
_<password>_ is omitted, it can be provided via *--config-key-cred-cmd*
|
||||
or *--password*.
|
||||
|
||||
Default: _carddav-source_
|
||||
|
||||
*-C* _<key\_cred\_cmd>_, *--config-key-cred-cmd* _<key\_cred\_cmd>_
|
||||
INI configuration key to lookup in _<section>_ from _<file>_. The value
|
||||
is a command that will be executed with *sh -c* to determine
|
||||
_<password>_ if it is not present in _<key\_source>_.
|
||||
|
||||
Default: _carddav-source-cred-cmd_
|
||||
|
||||
*-s* _<server_url>_, *--server-url* _<server_url>_
|
||||
CardDAV server URL endpoint. Overrides configuration file.
|
||||
|
||||
*-u* _<username>_, *--username* _<username>_
|
||||
Username to authenticate on the server. Overrides configuration file.
|
||||
|
||||
*-p* _<password>_, *--password* _<password>_
|
||||
Password for the specified user. Overrides configuration file.
|
||||
|
||||
# POSITIONAL ARGUMENTS
|
||||
|
||||
_<term>_
|
||||
Search term. Will be used to search contacts from their FN (formatted
|
||||
name), EMAIL, NICKNAME, ORG (company) and TITLE fields.
|
||||
|
||||
# EXAMPLES
|
||||
|
||||
These are excerpts of _~/.config/aerc/accounts.conf_.
|
||||
|
||||
## Fastmail
|
||||
|
||||
```
|
||||
[fastmail]
|
||||
carddav-source = https://janedoe%40fastmail.com@carddav.fastmail.com/dav/addressbooks/user/janedoe@fastmail.com/Default
|
||||
carddav-source-cred-cmd = pass fastmail.com/janedoe
|
||||
address-book-cmd = carddav-query -S fastmail %s
|
||||
```
|
||||
|
||||
## Gmail
|
||||
|
||||
```
|
||||
[gmail]
|
||||
carddav-source = https://johndoe%40gmail.com@www.googleapis.com/carddav/v1/principals/johndoe@gmail.com/lists/default
|
||||
carddav-source-cred-cmd = pass gmail.com/johndoe
|
||||
address-book-cmd = carddav-query -S gmail %s
|
||||
```
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
*aerc-config*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Originally created by Drew DeVault and maintained by Robin Jarry who is assisted
|
||||
by other open source contributors. For more information about aerc development,
|
||||
see _https://sr.ht/~rjarry/aerc/_.
|
||||
Reference in New Issue
Block a user