Configuration for my NixOS based systems and Home Manager
1#
2# aerc main configuration
3
4[general]
5#
6# Used as a default path for save operations if no other path is specified.
7# ~ is expanded to the current user home dir.
8#
9#default-save-path=
10
11# If set to "gpg", aerc will use system gpg binary and keystore for all crypto
12# operations. If set to "internal", the internal openpgp keyring will be used.
13# If set to "auto", the system gpg will be preferred unless the internal
14# keyring already exists, in which case the latter will be used.
15#
16# Default: auto
17#pgp-provider=auto
18
19# By default, the file permissions of accounts.conf must be restrictive and
20# only allow reading by the file owner (0600). Set this option to true to
21# ignore this permission check. Use this with care as it may expose your
22# credentials.
23#
24# Default: false
25#unsafe-accounts-conf=false
26
27# Output log messages to specified file. A path starting with ~/ is expanded to
28# the user home dir. When redirecting aerc's output to a file using > shell
29# redirection, this setting is ignored and log messages are printed to stdout.
30#
31#log-file=
32
33# Only log messages above the specified level to log-file. Supported levels
34# are: trace, debug, info, warn and error. When redirecting aerc's output to
35# a file using > shell redirection, this setting is ignored and the log level
36# is forced to trace.
37#
38# Default: info
39#log-level=info
40
41# Set the $TERM environment variable used for the embedded terminal.
42#
43# Default: xterm-256color
44#term=xterm-256color
45
46# Display OSC8 strings in the embedded terminal
47#
48# Default: false
49#enable-osc8=false
50
51[ui]
52#
53# Describes the format for each row in a mailbox view. This is a comma
54# separated list of column names with an optional align and width suffix. After
55# the column name, one of the '<' (left), ':' (center) or '>' (right) alignment
56# characters can be added (by default, left) followed by an optional width
57# specifier. The width is either an integer representing a fixed number of
58# characters, or a percentage between 1% and 99% representing a fraction of the
59# terminal width. It can also be one of the '*' (auto) or '=' (fit) special
60# width specifiers. Auto width columns will be equally attributed the remaining
61# terminal width. Fit width columns take the width of their contents. If no
62# width specifier is set, '*' is used by default.
63#
64# Default: date<20,name<17,flags>4,subject<*
65#index-columns=date<20,name<17,flags>4,subject<*
66
67#
68# Each name in index-columns must have a corresponding column-$name setting.
69# All column-$name settings accept golang text/template syntax. See
70# aerc-templates(7) for available template attributes and functions.
71#
72# Default settings
73#column-date={{.DateAutoFormat .Date.Local}}
74#column-name={{index (.From | names) 0}}
75#column-flags={{.Flags | join ""}}
76#column-subject={{.ThreadPrefix}}{{if .ThreadFolded}}{{printf "{%d}" .ThreadCount}}{{end}}{{.Subject}}
77
78#
79# String separator inserted between columns. When the column width specifier is
80# an exact number of characters, the separator is added to it (i.e. the exact
81# width will be fully available for the column contents).
82#
83# Default: " "
84#column-separator=" "
85
86#
87# See time.Time#Format at https://godoc.org/time#Time.Format
88#
89# Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time)
90#timestamp-format=2006-01-02 03:04 PM
91
92#
93# Index-only time format for messages that were received/sent today.
94# If this is not specified, timestamp-format is used instead.
95#
96#this-day-time-format=
97
98#
99# Index-only time format for messages that were received/sent within the last
100# 7 days. If this is not specified, timestamp-format is used instead.
101#
102#this-week-time-format=
103
104#
105# Index-only time format for messages that were received/sent this year.
106# If this is not specified, timestamp-format is used instead.
107#
108#this-year-time-format=
109
110#
111# Width of the sidebar, including the border.
112#
113# Default: 20
114#sidebar-width=20
115
116#
117# Message to display when viewing an empty folder.
118#
119# Default: (no messages)
120#empty-message=(no messages)
121
122# Message to display when no folders exists or are all filtered
123#
124# Default: (no folders)
125#empty-dirlist=(no folders)
126
127# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
128#
129# Default: false
130#mouse-enabled=false
131
132#
133# Ring the bell when new messages are received
134#
135# Default: true
136#new-message-bell=true
137
138#
139# Template to use for Account tab titles
140#
141# Default: {{.Account}}
142#tab-title-account={{.Account}}
143
144# Marker to show before a pinned tab's name.
145#
146# Default: `
147#pinned-tab-marker='`'
148
149# Template for the left side of the directory list.
150# See aerc-templates(7) for all available fields and functions.
151#
152# Default: {{.Folder}}
153#dirlist-left={{.Folder}}
154
155# Template for the right side of the directory list.
156# See aerc-templates(7) for all available fields and functions.
157#
158# Default: {{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}
159#dirlist-right={{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}
160
161# Delay after which the messages are actually listed when entering a directory.
162# This avoids loading messages when skipping over folders and makes the UI more
163# responsive. If you do not want that, set it to 0s.
164#
165# Default: 200ms
166#dirlist-delay=200ms
167
168# Display the directory list as a foldable tree that allows to collapse and
169# expand the folders.
170#
171# Default: false
172#dirlist-tree=false
173
174# If dirlist-tree is enabled, set level at which folders are collapsed by
175# default. Set to 0 to disable.
176#
177# Default: 0
178#dirlist-collapse=0
179
180# List of space-separated criteria to sort the messages by, see *sort*
181# command in *aerc*(1) for reference. Prefixing a criterion with "-r "
182# reverses that criterion.
183#
184# Example: "from -r date"
185#
186#sort=
187
188# Moves to next message when the current message is deleted
189#
190# Default: true
191#next-message-on-delete=true
192
193# Automatically set the "seen" flag when a message is opened in the message
194# viewer.
195#
196# Default: true
197#auto-mark-read=true
198
199# The directories where the stylesets are stored. It takes a colon-separated
200# list of directories. If this is unset or if a styleset cannot be found, the
201# following paths will be used as a fallback in that order:
202#
203# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
204# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
205# /nix/store/bk6874radkd8h2y75rgg8hd267pwhdkl-aerc-0.16.0/share/aerc/stylesets
206#
207#stylesets-dirs=
208
209# Uncomment to use box-drawing characters for vertical and horizontal borders.
210#
211# Default: " "
212#border-char-vertical=" "
213#border-char-horizontal=" "
214
215# Sets the styleset to use for the aerc ui elements.
216#
217# Default: default
218#styleset-name=default
219
220# Activates fuzzy search in commands and their arguments: the typed string is
221# searched in the command or option in any position, and need not be
222# consecutive characters in the command or option.
223#
224# Default: false
225#fuzzy-complete=false
226
227# How long to wait after the last input before auto-completion is triggered.
228#
229# Default: 250ms
230#completion-delay=250ms
231
232# The minimum required characters to allow auto-completion to be triggered after
233# completion-delay.
234#
235# Default: 1
236#completion-min-chars=1
237
238#
239# Global switch for completion popovers
240#
241# Default: true
242#completion-popovers=true
243
244# Uncomment to use UTF-8 symbols to indicate PGP status of messages
245#
246# Default: ASCII
247#icon-unencrypted=
248#icon-encrypted=✔
249#icon-signed=✔
250#icon-signed-encrypted=✔
251#icon-unknown=✘
252#icon-invalid=⚠
253
254# Reverses the order of the message list. By default, the message list is
255# ordered with the newest (highest UID) message on top. Reversing the order
256# will put the oldest (lowest UID) message on top. This can be useful in cases
257# where the backend does not support sorting.
258#
259# Default: false
260#reverse-msglist-order = false
261
262# Reverse display of the mesage threads. Default order is the the intial
263# message is on the top with all the replies being displayed below. The
264# reverse option will put the initial message at the bottom with the
265# replies on top.
266#
267# Default: false
268#reverse-thread-order=false
269
270# Sort the thread siblings according to the sort criteria for the messages. If
271# sort-thread-siblings is false, the thread siblings will be sorted based on
272# the message UID in ascending order. This option is only applicable for
273# client-side threading with a backend that enables sorting. Note that there's
274# a performance impact when sorting is activated.
275#
276# Default: false
277#sort-thread-siblings=false
278
279#[ui:account=foo]
280#
281# Enable a threaded view of messages. If this is not supported by the backend
282# (IMAP server or notmuch), threads will be built by the client.
283#
284# Default: false
285#threading-enabled=false
286
287# Force client-side thread building
288#
289# Default: false
290#force-client-threads=false
291
292# Show thread context enables messages which do not match the current query (or
293# belong to the current mailbox) to be shown for context. These messages can be
294# styled separately using "msglist_thread_context" in a styleset. This feature
295# is not supported by all backends
296#
297# Default: false
298#show-thread-context=false
299
300# Debounce client-side thread building
301#
302# Default: 50ms
303#client-threads-delay=50ms
304
305[statusline]
306#
307# Describes the format for the status line. This is a comma separated list of
308# column names with an optional align and width suffix. See [ui].index-columns
309# for more details. To completely mute the status line except for push
310# notifications, explicitly set status-columns to an empty string.
311#
312# Default: left<*,center:=,right>*
313#status-columns=left<*,center:=,right>*
314
315#
316# Each name in status-columns must have a corresponding column-$name setting.
317# All column-$name settings accept golang text/template syntax. See
318# aerc-templates(7) for available template attributes and functions.
319#
320# Default settings
321#column-left=[{{.Account}}] {{.StatusInfo}}
322#column-center={{.PendingKeys}}
323#column-right={{.TrayInfo}}
324
325#
326# String separator inserted between columns.
327# See [ui].column-separator for more details.
328#
329#column-separator=" "
330
331# Specifies the separator between grouped statusline elements.
332#
333# Default: " | "
334#separator=" | "
335
336# Defines the mode for displaying the status elements.
337# Options: text, icon
338#
339# Default: text
340#display-mode=text
341
342[viewer]
343#
344# Specifies the pager to use when displaying emails. Note that some filters
345# may add ANSI codes to add color to rendered emails, so you may want to use a
346# pager which supports ANSI codes.
347#
348# Default: less -Rc
349#pager=less -Rc
350
351#
352# If an email offers several versions (multipart), you can configure which
353# mimetype to prefer. For example, this can be used to prefer plaintext over
354# html emails.
355#
356# Default: text/plain,text/html
357#alternatives=text/plain,text/html
358
359#
360# Default setting to determine whether to show full headers or only parsed
361# ones in message viewer.
362#
363# Default: false
364#show-headers=false
365
366#
367# Layout of headers when viewing a message. To display multiple headers in the
368# same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if
369# none of their specified headers are present in the message.
370#
371# Default: From|To,Cc|Bcc,Date,Subject
372#header-layout=From|To,Cc|Bcc,Date,Subject
373
374# Whether to always show the mimetype of an email, even when it is just a single part
375#
376# Default: false
377#always-show-mime=false
378
379# Parses and extracts http links when viewing a message. Links can then be
380# accessed with the open-link command.
381#
382# Default: true
383#parse-http-links=true
384
385[compose]
386#
387# Specifies the command to run the editor with. It will be shown in an embedded
388# terminal, though it may also launch a graphical window if the environment
389# supports it. Defaults to $EDITOR, or vi.
390#editor=
391
392#
393# When set, aerc will create and read .eml files for composing that have
394# non-standard \n linebreaks. This is only relevant if the used editor does not
395# support CRLF linebreaks.
396#
397#lf-editor=false
398
399#
400# Default header fields to display when composing a message. To display
401# multiple headers in the same row, separate them with a pipe, e.g. "To|From".
402#
403# Default: To|From,Subject
404#header-layout=To|From,Subject
405
406#
407# Edit headers into the text editor instead than separate fields.
408#
409# When this is true, address-book-cmd is not supported and address completion
410# is left to the editor itself. Also, displaying multiple headers on the same
411# line is not possible.
412#
413# Default: false
414#edit-headers=false
415
416#
417# Specifies the command to be used to tab-complete email addresses. Any
418# occurrence of "%s" in the address-book-cmd will be replaced with what the
419# user has typed so far.
420#
421# The command must output the completions to standard output, one completion
422# per line. Each line must be tab-delimited, with an email address occurring as
423# the first field. Only the email address field is required. The second field,
424# if present, will be treated as the contact name. Additional fields are
425# ignored.
426#
427# This parameter can also be set per account in accounts.conf.
428#address-book-cmd=
429
430# Specifies the command to be used to select attachments. Any occurrence of
431# '%s' in the file-picker-cmd will be replaced with the argument <arg>
432# to :attach -m <arg>. Any occurence of '%f' will be replaced by the
433# location of a temporary file, from which aerc will read the selected files.
434#
435# If '%f' is not present, the command must output the selected files to
436# standard output, one file per line. If it is present, then aerc does not
437# capture the standard output and instead reads the files from the temporary
438# file which should have the same format.
439#file-picker-cmd=
440
441#
442# Allow to address yourself when replying
443#
444# Default: true
445#reply-to-self=true
446
447# Warn before sending an email with an empty subject.
448#
449# Default: false
450#empty-subject-warning=false
451
452#
453# Warn before sending an email that matches the specified regexp but does not
454# have any attachments. Leave empty to disable this feature.
455#
456# Uses Go's regexp syntax, documented at https://golang.org/s/re2syntax. The
457# "(?im)" flags are set by default (case-insensitive and multi-line).
458#
459# Example:
460# no-attachment-warning=^[^>]*attach(ed|ment)
461#
462#no-attachment-warning=
463
464#
465# When set, aerc will generate "format=flowed" bodies with a content type of
466# "text/plain; format=flowed" as described in RFC3676. This format is easier to
467# handle for some mailing software, and generally just looks like ordinary
468# text. To actually make use of this format's features, you'll need support in
469# your editor.
470#
471#format-flowed=false
472
473[multipart-converters]
474#
475# Converters allow to generate multipart/alternative messages by converting the
476# main text/plain part into any other MIME type. Only exact MIME types are
477# accepted. The commands are invoked with sh -c and are expected to output
478# valid UTF-8 text.
479#
480# Example (obviously, this requires that you write your main text/plain body
481# using the markdown syntax):
482#text/html=pandoc -f markdown -t html --standalone
483
484[filters]
485#
486# Filters allow you to pipe an email body through a shell command to render
487# certain emails differently, e.g. highlighting them with ANSI escape codes.
488#
489# The commands are invoked with sh -c. The following folders are prepended to
490# the system $PATH to allow referencing filters from their name only:
491#
492# ${XDG_CONFIG_HOME:-~/.config}/aerc/filters
493# ~/.local/libexec/aerc/filters
494# ${XDG_DATA_HOME:-~/.local/share}/aerc/filters
495# $PREFIX/libexec/aerc/filters
496# $PREFIX/share/aerc/filters
497# /usr/libexec/aerc/filters
498# /usr/share/aerc/filters
499#
500# If you want to run a program in your default $PATH which has the same name
501# as a builtin filter (e.g. /usr/bin/colorize), use its absolute path.
502#
503# The following variables are defined in the filter command environment:
504#
505# AERC_MIME_TYPE the part MIME type/subtype
506# AERC_FORMAT the part content type format= parameter
507# AERC_FILENAME the attachment filename (if any)
508# AERC_SUBJECT the message Subject header value
509# AERC_FROM the message From header value
510#
511# The first filter which matches the email's mimetype will be used, so order
512# them from most to least specific.
513#
514# You can also match on non-mimetypes, by prefixing with the header to match
515# against (non-case-sensitive) and a comma, e.g. subject,text will match a
516# subject which contains "text". Use header,~regex to match against a regex.
517#
518text/plain=colorize
519text/calendar=calendar
520message/delivery-status=colorize
521message/rfc822=colorize
522#text/html=pandoc -f html -t plain | colorize
523#text/html=html | colorize
524#text/*=bat -fP --file-name="$AERC_FILENAME"
525#application/x-sh=bat -fP -l sh
526#image/*=catimg -w $(tput cols) -
527#subject,~Git(hub|lab)=lolcat -f
528#from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize
529
530# This special filter is only used to post-process email headers when
531# [viewer].show-headers=true
532# By default, headers are piped directly into the pager.
533#
534.headers=colorize
535
536[openers]
537#
538# Openers allow you to specify the command to use for the :open and :open-link
539# actions on a per-MIME-type basis. The :open-link URL scheme is used to
540# determine the MIME type as follows: x-scheme-handler/<scheme>.
541#
542# {} is expanded as the temporary filename to be opened. If it is not
543# encountered in the command, the temporary filename will be appened to the end
544# of the command.
545#
546# Like [filters], openers support basic shell globbing. The first opener which
547# matches the part's MIME type (or URL scheme handler MIME type) will be used,
548# so order them from most to least specific.
549#
550# Examples:
551# x-scheme-handler/irc=hexchat
552# x-scheme-handler/http*=firefox
553# text/html=surf -dfgms
554# text/plain=gvim {} +125
555# message/rfc822=thunderbird
556
557[hooks]
558#
559# Hooks are triggered whenever the associated event occurs.
560
561#
562# Executed when a new email arrives in the selected folder
563#mail-received=notify-send "[$AERC_ACCOUNT/$AERC_FOLDER] New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"
564
565#
566# Executed when aerc starts
567#aerc-startup=aerc :terminal calcurse && aerc :next-tab
568
569#
570# Executed when aerc shuts down.
571#aerc-shutdown=
572
573[templates]
574# Templates are used to populate email bodies automatically.
575#
576
577# The directories where the templates are stored. It takes a colon-separated
578# list of directories. If this is unset or if a template cannot be found, the
579# following paths will be used as a fallback in that order:
580#
581# ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
582# ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
583# /nix/store/bk6874radkd8h2y75rgg8hd267pwhdkl-aerc-0.16.0/share/aerc/templates
584#
585#template-dirs=
586
587# The default template to be used for new messages.
588#
589# default: new_message
590#new-message=new_message
591
592# The default template to be used for quoted replies.
593#
594# default: quoted_reply
595#quoted-reply=quoted_reply
596
597# The default template to be used for forward as body.
598#
599# default: forward_as_body
600#forwards=forward_as_body