]> git.r.bdr.sh - rbdr/dotfiles/blob - config/aerc/aerc.conf
Make kitty tabs pilly
[rbdr/dotfiles] / config / aerc / aerc.conf
1 # "Inbox"
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<16,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}}{{.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 15:04
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=15:04
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=Monday 15:04
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=false
137
138 #
139 # Template to use for Account tab titles
140 #
141 # Default: {{.Account}}
142 tab-title-account={{.Account}} {{if .Unread "INBOX"}}({{.Unread "INBOX"}}){{end}}{{if .Unread "Inbox"}}({{.Unread "Inbox"}}){{end}}
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 # /usr/local/share/aerc/stylesets
206 # /usr/share/aerc/stylesets
207 #
208 #stylesets-dirs=
209
210 # Uncomment to use box-drawing characters for vertical and horizontal borders.
211 #
212 # Default: " "
213 border-char-vertical="┃"
214 border-char-horizontal="━"
215
216 # Sets the styleset to use for the aerc ui elements.
217 #
218 # Default: default
219 #styleset-name=default
220
221 # Activates fuzzy search in commands and their arguments: the typed string is
222 # searched in the command or option in any position, and need not be
223 # consecutive characters in the command or option.
224 #
225 # Default: false
226 #fuzzy-complete=false
227
228 # How long to wait after the last input before auto-completion is triggered.
229 #
230 # Default: 250ms
231 #completion-delay=250ms
232
233 # The minimum required characters to allow auto-completion to be triggered after
234 # completion-delay.
235 #
236 # Default: 1
237 #completion-min-chars=1
238
239 #
240 # Global switch for completion popovers
241 #
242 # Default: true
243 #completion-popovers=true
244
245 # Uncomment to use UTF-8 symbols to indicate PGP status of messages
246 #
247 # Default: ASCII
248 icon-unencrypted=
249 icon-encrypted=
250 icon-signed=
251 icon-signed-encrypted=
252 icon-unknown=
253 icon-invalid=
254
255 # Reverses the order of the message list. By default, the message list is
256 # ordered with the newest (highest UID) message on top. Reversing the order
257 # will put the oldest (lowest UID) message on top. This can be useful in cases
258 # where the backend does not support sorting.
259 #
260 # Default: false
261 #reverse-msglist-order = false
262
263 # Reverse display of the mesage threads. Default order is the the intial
264 # message is on the top with all the replies being displayed below. The
265 # reverse option will put the initial message at the bottom with the
266 # replies on top.
267 #
268 # Default: false
269 #reverse-thread-order=false
270
271 # Sort the thread siblings according to the sort criteria for the messages. If
272 # sort-thread-siblings is false, the thread siblings will be sorted based on
273 # the message UID in ascending order. This option is only applicable for
274 # client-side threading with a backend that enables sorting. Note that there's
275 # a performance impact when sorting is activated.
276 #
277 # Default: false
278 #sort-thread-siblings=false
279
280 #[ui:account=foo]
281 #
282 # Enable a threaded view of messages. If this is not supported by the backend
283 # (IMAP server or notmuch), threads will be built by the client.
284 #
285 # Default: false
286 threading-enabled=true
287
288 # Force client-side thread building
289 #
290 # Default: false
291 #force-client-threads=false
292
293 # Debounce client-side thread building
294 #
295 # Default: 50ms
296 #client-threads-delay=50ms
297
298 [statusline]
299 #
300 # Describes the format for the status line. This is a comma separated list of
301 # column names with an optional align and width suffix. See [ui].index-columns
302 # for more details. To completely mute the status line except for push
303 # notifications, explicitly set status-columns to an empty string.
304 #
305 # Default: left<*,center:=,right>*
306 #status-columns=left<*,center:=,right>*
307
308 #
309 # Each name in status-columns must have a corresponding column-$name setting.
310 # All column-$name settings accept golang text/template syntax. See
311 # aerc-templates(7) for available template attributes and functions.
312 #
313 # Default settings
314 #column-left=[{{.Account}}] {{.StatusInfo}}
315 #column-center={{.PendingKeys}}
316 #column-right={{.TrayInfo}}
317
318 #
319 # String separator inserted between columns.
320 # See [ui].column-separator for more details.
321 #
322 #column-separator=" "
323
324 # Specifies the separator between grouped statusline elements.
325 #
326 # Default: " | "
327 #separator=" | "
328
329 # Defines the mode for displaying the status elements.
330 # Options: text, icon
331 #
332 # Default: text
333 #display-mode=text
334
335 [viewer]
336 #
337 # Specifies the pager to use when displaying emails. Note that some filters
338 # may add ANSI codes to add color to rendered emails, so you may want to use a
339 # pager which supports ANSI codes.
340 #
341 # Default: less -R
342 #pager=less -R
343
344 #
345 # If an email offers several versions (multipart), you can configure which
346 # mimetype to prefer. For example, this can be used to prefer plaintext over
347 # html emails.
348 #
349 # Default: text/plain,text/html
350 #alternatives=text/plain,text/html
351
352 #
353 # Default setting to determine whether to show full headers or only parsed
354 # ones in message viewer.
355 #
356 # Default: false
357 #show-headers=false
358
359 #
360 # Layout of headers when viewing a message. To display multiple headers in the
361 # same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if
362 # none of their specified headers are present in the message.
363 #
364 # Default: From|To,Cc|Bcc,Date,Subject
365 #header-layout=From|To,Cc|Bcc,Date,Subject
366
367 # Whether to always show the mimetype of an email, even when it is just a single part
368 #
369 # Default: false
370 #always-show-mime=false
371
372 # Parses and extracts http links when viewing a message. Links can then be
373 # accessed with the open-link command.
374 #
375 # Default: true
376 #parse-http-links=true
377
378 [compose]
379 #
380 # Specifies the command to run the editor with. It will be shown in an embedded
381 # terminal, though it may also launch a graphical window if the environment
382 # supports it. Defaults to $EDITOR, or vi.
383 #editor=
384
385 #
386 # Default header fields to display when composing a message. To display
387 # multiple headers in the same row, separate them with a pipe, e.g. "To|From".
388 #
389 # Default: To|From,Subject
390 #header-layout=To|From,Subject
391
392 #
393 # Specifies the command to be used to tab-complete email addresses. Any
394 # occurrence of "%s" in the address-book-cmd will be replaced with what the
395 # user has typed so far.
396 #
397 # The command must output the completions to standard output, one completion
398 # per line. Each line must be tab-delimited, with an email address occurring as
399 # the first field. Only the email address field is required. The second field,
400 # if present, will be treated as the contact name. Additional fields are
401 # ignored.
402 #
403 # This parameter can also be set per account in accounts.conf.
404 address-book-cmd=contacts '%s'
405
406 # Specifies the command to be used to select attachments. Any occurence of '%s'
407 # in the file-picker-cmd will be replaced the argument <arg> to :attach -m
408 # <arg>.
409 #
410 # The command must output the selected files to standard output, one file per
411 # line.
412 #file-picker-cmd=
413
414 #
415 # Allow to address yourself when replying
416 #
417 # Default: true
418 #reply-to-self=true
419
420 #
421 # Warn before sending an email that matches the specified regexp but does not
422 # have any attachments. Leave empty to disable this feature.
423 #
424 # Uses Go's regexp syntax, documented at https://golang.org/s/re2syntax. The
425 # "(?im)" flags are set by default (case-insensitive and multi-line).
426 #
427 # Example:
428 # no-attachment-warning=^[^>]*attach(ed|ment)
429 #
430 #no-attachment-warning=
431
432 #
433 # When set, aerc will generate "format=flowed" bodies with a content type of
434 # "text/plain; format=flowed" as described in RFC3676. This format is easier to
435 # handle for some mailing software, and generally just looks like ordinary
436 # text. To actually make use of this format's features, you'll need support in
437 # your editor.
438 #
439 #format-flowed=false
440
441 [multipart-converters]
442 #
443 # Converters allow to generate multipart/alternative messages by converting the
444 # main text/plain part into any other MIME type. Only exact MIME types are
445 # accepted. The commands are invoked with sh -c and are expected to output
446 # valid UTF-8 text.
447 #
448 # Example (obviously, this requires that you write your main text/plain body
449 # using the markdown syntax):
450 text/html=pandoc -f markdown -t html --standalone
451
452 [filters]
453 #
454 # Filters allow you to pipe an email body through a shell command to render
455 # certain emails differently, e.g. highlighting them with ANSI escape codes.
456 #
457 # The commands are invoked with sh -c. The following folders are appended to
458 # the system $PATH to allow referencing filters from their name only:
459 #
460 # ${XDG_CONFIG_HOME:-~/.config}/aerc/filters
461 # ${XDG_DATA_HOME:-~/.local/share}/aerc/filters
462 # $PREFIX/share/aerc/filters
463 # /usr/share/aerc/filters
464 #
465 # The following variables are defined in the filter command environment:
466 #
467 # AERC_MIME_TYPE the part MIME type/subtype
468 # AERC_FORMAT the part content type format= parameter
469 # AERC_FILENAME the attachment filename (if any)
470 # AERC_SUBJECT the message Subject header value
471 # AERC_FROM the message From header value
472 #
473 # The first filter which matches the email's mimetype will be used, so order
474 # them from most to least specific.
475 #
476 # You can also match on non-mimetypes, by prefixing with the header to match
477 # against (non-case-sensitive) and a comma, e.g. subject,text will match a
478 # subject which contains "text". Use header,~regex to match against a regex.
479 #
480 text/plain=wrap -r -w 72 | colorize
481 text/calendar=calendar
482 message/delivery-status=colorize
483 message/rfc822=colorize
484 text/html=pandoc -f html -t plain | colorize
485 #text/html=html | colorize
486 text/*=bat -fP --file-name="$AERC_FILENAME"
487 #application/x-sh=bat -fP -l sh
488 #image/*=catimg -w $(tput cols) -
489 #subject,~Git(hub|lab)=lolcat -f
490 #from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize
491
492 # This special filter is only used to post-process email headers when
493 # [viewer].show-headers=true
494 # By default, headers are piped directly into the pager.
495 #
496 .headers=colorize
497
498 [openers]
499 #
500 # Openers allow you to specify the command to use for the :open and :open-link
501 # actions on a per-MIME-type basis. The :open-link URL scheme is used to
502 # determine the MIME type as follows: x-scheme-handler/<scheme>.
503 #
504 # {} is expanded as the temporary filename to be opened. If it is not
505 # encountered in the command, the temporary filename will be appened to the end
506 # of the command.
507 #
508 # Like [filters], openers support basic shell globbing. The first opener which
509 # matches the part's MIME type (or URL scheme handler MIME type) will be used,
510 # so order them from most to least specific.
511 #
512 # Examples:
513 # x-scheme-handler/irc=hexchat
514 # x-scheme-handler/http*=firefox
515 # text/html=surf -dfgms
516 # text/plain=gvim {} +125
517 # message/rfc822=thunderbird
518
519 [hooks]
520 #
521 # Hooks are triggered whenever the associated event occurs.
522
523 #
524 # Executed when a new email arrives in the selected folder
525 #mail-received=notify-send "New mail from $AERC_FROM_NAME" "$AERC_SUBJECT"
526
527 #
528 # Executed when aerc starts
529 #aerc-startup=aerc :terminal calcurse && aerc :next-tab
530
531 #
532 # Executed when aerc shuts down.
533 #aerc-shutdown=
534
535 [templates]
536 # Templates are used to populate email bodies automatically.
537 #
538
539 # The directories where the templates are stored. It takes a colon-separated
540 # list of directories. If this is unset or if a template cannot be found, the
541 # following paths will be used as a fallback in that order:
542 #
543 # ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
544 # ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
545 # /usr/local/share/aerc/templates
546 # /usr/share/aerc/templates
547 #
548 #template-dirs=
549
550 # The default template to be used for new messages.
551 #
552 # default: new_message
553 #new-message=new_message
554
555 # The default template to be used for quoted replies.
556 #
557 # default: quoted_reply
558 #quoted-reply=quoted_reply
559
560 # The default template to be used for forward as body.
561 #
562 # default: forward_as_body
563 #forwards=forward_as_body