.\" Generated by scdoc 1.11.3 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "AERC-CONFIG" "5" "2024-04-07" .PP .SH NAME .PP aerc-config - configuration file format for \fBaerc\fR(1) .PP .SH SYNOPSIS .PP There are three aerc config files: \fIaerc.\&conf\fR, \fIbinds.\&conf\fR, and \fIaccounts.\&conf\fR.\& The last one must be kept secret, as it may include your account credentials.\& We look for these files in your XDG config home plus \fIaerc\fR, which defaults to \fI~/.\&config/aerc\fR.\& Alternate files can be specified via command line arguments, see \fBaerc\fR(1).\& .PP Examples of these config files are typically included with your installation of aerc and are usually installed in \fI/usr/share/aerc\fR.\& .PP Each file uses the ini format, and consists of sections with keys and values.\& A line beginning with \fI#\fR is considered a comment and ignored, as are empty lines.\& New sections begin with \fI[section-name]\fR on a single line, and keys and values are separated with \fI=\fR.\& .PP This manual page focuses on \fIaerc.\&conf\fR.\& \fIbinds.\&conf\fR is detailed in \fBaerc-binds\fR(5) and \fIaccounts.\&conf\fR in \fBaerc-accounts\fR(5).\& .PP \fIaerc.\&conf\fR is used for configuring the general appearance and behavior of aerc.\& .PP .SH GENERAL OPTIONS .PP These options are configured in the \fB[general]\fR section of \fIaerc.\&conf\fR.\& .PP \fBdefault-save-path\fR = \fI\fR .RS 4 Used as a default path for save operations if no other path is specified.\& .PP .RE \fBpgp-provider\fR = \fIauto\fR|\fIgpg\fR|\fIinternal\fR .RS 4 If set to \fIgpg\fR, aerc will use system gpg binary and keystore for all crypto operations.\& If set to \fIinternal\fR, the internal openpgp keyring will be used.\& If set to \fIauto\fR, the system gpg will be preferred unless the internal keyring already exists, in which case the latter will be used.\& .PP Default: \fIauto\fR .PP .RE \fBunsafe-accounts-conf\fR = \fItrue\fR|\fIfalse\fR .RS 4 By default, the file permissions of \fIaccounts.\&conf\fR must be restrictive and only allow reading by the file owner (\fI0600\fR).\& Set this option to \fItrue\fR to ignore this permission check.\& Use this with care as it may expose your credentials.\& .PP Default: \fIfalse\fR .PP .RE \fBlog-file\fR = \fI\fR .RS 4 Output log messages to specified file.\& A path starting with \fI~/\fR is expanded to the user home dir.\& When redirecting aerc'\&s output to a file using \fI>\fR shell redirection, this setting is ignored and log messages are printed to stdout.\& .PP .RE \fBlog-level\fR = \fItrace\fR|\fIdebug\fR|\fIinfo\fR|\fIwarn\fR|\fIerror\fR .RS 4 Only log messages above the specified level to \fBlog-file\fR.\& Supported levels are: \fItrace\fR, \fIdebug\fR, \fIinfo\fR, \fIwarn\fR and \fIerror\fR.\& When redirecting aerc'\&s output to a file using \fI>\fR shell redirection, this setting is ignored and the log level is forced to \fItrace\fR.\& .PP Default: \fIinfo\fR .PP .RE \fBdisable-ipc\fR = \fItrue\fR|\fIfalse\fR .RS 4 Disable the execution of commands over IPC.\& .PP Default: \fIfalse\fR .PP .RE \fBterm\fR = \fI\fR .RS 4 Set the $TERM environment variable used for the embedded terminal.\& .PP Default: \fIxterm-256color\fR .PP .RE \fBenable-osc8\fR = \fItrue\fR|\fIfalse\fR .RS 4 Enable the embedded terminal to output OSC 8 (hyperlinks) escape sequences.\& Not all terminal emulators handle OSC 8 sequences properly and can produce confusing results, disable this setting if that occurs.\& .PP Default: \fIfalse\fR .PP .RE \fBdefault-menu-cmd\fR = \fI\fR .RS 4 Default shell command to use for \fB:menu\fR.\& This will be executed with \fIsh -c\fR and will run in an popover dialog.\& .PP Any occurrence of \fI%f\fR will be replaced by a temporary file path where the command is expected to write output lines to be consumed by \fB:menu\fR.\& Otherwise, the lines will be read from the command'\&s standard output.\& .PP Example: .RS 4 \fBdefault-menu-cmd\fR = \fIfzf\fR .PP .RE .RE .SH UI OPTIONS .PP These options are configured in the \fB[ui]\fR section of \fIaerc.\&conf\fR.\& .PP \fBindex-columns\fR = \fI\fR .RS 4 Describes the format for each row in a mailbox view.\& This is a comma separated list of column names with an optional align and width suffix.\& After the column name, one of the \fI<\fR (left), \fI:\fR (center) or \fI>\fR (right) alignment characters can be added (by default, left) followed by an optional width specifier.\& The width is either an integer representing a fixed number of characters, or a percentage between \fI1%\fR and \fI99%\fR representing a fraction of the terminal width.\& It can also be one of the \fI*\fR (auto) or \fI=\fR (fit) special width specifiers.\& Auto width columns will be equally attributed the remaining terminal width.\& Fit width columns take the width of their contents.\& If no width specifier is set, \fI*\fR is used by default.\& .PP Default: \fIdate<20,name<17,flags>4,subject<*\fR .PP .RE \fBcolumn-separator\fR = \fI""\fR .RS 4 String separator inserted between columns.\& When a column width specifier is an exact number of characters, the separator is added to it (i.\&e.\& the exact width will be fully available for that column contents).\& .PP Default: \fI" "\fR .PP .RE \fBcolumn-\fR = \fI\fR .RS 4 Each name in \fBindex-columns\fR must have a corresponding \fBcolumn-\fR setting.\& All \fBcolumn-\fR settings accept golang text/template syntax.\& .PP By default, these columns are defined: .PP .nf .RS 4 column-date = {{\&.DateAutoFormat \&.Date\&.Local}} column-name = {{index (\&.From | names) 0}} column-flags = {{\&.Flags | join ""}} column-subject = {{\&.ThreadPrefix}}{{if \&.ThreadFolded}}{{printf "{%d}" \&.ThreadCount}}{{end}}{{\&.Subject}} .fi .RE .PP See \fBaerc-templates\fR(7) for all available symbols and functions.\& .PP .RE \fBtimestamp-format\fR = \fI\fR .RS 4 See time.\&Time#Format at https://godoc.\&org/time#Time.\&Format .PP Default: \fI2006-01-02 03:04 PM\fR (ISO 8601 + 12 hour time) .PP .RE \fBthis-day-time-format\fR = \fI\fR .RS 4 Index-only time format for messages that were received/sent today.\& If this is not specified, \fBtimestamp-format\fR is used instead.\& .PP .RE \fBthis-week-time-format\fR = \fI\fR .RS 4 Index-only time format for messages that were received/sent within the last 7 days.\& If this is not specified, \fBtimestamp-format\fR is used instead.\& .PP .RE \fBthis-year-time-format\fR = \fI\fR .RS 4 Index-only time format for messages that were received/sent this year.\& If this is not specified, \fBtimestamp-format\fR is used instead.\& .PP .RE \fBmessage-view-timestamp-format\fR = \fI\fR .RS 4 If set, overrides \fBtimestamp-format\fR for the message view.\& .PP .RE \fBmessage-view-this-day-time-format\fR = \fI\fR .RS 4 If set, overrides \fBtimestamp-format\fR in the message view for messages that were received/sent today.\& .PP .RE \fBmessage-view-this-week-time-format\fR = \fI\fR .RS 4 If set, overrides \fBtimestamp-format\fR in the message view for messages that were recieved/sent within the last 7 days.\& .PP .RE \fBmessage-view-this-year-time-format\fR = \fI\fR .RS 4 If set, overrides \fBtimestamp-format\fR in the message view for messages that were received/sent this year.\& .PP .RE \fBsidebar-width\fR = \fI\fR .RS 4 Width of the sidebar, including the border.\& Set to zero to disable the sidebar.\& .PP Default: \fI20\fR .PP .RE \fBempty-message\fR = \fI\fR .RS 4 Message to display when viewing an empty folder.\& .PP Default: \fI(no messages)\fR .PP .RE \fBempty-dirlist\fR = \fI\fR .RS 4 Message to display when no folders exists or are all filtered.\& .PP Default: \fI(no folders)\fR .PP .RE \fBempty-subject\fR = \fI\fR .RS 4 Text to display in message list, when the subject is empty.\& .PP Default: \fI(no subject)\fR .PP .RE \fBmouse-enabled\fR = \fItrue\fR|\fIfalse\fR .RS 4 Enable mouse events in the ui, e.\&g.\& clicking and scrolling with the mousewheel .PP Default: \fIfalse\fR .PP .RE \fBnew-message-bell\fR = \fItrue\fR|\fIfalse\fR .RS 4 Ring the bell when a new message is received.\& .PP Default: \fItrue\fR .PP .RE \fBtab-title-account\fR = \fI\fR .RS 4 The template to use for account tab titles.\& See \fBaerc-templates\fR(7) for available field names.\& To conditionally show the unread count next to the account name, set to: .PP .RS 4 \fBtab-title-account\fR = {{.\&Account}} {{if .\&Unread}}({{.\&Unread}}){{end}} .PP .RE Default: \fI{{.\&Account}}\fR .PP .RE \fBtab-title-composer\fR = \fI\fR .RS 4 The template to use for composer tab titles.\& See \fBaerc-templates\fR(7) for available field names.\& .PP Default: \fI{{.\&Subject}}\fR .PP .RE \fBtab-title-viewer\fR = \fI\fR .RS 4 The template to use for viewer tab titles.\& See \fBaerc-templates\fR(7) for available field names.\& .PP Default: \fI{{if .\&Subject}}{{.\&Subject}}{{else}}(no subject){{end}}\fR .PP .RE \fBpinned-tab-marker\fR = \fI""\fR .RS 4 Marker to show before a pinned tab'\&s name.\& .PP Default: \fI`\fR .PP .RE \fBspinner\fR = \fI""\fR .RS 4 Animation shown while loading, split by \fBspinner-delimiter\fR (below) .PP Examples: .PD 0 .IP \(bu 4 \fBspinner\fR = \fI"-_-,_-_"\fR .IP \(bu 4 \fBspinner\fR = \fI'\&.\& , .\&'\&\fR .IP \(bu 4 \fBspinner\fR = \fI",|,/,-"\fR .PD .PP Default: \fI"[.\&.\&] , [.\&.\&] , [.\&.\&] , [.\&.\&] , [.\&.\&], [.\&.\&] , [.\&.\&] , [.\&.\&] "\fR .PP .RE \fBspinner-delimiter\fR = \fI\fR .RS 4 Spinner delimiter to split string into an animation .PP Default: \fI,\fR .PP .RE \fBspinner-interval\fR = \fI\fR .RS 4 The delay between each spinner frame .PP Default: \fI200ms\fR .PP .RE \fBsort\fR = \fI\fR .RS 4 List of space-separated criteria to sort the messages by, see \fB:sort\fR command in \fBaerc\fR(1) for reference.\& Prefixing a criterion with \fI-r\fR reverses that criterion.\& .PP Example: .RS 4 \fBsort\fR = \fIfrom -r date\fR .PP .RE .RE \fBdirlist-left\fR = \fI\fR .RS 4 Template for the left side of the directory list.\& See \fBaerc-templates\fR(7) for all available fields and functions.\& .PP Default: \fI{{.\&Folder}}\fR .PP .RE \fBdirlist-right\fR = \fI\fR .RS 4 Template for the right side of the directory list.\& See \fBaerc-templates\fR(7) for all available fields and functions.\& .PP Default: \fI{{if .\&Unread}}{{humanReadable .\&Unread}}/{{end}}{{if .\&Exists}}{{humanReadable .\&Exists}}{{end}}\fR .PP .RE \fBdirlist-delay\fR = \fI\fR .RS 4 Delay after which the messages are actually listed when entering a directory.\& This avoids loading messages when skipping over folders and makes the UI more responsive.\& If you do not want that, set it to \fI0s\fR.\& .PP Default: \fI200ms\fR .PP .RE \fBdirlist-tree\fR = \fItrue\fR|\fIfalse\fR .RS 4 Display the directory list as a foldable tree.\& .PP Default: \fIfalse\fR .PP .RE \fBdirlist-collapse\fR = \fI\fR .RS 4 If \fBdirlist-tree\fR is enabled, set level at which folders are collapsed by default.\& Set to \fI0\fR to disable.\& .PP Default: \fI0\fR .PP .RE \fBnext-message-on-delete\fR = \fItrue\fR|\fIfalse\fR .RS 4 Moves to next message when the current message is deleted, archived, or moved.\& .PP Default: \fItrue\fR .PP .RE \fBauto-mark-read\fR = \fItrue\fR|\fIfalse\fR .RS 4 Set the \fIseen\fR flag when a message is opened in the message viewer.\& .PP Default: \fItrue\fR .PP .RE \fBcompletion-popovers\fR = \fItrue\fR|\fIfalse\fR .RS 4 Shows potential auto-completions for text inputs in popovers.\& .PP Default: \fItrue\fR .PP .RE \fBcompletion-delay\fR = \fI\fR .RS 4 How long to wait after the last input before auto-completion is triggered.\& .PP Default: \fI250ms\fR .PP .RE \fBcompletion-min-chars\fR = \fI\fR .RS 4 The minimum required characters to allow auto-completion to be triggered after \fBcompletion-delay\fR.\& .PP Setting this to \fImanual\fR disables automatic completion, leaving only the manually triggered completion with the \fB$complete\fR key (see \fBaerc-binds\fR(5) for more details).\& .PP Default: \fI1\fR .PP .RE \fBborder-char-vertical\fR = \fI""\fR .br \fBborder-char-horizontal\fR = \fI""\fR .RS 4 Set stylable characters (via the \fBborder\fR element) for vertical and horizontal borders.\& .PP Default: \fI" "\fR .PP .RE \fBstylesets-dirs\fR = \fI\fR .RS 4 The directories where the stylesets are stored.\& The config takes a colon-separated list of dirs.\& If this is unset or if a styleset cannot be found, the following paths will be used as a fallback in that order: .PP .nf .RS 4 ${XDG_CONFIG_HOME:-~/\&.config}/aerc/stylesets ${XDG_DATA_HOME:-~/\&.local/share}/aerc/stylesets /usr/local/share/aerc/stylesets /usr/share/aerc/stylesets .fi .RE .PP .RE \fBstyleset-name\fR = \fI\fR .RS 4 The name of the styleset to be used to style the ui elements.\& The stylesets are stored in the \fIstylesets\fR directory in the config directory.\& .PP Default: \fIdefault\fR .PP Have a look at \fBaerc-stylesets\fR(7) as to how a styleset looks like.\& .PP .RE \fBicon-unencrypted\fR = \fI\fR .RS 4 The icon to display for unencrypted mails.\& The status indicator is only displayed if an icon is set.\& .PP .RE \fBicon-encrypted\fR = \fI\fR .RS 4 The icon to display for encrypted mails.\& .PP Default: \fI[e]\fR .PP .RE \fBicon-signed\fR = \fI\fR .RS 4 The icon to display for signed mails where the signature was successfully validated.\& .PP Default: \fI[s]\fR .PP .RE \fBicon-signed-encrypted\fR = \fI\fR .RS 4 The icon to display for signed and encrypted mails where the signature was successfully verified.\& The combined icon is only used if set, otherwise the signed and encrypted icons are displayed separately.\& .PP .RE \fBicon-unknown\fR = \fI\fR .RS 4 The icon to display for signed mails which could not be verified due to the key being unknown.\& .PP Default: \fI[s?\&]\fR .PP .RE \fBicon-invalid\fR = \fI\fR .RS 4 The icon to display for signed mails where verification failed.\& .PP Default: \fI[s!\&]\fR .PP .RE \fBicon-attachment\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message has an attachment.\& .PP Default: \fIa\fR .PP .RE \fBicon-new\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message is unread and new.\& .PP Default: \fIN\fR .PP .RE \fBicon-old\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message is unread and old.\& .PP Default: \fIO\fR .PP .RE \fBicon-replied\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message has been replied to.\& .PP Default: \fIr\fR .PP .RE \fBicon-flagged\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message is flagged.\& .PP Default: \fI!\&\fR .PP .RE \fBicon-marked\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message is marked.\& .PP Default: \fI*\fR .PP .RE \fBicon-draft\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message is a draft.\& .PP Default: \fId\fR .PP .RE \fBicon-deleted\fR = \fI\fR .RS 4 The icon to display in \fBcolumn-flags\fR when the message has been deleted.\& .PP Default: \fIX\fR .PP .RE \fBfuzzy-complete\fR = \fItrue\fR|\fIfalse\fR .RS 4 When typing a command or option, the popover will now show not only the items /starting/ with the string input by the user, but it will also show instances of items /containing/ the string, starting at any position and need not be consecutive characters in the command or option.\& .PP .RE \fBreverse-msglist-order\fR = \fItrue\fR|\fIfalse\fR .RS 4 Reverses the order of the message list.\& By default, the message list is ordered with the newest (highest UID) message on top.\& Reversing the order will put the oldest (lowest UID) message on top.\& This can be useful in cases where the backend does not support sorting.\& .PP Default: \fIfalse\fR .PP .RE \fBreverse-thread-order\fR = \fItrue\fR|\fIfalse\fR .RS 4 Reverse display of the message threads.\& By default, the thread root is displayed at the top of the tree with all replies below.\& The reverse option will put the thread root at the bottom with replies on top.\& .PP Default: \fIfalse\fR .PP .RE \fBsort-thread-siblings\fR = \fItrue\fR|\fIfalse\fR .RS 4 Sort the thread siblings according to the sort criteria for the messages.\& If sort-thread-siblings is false, the thread siblings will be sorted based on the message UID.\& This option is only applicable for client-side threading with a backend that enables sorting.\& .PP Default: \fIfalse\fR .PP .RE \fBthreading-enabled\fR = \fItrue\fR|\fIfalse\fR .RS 4 Enable a threaded view of messages.\& If this is not supported by the backend (IMAP server or notmuch), threads will be built by the client.\& .PP Default: \fIfalse\fR .PP .RE \fBforce-client-threads\fR = \fItrue\fR|\fIfalse\fR .RS 4 Force threads to be built client-side.\& Backends that don'\&t support threading will always build threads client side.\& .PP Default: \fIfalse\fR .PP .RE \fBclient-threads-delay\fR = \fI\fR .RS 4 Delay of inactivity after which the client threads are rebuilt.\& Setting this to \fI0s\fR may introduce a noticeable lag when scrolling through the message list.\& .PP Default: \fI50ms\fR .PP .RE \fBshow-thread-context\fR = \fItrue\fR|\fIfalse\fR .RS 4 Enable showing of thread context.\& Note: this is not supported by all backends.\& .PP Default: \fIfalse\fR .PP .RE .SS THREAD PREFIX CUSTOMIZATION .PP You can fully customize the thread arrows appearance, which is defined by the following configurable prefix parts: .PP \fBthread-prefix-tip\fR = \fI\fR .RS 4 Define the arrow head.\& .PP Default: \fI">"\fR .PP .RE \fBthread-prefix-indent\fR = \fI\fR .RS 4 Define the arrow indentation.\& .PP Default: \fI" "\fR .PP .RE \fBthread-prefix-stem\fR = \fI\fR .RS 4 Define the vertical extension of the arrow.\& .PP Default: \fI"│"\fR .PP .RE \fBthread-prefix-limb\fR = \fI\fR .RS 4 Define the horizontal extension of the arrow.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-folded\fR = \fI\fR .RS 4 Define the folded thread indicator.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-unfolded\fR = \fI\fR .RS 4 Define the unfolded thread indicator.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-first-child\fR = \fI\fR .RS 4 Define the first child connector.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-has-siblings\fR = \fI\fR .RS 4 Define the connector used if the message has siblings.\& .PP Default: \fI├─\fR .PP .RE \fBthread-prefix-lone\fR = \fI\fR .RS 4 Define the connector used if the message has no parents and no children.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-orphan\fR = \fI\fR .RS 4 Define the connector used if the message has no parents and has children.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-last-sibling\fR = \fI\fR .RS 4 Define the connector for the last sibling.\& .PP Default: \fI└─\fR .PP .RE \fBthread-prefix-last-sibling-reverse\fR = \fI\fR .RS 4 Define the connector for the last sibling in reversed threads.\& .PP Default: \fI┌─\fR .PP .RE \fBthread-prefix-first-child-reverse\fR = \fI\fR .PP .RS 4 Define the arrow appearance by selecting the first child connector in reversed threads.\& .PP Default: \fI""\fR .PP .RE \fBthread-prefix-orphan-reverse\fR = \fI\fR .RS 4 Customize the reversed threads arrow appearance by selecting the connector used if the message has no parents and has children.\& .PP Default: \fI""\fR .PP .PP .RE Default settings (mutt-style): .PP .RS 4 .nf .RS 4 [PATCH aerc v5] ui: allow thread arrow customisation ├─>[aerc/patches] build success ├─>Re: [PATCH aerc v5] ui: allow thread arrow customisation ├─ └─> ├─> │ ├─> │ └─> │ └─> └─> .fi .RE .PP .RE More compact, rounded threads that are also fold-aware: .PP .RS 4 .nf .RS 4 ┌[PATCH aerc v5] ui: allow thread arrow customisation ├─[aerc/patches] build success ├─Re: [PATCH aerc v5] ui: allow thread arrow customisation ├+ ╰┬ ├┬ │├─ │╰┬ │ ╰─ ╰─ .fi .RE .PP .RE .nf .RS 4 thread-prefix-tip = "" thread-prefix-indent = "" thread-prefix-stem = "│" thread-prefix-limb = "─" thread-prefix-folded = "+" thread-prefix-unfolded = "" thread-prefix-first-child = "┬" thread-prefix-has-siblings = "├" thread-prefix-orphan = "┌" thread-prefix-lone = " " thread-prefix-last-sibling = "╰" .fi .RE .PP .SS CONTEXTUAL UI CONFIGURATION .PP The UI configuration can be specialized for accounts, specific mail directories and message subjects.\& The specializations are added using contextual config sections based on the context.\& .PP The contextual UI configuration is merged to the base UiConfig in the following order: \fBBase UIConfig > Account Context > Folder Context\fR.\& .PP \fB[ui:account=\fR\fIAccountName\fR\fB]\fR .RS 4 Adds account specific configuration with the account name.\& .PP .RE \fB[ui:folder=\fR\fIFolderName\fR\fB]\fR .RS 4 Add folder specific configuration with the folder name.\& .PP .RE \fB[ui:folder~\fR\fIRegex\fR\fB]\fR .RS 4 Add folder specific configuration for folders whose names match the regular expression.\& .PP .RE Example: .nf .RS 4 [ui:account=Work] sidebar-width=\&.\&.\&. [ui:folder=Sent] index-format=\&.\&.\&. [ui:folder~Archive/d+/\&.*] index-format=\&.\&.\&. .fi .RE .PP .SH STATUSLINE .PP These options are configured in the \fB[statusline]\fR section of \fIaerc.\&conf\fR.\& .PP \fBstatus-columns\fR = \fI\fR .RS 4 Describes the format for the statusline.\& This is a comma separated list of column names with an optional align and width suffix.\& See \fB[ui].\&index-columns\fR for more details.\& .PP To completely mute the statusline (except for push notifications), explicitly set \fBstatus-columns\fR to an empty string: .PP .RS 4 status-columns= .PP .RE Default: \fIleft<*,center>=,right>*\fR .PP .RE \fBcolumn-separator\fR = \fI""\fR .RS 4 String separator inserted between columns.\& See \fB[ui].\&column-separator\fR for more details.\& .PP Default: \fI" "\fR .PP .RE \fBcolumn-\fR = \fI\fR .RS 4 Each name in \fBstatus-columns\fR must have a corresponding \fBcolumn-\fR setting.\& All \fBcolumn-\fR settings accept golang text/template syntax.\& .PP By default, these columns are defined: .PP .nf .RS 4 column-left = [{{\&.Account}}] {{\&.StatusInfo}} column-center = {{\&.PendingKeys}} column-right = {{\&.TrayInfo}} .fi .RE .PP See \fBaerc-templates\fR(7) for all available symbols and functions.\& .PP .RE \fBseparator\fR = \fI""\fR .RS 4 Specifies the separator between grouped statusline elements (e.\&g.\& for the \fI{{.\&ContentInfo}}\fR, \fI{{.\&TrayInfo}}\fR and \fI{{.\&StatusInfo}}\fR in \fBcolumn-\fR).\& .PP Default: \fI" | "\fR .PP .RE \fBdisplay-mode\fR = \fItext\fR|\fIicon\fR .RS 4 Defines the mode for displaying the status elements.\& .PP Default: \fItext\fR .PP .RE .SH VIEWER .PP These options are configured in the \fB[viewer]\fR section of \fIaerc.\&conf\fR.\& .PP \fBpager\fR = \fI\fR .RS 4 Specifies the pager to use when displaying emails.\& Note that some filters may add ANSI escape sequences to add color to rendered emails, so you may want to use a pager which supports ANSI.\& .PP Default: \fIless -Rc\fR .PP .RE \fBalternatives\fR = \fI\fR .RS 4 If an email offers several versions (multipart), you can configure which mimetype to prefer.\& For example, this can be used to prefer plaintext over HTML emails.\& .PP Default: \fItext/plain,text/html\fR .PP .RE \fBheader-layout\fR = \fI\fR .RS 4 Defines the default headers to display when viewing a message.\& To display multiple headers in the same row, separate them with a pipe, e.\&g.\& \fIFrom|To\fR.\& Rows will be hidden if none of their specified headers are present in the message.\& .PP Notmuch tags can be displayed by adding Labels.\& .PP Authentication information from the Authentication-Results header can be displayed by adding \fIDKIM\fR, \fISPF\fR or \fIDMARC\fR.\& To show more information than just the authentication result, append a plus sign (\fB+\fR) to the header name (e.\&g.\& \fIDKIM+\fR).\& .PP Default: \fIFrom|To,Cc|Bcc,Date,Subject\fR .PP .RE \fBshow-headers\fR = \fItrue\fR|\fIfalse\fR .RS 4 Default setting to determine whether to show full headers or only parsed ones in message viewer.\& .PP Default: \fIfalse\fR .PP .RE \fBalways-show-mime\fR = \fItrue\fR|\fIfalse\fR .RS 4 Whether to always show the mimetype of an email, even when it is just a single part.\& .PP Default: \fIfalse\fR .PP .RE \fBmax-mime-height\fR = \fIheight\fR .RS 4 Define the maximum height of the mimetype switcher before a scrollbar is used.\& The height of the mimetype switcher is restricted to half of the display height.\& If the provided value for the height is zero, the number of parts will be used as the height of the type switcher.\& .PP Default: 0 .PP .RE \fBparse-http-links\fR = \fItrue\fR|\fIfalse\fR .RS 4 Parses and extracts http links when viewing a message.\& Links can then be accessed with the \fBopen-link\fR command.\& .PP Default: \fItrue\fR .PP .RE .SH COMPOSE .PP These options are configured in the \fB[compose]\fR section of \fIaerc.\&conf\fR.\& .PP \fBeditor\fR = \fI\fR .RS 4 Specifies the command to run the editor with.\& It will be shown in an embedded terminal, though it may also launch a graphical window if the environment supports it.\& .PP The following variables are defined in the editor'\&s environment: .PP \fBAERC_ACCOUNT\fR .RS 4 the name of the current account .RE \fBAERC_ADDRESS_BOOK_CMD\fR .RS 4 the \fIaddress-book-cmd\fR specified for the current account in \fIaccounts.\&conf\fR .PP .RE Defaults to \fB$EDITOR\fR, or \fBvi\fR(1).\& .PP .RE \fBheader-layout\fR = \fI\fR .RS 4 Defines the default headers to display when composing a message.\& To display multiple headers in the same row, separate them with a pipe, e.\&g.\& \fITo|From\fR.\& .PP Default: \fITo|From,Subject\fR .PP .RE \fBedit-headers\fR = \fItrue\fR|\fIfalse\fR .RS 4 Edit headers directly into the text editor instead of having separate UI text inputs.\& .PP When this is set to \fItrue\fR, the \fB:cc\fR, \fB:bcc\fR and \fB:header\fR commands do not work, editing email headers are left to the text editor.\& \fBaddress-book-cmd\fR is not supported and address completion is left to the editor itself.\& \fBheader-layout\fR is ignored.\& .PP Default: \fIfalse\fR .PP .RE \fBaddress-book-cmd\fR = \fI\fR .RS 4 Specifies the command to be used to tab-complete email addresses.\& Any occurrence of \fI%s\fR in the \fBaddress-book-cmd\fR will be replaced with anything the user has typed after the last comma.\& .PP The command must output the completions to standard output, one completion per line.\& Each line must be tab-delimited, with an email address occurring as the first field.\& Only the email address field is required.\& The second field, if present, will be treated as the contact name.\& Additional fields are ignored.\& .PP This parameter can also be set per account in \fIaccounts.\&conf\fR.\& .PP Example with \fBcarddav-query\fR(1): .RS 4 \fBaddress-book-cmd\fR = \fIcarddav-query %s\fR .PP .RE Example with \fBkhard\fR(1): .RS 4 \fBaddress-book-cmd\fR = \fIkhard email --remove-first-line --parsable %s\fR .PP .RE .RE \fBfile-picker-cmd\fR = \fI\fR .RS 4 Specifies the command to be used to select attachments.\& Any occurrence of \fI%s\fR in the \fBfile-picker-cmd\fR will be replaced with the argument \fI\fR to \fB:attach -m\fR \fI\fR.\& Any occurence of \fI%f\fR will be replaced by the location of a temporary file, from which aerc will read the selected files.\& .PP If \fI%f\fR is not present, the command must output the selected files to standard output, one file per line.\& If it is present, then aerc does not capture the standard output and instead reads the files from the temporary file which should have the same format.\& .PP Examples: .RS 4 \fBfile-picker-cmd\fR = \fIfzf --multi --query=%s\fR \fBfile-picker-cmd\fR = \fIranger --choose-files=%f\fR .PP .RE .RE \fBreply-to-self\fR = \fItrue\fR|\fIfalse\fR .RS 4 If set to \fIfalse\fR, do not mail yourself when replying (e.\&g.\&, if replying to emails previously sent by yourself, address your replies to the original To and Cc).\& .PP Default: \fItrue\fR .PP .RE \fBempty-subject-warning\fR = \fItrue\fR|\fIfalse\fR .RS 4 Warn before sending an email with an empty subject.\& .PP Default: \fIfalse\fR .PP .RE \fBno-attachment-warning\fR = \fI\fR .RS 4 Specifies a regular expression against which an email'\&s body should be tested before sending an email with no attachment.\& If the regexp matches, aerc will warn you before sending the message.\& Leave empty to disable this feature.\& .PP Uses Go'\&s regexp syntax, documented at https://golang.\&org/s/re2syntax.\& The \fI(?\&im)\fR flags are set by default (case-insensitive and multi-line).\& .PP Example: .RS 4 \fBno-attachment-warning\fR = \fI^[^>]*attach(ed|ment)\fR .PP .RE .RE \fBformat-flowed\fR = \fItrue\fR|\fIfalse\fR .RS 4 When set, aerc will generate \fIFormat=Flowed\fR bodies with a content type of \fI"text/plain; Format=Flowed"\fR as described in RFC3676.\& This format is easier to handle for some mailing software, and generally just looks like ordinary text.\& To actually make use of this format'\&s features, you'\&ll need support in your editor.\& .PP Default: \fIfalse\fR .PP .RE \fBlf-editor\fR = \fItrue\fR|\fIfalse\fR .RS 4 By default, aerc will use RFC2822 standard \fI\er\en\fR (CRLF) line breaks when composing messages.\& Use this option for text editors that only support non-standard \fI\en\fR (LF) line breaks.\& .PP Default: \fIfalse\fR .PP .RE .SH MULTIPART CONVERTERS .PP Converters allow generating \fImultipart/alternative\fR messages by converting the main \fItext/plain\fR body into any other text MIME type with the \fB:multipart\fR command.\& Only exact MIME types are accepted.\& The commands are invoked with \fIsh -c\fR and are expected to output valid UTF-8 text.\& .PP Only \fItext/\fR MIME parts can be generated.\& The \fItext/plain\fR MIME type is reserved and cannot be generated.\& You still need to write your emails by hand in your favorite text editor.\& .PP Converters are configured in the \fB[multipart-converters]\fR section of \fIaerc.\&conf\fR.\& .PP Example: .PP .nf .RS 4 [multipart-converters] text/html=pandoc -f markdown -t html --standalone .fi .RE .PP Obviously, this requires that you write your main \fItext/plain\fR body using the markdown syntax.\& Also, mind that some mailing lists reject emails that contain \fItext/html\fR alternative parts.\& Use this feature carefully and when possible, avoid using it at all.\& .PP .SH FILTERS .PP Filters are a flexible and powerful way of handling viewing parts of an opened message.\& When viewing messages aerc will show the list of available message parts and their MIME type at the bottom, but unless a filter is defined for a specific MIME type, it will only show a menu with a few options (allowing you to open the part in an external program, save it to disk or pipe it to a shell command).\& Configuring a filter will allow viewing the output of the filter in the configured \fBpager\fR in aerc'\&s built-in terminal.\& .PP Filters are configured in the \fB[filters]\fR section of \fBaerc.\&conf\fR.\& The first filter which matches the part'\&s MIME type will be used, so order them from most to least specific.\& You can also match on non-MIME types, by prefixing with the header to match against (non-case-sensitive) and a comma, e.\&g.\& \fIsubject,text\fR will match a subject which contains \fItext\fR.\& Use \fIheader,~regex\fR to match against a \fIregex\fR.\& .PP Note that aerc will pipe the content into the configured filter program, so filters need to be able to read from standard input.\& Many programs support reading from stdin by putting \fI-\fR instead of a path to a file.\& You can also chain together multiple filters by piping with \fI|\fR.\& .PP aerc ships with some default filters installed in the libexec directory (usually \fI/usr/libexec/aerc/filters\fR).\& Note that these may have additional dependencies that aerc does not have alone.\& .PP The filter commands are invoked with \fIsh -c command\fR.\& The following folders are prepended to the system \fB$PATH\fR to allow referencing filters from their name only.\& .PP .nf .RS 4 ${XDG_CONFIG_HOME:-~/\&.config}/aerc/filters ~/\&.local/libexec/aerc/filters ${XDG_DATA_HOME:-~/\&.local/share}/aerc/filters $PREFIX/libexec/aerc/filters $PREFIX/share/aerc/filters /usr/libexec/aerc/filters /usr/share/aerc/filters .fi .RE .PP If you want to run a program in your default \fB$PATH\fR which has the same name as a builtin filter (e.\&g.\& \fI/usr/bin/colorize\fR), use its absolute path.\& .PP The following variables are defined in the filter command environment: .PP \fBAERC_MIME_TYPE\fR .RS 4 the part MIME type/subtype .RE \fBAERC_FORMAT\fR .RS 4 the part content type format= parameter (e.\&g.\& format=flowed) .RE \fBAERC_FILENAME\fR .RS 4 the attachment filename (if any) .RE \fBAERC_SUBJECT\fR .RS 4 the message Subject header value .RE \fBAERC_FROM\fR .RS 4 the message From header value .PP .RE Note that said email body is converted into UTF-8 before being passed to filters.\& .PP If \fBshow-headers\fR is enabled, only the currently viewed part body is piped into the filter command.\& A special \fI.\&headers\fR filter command can be defined to post process the full headers.\& .PP .SS EXAMPLES .PP \fItext/plain\fR .RS 4 Color some things, e.\&g.\& quotes, git diffs, links, etc.\&: .PP .nf .RS 4 text/plain=colorize .fi .RE .PP The built-in \fIcolorize\fR filter can be configured in the \fB[viewer]\fR section of styleset files.\& See \fBaerc-stylesets\fR(7).\& .PP Wrap long lines at 100 characters, while not messing up nested quotes.\& Handles format=flowed emails properly: .PP .nf .RS 4 text/plain=wrap -w 100 | colorize .fi .RE .PP .RE \fIfrom,\fR .RS 4 Another example of hard wrapping lines of emails sent by a specific person.\& Explicitly reflow all paragraphs instead of only wrapping long lines.\& This may break manual formatting in some messages: .PP .nf .RS 4 from,thatguywhoneverhardwrapshismessages=wrap -r -w 72 | colorize .fi .RE .PP .RE \fIsubject,~\fR .RS 4 Use rainbow coloring with \fBlolcat\fR(1) for emails sent by software forges: .PP .nf .RS 4 subject,~Git(hub|lab)=lolcat -f .fi .RE .PP .RE \fItext/html\fR .RS 4 Render html to a more human readable version and colorize: .PP .nf .RS 4 text/html=html | colorize .fi .RE .PP Use pandoc to output plain text: .PP .nf .RS 4 text/html=pandoc -f html -t plain .fi .RE .PP .RE \fItext/calendar\fR .RS 4 Parse calendar invites: .PP .nf .RS 4 text/calendar=calendar .fi .RE .PP .RE \fItext/*\fR .RS 4 Catch any other type of text that did not have a specific filter and use \fBbat\fR(1) to color these: .PP .nf .RS 4 text/*=bat -fP --file-name="$AERC_FILENAME" --style=plain .fi .RE .PP .RE \fI.\&headers\fR .RS 4 Colorize email headers when \fBshow-headers\fR is \fItrue\fR.\& .PP .nf .RS 4 \&.headers=colorize .fi .RE .PP .RE \fImessage/delivery-status\fR .RS 4 When not being able to deliver the provider might send such emails: .PP .nf .RS 4 message/delivery-status=colorize .fi .RE .PP .RE \fImessage/rfc822\fR .RS 4 When getting emails as attachments, e.\&g.\& on some mailing lists digest format is sending an email with all the digest emails as attachments.\& Requires \fBcaeml\fR(1) to be on \fBPATH\fR: .PP .nf .RS 4 message/rfc822=caeml | colorize .fi .RE .PP https://github.\&com/ferdinandyb/caeml .PP .RE \fIapplication/mbox\fR .RS 4 Emails as attachments in the mbox format.\& For example aerc can also create an mbox from messages with the \fB:pipe\fR command.\& Requires \fBcatbox\fR(1) and \fBcaeml\fR(1) to be on \fBPATH\fR: .PP .nf .RS 4 application/mbox=catbox -c caeml | colorize .fi .RE .PP https://github.\&com/konimarti/catbox .PP .RE \fIapplication/pdf\fR .RS 4 Render pdf to text and rewrap at 100 character width.\& Requires \fBpdftotext\fR(1) to be on \fBPATH\fR: .PP .nf .RS 4 application/pdf=pdftotext - -l 10 -nopgbrk -q - | fmt -w 100 .fi .RE .PP https://www.\&xpdfreader.\&com/pdftotext-man.\&html .PP .RE \fIimage/*\fR .RS 4 This is a tricky topic.\& It'\&s possible to display images in a terminal, but for high resolution images the terminal you are using either needs to support sixels or the kitty terminal graphics protocol.\& Unfortunately, aerc'\&s built-in terminal supports neither, so only highly pixelated images can be shown natively.\& A workaround is possible by asking the terminal to draw on top of aerc and then remove the image when done viewing.\& .PP The built-in terminal can show pixelated images with \fBcatimg\fR(1): .PP .nf .RS 4 image/*=catimg -w$(tput cols) - .fi .RE .PP .RE See the wiki at https://man.\&sr.\&ht/~rjarry/aerc/ for more examples and possible customizations of the built-in filters.\& .PP .SH OPENERS .PP Openers allow you to specify the command to use for the \fB:open\fR and \fB:open-link\fR actions on a per-MIME-type basis.\& The \fB:open-link\fR URL scheme is used to determine the MIME type as follows: \fIx-scheme-handler/\fR.\& They are configured in the \fB[openers]\fR section of \fIaerc.\&conf\fR.\& .PP \fI{}\fR is expanded as the temporary filename or URL to be opened with proper shell quoting.\& If it is not encountered in the command, the filename/URL will be appended to the end of the command.\& The command will then be executed with \fIsh -c\fR.\& .PP Like \fB[filters]\fR, openers support basic shell globbing.\& The first opener which matches the part'\&s MIME type (or URL scheme handler MIME type) will be used, so order them from most to least specific.\& .PP Example: .PP .nf .RS 4 [openers] x-scheme-handler/irc=hexchat x-scheme-handler/http*=printf \&'%s\&' {} | wl-copy text/html=surf -dfgms text/plain=gvim {} +125 message/rfc822=thunderbird .fi .RE .PP .SH HOOKS .PP Hooks are triggered whenever the associated event occurs.\& The commands are run in a shell environment with information added to environment variables.\& .PP They are configured in the \fB[hooks]\fR section of aerc.\&conf.\& .PP \fBaerc-startup\fR = \fI\fR .RS 4 Executed when aerc is started is received in the selected folder.\& If it is used to run certain commands at startup.\& The hook is executed as soon as the UI is initialized and does not wait for all accounts to be fully loaded.\& .PP Variables: .PP .PD 0 .IP \(bu 4 \fBAERC_VERSION\fR .IP \(bu 4 \fBAERC_BINARY\fR .PD .PP Example: .PP .RS 4 \fBaerc-startup\fR = \fIaerc :terminal calcurse && aerc :next-tab\fR .PP .RE .RE \fBmail-received\fR = \fI\fR .RS 4 Executed when new mail is received in the selected folder.\& This will only work reliably with maildir and some imap servers.\& .PP Variables: .PP .PD 0 .IP \(bu 4 \fBAERC_ACCOUNT\fR .IP \(bu 4 \fBAERC_FOLDER\fR .IP \(bu 4 \fBAERC_FROM_NAME\fR .IP \(bu 4 \fBAERC_FROM_ADDRESS\fR .IP \(bu 4 \fBAERC_SUBJECT\fR .PD .PP Example: .PP .RS 4 \fBmail-received\fR = \fInotify-send "[$AERC_ACCOUNT/$AERC_FOLDER] New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"\fR .PP .RE .RE \fBmail-deleted\fR = \fI\fR .RS 4 Executed when a message is deleted from a folder.\& Note that this hook is triggered when moving a message from one folder to another.\& .PP Variables: .PP .PD 0 .IP \(bu 4 \fBAERC_ACCOUNT\fR .IP \(bu 4 \fBAERC_FOLDER\fR .PD .PP Example: .PP .RS 4 \fBmail-deleted\fR = \fImbsync "$AERC_ACCOUNT:$AERC_FOLDER"\fR .PP .RE .RE \fBmail-added\fR = \fI\fR .RS 4 Executed when a message is added to a folder.\& Note that this hook is not triggered when a new message is received (use \fBmail-received\fR for that) but rather is only triggered when aerc itself adds a message to a folder, e.\&g.\& when moving or copying a message.\& .PP Variables: .PP .PD 0 .IP \(bu 4 \fBAERC_ACCOUNT\fR .IP \(bu 4 \fBAERC_FOLDER\fR .PD .PP Example: .PP .RS 4 \fBmail-added\fR = \fImbsync "$AERC_ACCOUNT:$AERC_FOLDER"\fR .PP .RE .RE \fBmail-sent\fR = \fI\fR .RS 4 Executed when a message is sent.\& This does not necessarily signify successful posting, if a queueing system like msmtpq is used.\& .PP Variables: .PP .PD 0 .IP \(bu 4 \fBAERC_ACCOUNT\fR .IP \(bu 4 \fBAERC_FROM_NAME\fR .IP \(bu 4 \fBAERC_FROM_ADDRESS\fR .IP \(bu 4 \fBAERC_SUBJECT\fR .IP \(bu 4 \fBAERC_TO\fR .IP \(bu 4 \fBAERC_CC\fR .PD .PP Example: .PP .RS 4 \fBmail-sent\fR = \fIif [ "$AERC_ACCOUNT" = "gmail" ]; then mbsync gmail; fi\fR .PP .RE .RE \fBaerc-shutdown\fR = \fI\fR .RS 4 Executed when aerc shuts down.\& Aerc will wait for the command to finish before exiting.\& .PP Variables: .PP .PD 0 .IP \(bu 4 \fBAERC_LIFETIME\fR .PD .PP .RE .SH TEMPLATES .PP Template files are used to populate the body of an email.\& The \fB:compose\fR, \fB:reply\fR and \fB:forward\fR commands can be called with the \fB-T\fR flag with the name of the template name.\& The available symbols and functions are described in \fBaerc-templates\fR(7).\& .PP aerc ships with some default templates installed in the share directory (usually \fI/usr/share/aerc/templates\fR).\& .PP These options are configured in the \fB[templates]\fR section of \fIaerc.\&conf\fR.\& .PP \fBtemplate-dirs\fR = \fI\fR .RS 4 The directory where the templates are stored.\& The config takes a colon-separated list of dirs.\& If this is unset or if a template cannot be found, the following paths will be used as a fallback in that order: .PP .nf .RS 4 ${XDG_CONFIG_HOME:-~/\&.config}/aerc/templates ${XDG_DATA_HOME:-~/\&.local/share}/aerc/templates /usr/local/share/aerc/templates /usr/share/aerc/templates .fi .RE .PP .RE \fBnew-message\fR = \fI\fR .RS 4 The default template to be used for new messages.\& .PP Default: \fInew_message\fR .PP .RE \fBquoted-reply\fR = \fI\fR .RS 4 The default template to be used for quoted replies.\& .PP Default: \fIquoted_reply\fR .PP .RE \fBforwards\fR = \fI\fR .RS 4 The default template to be used for forward as body.\& .PP Default: \fIforward_as_body\fR .PP .RE .SH SEE ALSO .PP \fBaerc\fR(1) \fBaerc-accounts\fR(5) \fBaerc-binds\fR(5) \fBaerc-imap\fR(5) \fBaerc-jmap\fR(5) \fBaerc-maildir\fR(5) \fBaerc-notmuch\fR(5) \fBaerc-templates\fR(7) \fBaerc-sendmail\fR(5) \fBaerc-smtp\fR(5) \fBaerc-stylesets\fR(7) \fBcarddav-query\fR(1) .PP .SH AUTHORS .PP 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 \fIhttps://sr.\&ht/~rjarry/aerc/\fR.\&