aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile26
-rw-r--r--README.md9
-rw-r--r--doc/aerc-config.5.scd319
-rw-r--r--doc/aerc-imap.5.scd46
-rw-r--r--doc/aerc-smtp.5.scd50
-rw-r--r--doc/aerc.1.scd103
7 files changed, 554 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 8fc975f..90e1624 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,7 @@
.go
/aerc2
+/aerc
log
raw.log
+*.1
+*.5
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..66dc650
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+aerc:
+ go build -o aerc
+
+%.1: doc/%.1.scd
+ scdoc < $< > $@
+
+%.5: doc/%.5.scd
+ scdoc < $< > $@
+
+DOCS := \
+ aerc.1 \
+ aerc-config.5 \
+ aerc-imap.5 \
+ aerc-smtp.5
+
+all: aerc $(DOCS)
+
+clean:
+ rm -f *.1 *.5 aerc
+
+install:
+ # TODO: install binary, man pages, example config, and filters from contrib
+
+.DEFAULT_GOAL := all
+
+.PHONY: aerc clean install
diff --git a/README.md b/README.md
index f6ab192..1f77d5a 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,12 @@ Join the IRC channel: [#aerc on irc.freenode.net](http://webchat.freenode.net/?c
## Building
- go build
+ $ make
+
+## Installation
+
+ # make install
+ $ man aerc
## Usage
@@ -18,7 +23,7 @@ $ cp config/*.conf ~/.config/aerc/
$ vim ~/.config/aerc/accounts.conf
```
-Fill in your account details and configure the rest to taste, then run `aerc2`.
+Fill in your account details and configure the rest to taste, then run `aerc`.
## Contributing
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
new file mode 100644
index 0000000..a221723
--- /dev/null
+++ b/doc/aerc-config.5.scd
@@ -0,0 +1,319 @@
+aerc-config(5)
+
+# NAME
+
+aerc-config - configuration file formats for *aerc*(1)
+
+# CONFIGURATION
+
+There are three aerc config files: *aerc.conf*, *binds.conf*, and
+*accounts.conf*. 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
+"aerc", which defaults to ~/.config/aerc.
+
+Examples of these config files are typically included with your installation of
+aerc and are usually installed in /usr/share/aerc.
+
+Each file uses the _ini_ format, and consists of sections with keys and values.
+A line beginning with # is considered a comment and ignored, as are empty lines.
+New sections begin with [section-name] on a single line, and keys and values are
+separated with "=".
+
+# AERC.CONF
+
+This file is used for configuring the general appearance and behavior of aerc.
+
+## UI OPTIONS
+
+These options are configured in the *[ui]* section of aerc.conf.
+
+*index-format*
+ Describes the format for each row in a mailbox view. This field is
+ compatible with mutt's printf-like syntax. TODO: document properly
+
+ Default: %4C %Z %D %-17.17n %s
+
+*timestamp-format*
+ See strftime(3)
+
+ Default: %F %l:%M %p (ISO 8501 + 12 hour time)
+
+*sidebar-width*
+ Width of the sidebar, including the border. Set to zero to disable the
+ sidebar.
+
+ Default: 20
+
+*empty-message*
+ Message to display when viewing an empty folder.
+
+ Default: (no messages)
+
+## VIEWER
+
+These options are configured in the *[viewer]* section of aerc.conf.
+
+*pager*
+ 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.
+
+ Default: less -R
+
+*alternatives*
+ 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.
+
+ Default: text/plain,text/html
+
+## COMPOSE
+
+These options are configured in the *[viewer]* section of aerc.conf.
+
+*editor*
+ 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. Defaults to *$EDITOR*, or *vi*(1).
+
+## FILTERS
+
+Filters allow you to pipe an email body through a shell command to render
+certain emails differently, e.g. highlighting them with ANSI escape codes.
+They are configured in the *[filters]* section of aerc.conf.
+
+The first filter which matches the email's mimetype will be used, so order
+them from most to least specific.
+
+You can also match on non-mimetypes, by prefixing with the header to match
+against (non-case-sensitive) and a comma, e.g. subject,text will match a
+subject which contains "text". Use header,~regex to match against a regex.
+
+Most aerc installations come with some useful filters, typically installed in
+/usr/share/aerc/filters. Here is an example config which uses these filters:
+
+```
+subject,~^\[PATCH=/usr/share/aerc/filters/hldiff.py
+text/html=/usr/share/aerc/filters/html
+text/*=/usr/share/aerc/filters/plaintext.py
+```
+
+Note that the filters which are installed with aerc have additional
+dependencies, such as Python, sockify, and w3m.
+
+# ACCOUNTS.CONF
+
+This file is used for configuring each mail account used for aerc. 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. 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.
+
+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*).
+
+*copy-to*
+ Specifies a folder to copy sent mails to, usually "Sent".
+
+ Default: none
+
+*default*
+ Specifies the default folder to open in the message list when aerc
+ configures this account.
+
+ Default: INBOX
+
+*folders*
+ Specifies the list of folders to display in the sidebar.
+
+ Default: all folders
+
+*from*
+ 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>".
+
+ Default: none
+
+*outgoing*
+ 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-smtp*(5)
+
+*source*
+ 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)
+
+ Default: none
+
+# BINDS.CONF
+
+This file is used for configuring keybindings used in the aerc interactive
+client. You may configure different keybindings for different contexts by
+writing them into different *[sections]* of the ini file. The available contexts
+are:
+
+*[messages]*
+ keybindings for the message list
+
+*[view]*
+ keybindings for the message viewer
+
+*[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
+
+*[terminal]*
+ keybindings for terminal tabs
+
+You may also configure global keybindings by placing them at the beginning of
+the file, before specifying any context-specific sections. For each *key=value*
+option specified, the _key_ is the keystrokes pressed (in order) to invoke this
+keybinding, and _value_ 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. Additionally, the following special options are available in
+each binding context:
+
+*$noinherit*
+ If set to "true", global keybindings will not be effective in this context.
+
+ Default: false
+
+*$ex*
+ This can be set to a keystroke which will bring up the command input in this
+ context.
+
+ Default: <semicolon>
+
+In addition to letters, special keys may be specified in <angle brackets>. The
+following special keys are supported:
+
+[[ *Name*
+:- *Description*
+| space
+: " "
+| semicolon
+: ;
+| tab
+:
+| enter
+:
+| up
+:
+| down
+:
+| right
+:
+| left
+:
+| pgup
+:
+| pgdn
+:
+| home
+:
+| end
+:
+| insert
+:
+| delete
+:
+| exit
+:
+| cancel
+:
+| print
+:
+| pause
+:
+| backtab
+| c-space
+: Ctrl+Space
+| c-a
+: Ctrl+a
+| c-b
+: Ctrl+b
+| c-c
+: Ctrl+c
+| c-d
+: Ctrl+d
+| c-e
+: Ctrl+e
+| c-f
+: Ctrl+f
+| c-g
+: Ctrl+g
+| c-h
+: Ctrl+h
+| c-i
+: Ctrl+i
+| c-j
+: Ctrl+j
+| c-k
+: Ctrl+k
+| c-l
+: Ctrl+l
+| c-m
+: Ctrl+m
+| c-n
+: Ctrl+n
+| c-o
+: Ctrl+o
+| c-p
+: Ctrl+p
+| c-q
+: Ctrl+q
+| c-r
+: Ctrl+r
+| c-s
+: Ctrl+s
+| c-t
+: Ctrl+t
+| c-u
+: Ctrl+u
+| c-v
+: Ctrl+v
+| c-w
+: Ctrl+w
+| c-x
+: Ctrl+x
+| c-y
+: Ctrl+y
+| c-z
+: Ctrl+z
+| c-]
+: Ctrl+]
+| c-[
+: Ctrl+[
+| c-^
+: Ctrl+^
+| c-_
+: Ctrl+_
+
+# SEE ALSO
+
+*aerc*(1) *aerc-imap*(5) *aerc-smtp*(5)
+
+# AUTHORS
+
+Maintained by Drew DeVault <sir@cmpwn.com>, who is assisted by other open
+source contributors. For more information about aerc development, see
+https://git.sr.ht/~sircmpwn/aerc.
diff --git a/doc/aerc-imap.5.scd b/doc/aerc-imap.5.scd
new file mode 100644
index 0000000..5899a34
--- /dev/null
+++ b/doc/aerc-imap.5.scd
@@ -0,0 +1,46 @@
+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)
+
+# CONFIGURATION
+
+IMAP configuration may be done interactively with the :new-account command.
+
+In accounts.conf (see *aerc-config*(5)), the following IMAP-specific options are
+available:
+
+*source*
+ imap[s][+insecure]://username[:password]@hostname[:port]
+
+ Remember that all fields must be URL encoded. The "@" symbol, when URL
+ encoded, is *%40*.
+
+ The meaning of the scheme component is:
+
+ *imap://*:
+ IMAP with STARTTLS
+
+ *imap+insecure://*:
+ IMAP without STARTTLS
+
+ *imaps*:
+ IMAP with TLS/SSL
+
+# SEE ALSO
+
+*aerc*(1) *aerc-config*(5) *aerc-smtp*(5)
+
+# AUTHORS
+
+Maintained by Drew DeVault <sir@cmpwn.com>, who is assisted by other open
+source contributors. For more information about aerc development, see
+https://git.sr.ht/~sircmpwn/aerc.
diff --git a/doc/aerc-smtp.5.scd b/doc/aerc-smtp.5.scd
new file mode 100644
index 0000000..7d07125
--- /dev/null
+++ b/doc/aerc-smtp.5.scd
@@ -0,0 +1,50 @@
+aerc-smtp(5)
+
+# NAME
+
+aerc-smtp - SMTP configuration for *aerc*(1)
+
+# SYNOPSIS
+
+aerc implements the SMTP protocol as specified by RFC 5321.
+
+# CONFIGURATION
+
+SMTP configuration may be done interactively with the :new-account command.
+
+In accounts.conf (see *aerc-config*(5)), the following SMTP-specific options are
+available:
+
+*outgoing*
+ smtp[s][+plain|+none]://username[:password]@hostname[:port]
+
+ Remember that all fields must be URL encoded. The "@" symbol, when URL
+ encoded, is *%40*.
+
+ The meaning of the scheme component is:
+
+ *smtp://*:
+ Unencrypted SMTP
+
+ *smtps://*:
+ SMTP with TLS/SSL
+
+ Additionally, you can specify an authentication mechansim 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.
+
+# SEE ALSO
+
+*aerc*(1) *aerc-config*(5) *aerc-smtp*(5)
+
+# AUTHORS
+
+Maintained by Drew DeVault <sir@cmpwn.com>, who is assisted by other open
+source contributors. For more information about aerc development, see
+https://git.sr.ht/~sircmpwn/aerc.
diff --git a/doc/aerc.1.scd b/doc/aerc.1.scd
new file mode 100644
index 0000000..5d501f0
--- /dev/null
+++ b/doc/aerc.1.scd
@@ -0,0 +1,103 @@
+aerc(1)
+
+# NAME
+
+aerc - the world's best email client
+
+# SYNOPSIS
+
+_aerc_
+
+Starts the interactive aerc mail client on /dev/tty.
+
+# RUNTIME COMMANDS
+
+To execute a command, press : to summon the command interface. Commands may also
+be bound to keys, see *aerc-config*(5) for details.
+
+Different commands work in different contexts, depending on the kind of tab you
+have selected.
+
+## GLOBAL COMMANDS
+
+These commands work in any context.
+
+*cd* <directory>
+ Changes aerc's current working directory.
+
+*term* [command...]
+ Opens a new terminal tab with a shell running in the current working
+ directory, or the specified command.
+
+*prev-tab* [n], *next-tab* [n]
+ Cycles to the previous or next tab in the list, repeating n times
+ (default: 1).
+
+*quit*
+ Exits aerc.
+
+## MESSAGE LIST COMMANDS
+
+*cf* <folder>
+ Change the folder shown in the message list.
+
+*compose*
+ Open the compose window to send a new email. The new email will be sent with
+ the current account's outgoing transport configuration, see
+ *aerc-config*(5) for details on configuring outgoing emails.
+
+*copy* <target>
+ Copies the selected message to the target folder.
+
+*delete-message*
+ Deletes the selected message.
+
+*move* <target>
+ Moves the selected message to the target folder.
+
+*next-folder* <n>, *prev-folder* <n>
+ Cycles to the next (or previous) folder shown in the sidebar, repeated n
+ times (default: 1).
+
+*next-message* <n>[%], *prev-message* <n>[%]
+ Selects the next (or previous) message in the message list. If specified as
+ a percentage, the percentage is applied to the number of messages shown on
+ screen and the cursor advances that far.
+
+*pipe* <cmd>
+ Downloads and pipes the selected message into the given shell command, and
+ opens a new terminal tab to show the result.
+
+*reply* [-aq]
+ Opens the composer to reply to the selected message.
+
+ *-a*: Reply all
+
+ *-q*: Insert a quoted version of the selected message into the reply editor
+
+*select-message* <n>
+ Selects the nth message in the message list (and scrolls it into view if
+ necessary).
+
+*view-message*
+ Opens the message viewer to display the selected message.
+
+## MESSAGE VIEW COMMANDS
+
+*close*
+ Closes the message viewer.
+
+## TERMINAL COMMANDS
+
+*close*
+ Closes the terminal.
+
+# SEE ALSO
+
+*aerc-config*(5) *aerc-imap*(5) *aerc-smtp*(5)
+
+# AUTHORS
+
+Maintained by Drew DeVault <sir@cmpwn.com>, who is assisted by other open
+source contributors. For more information about aerc development, see
+https://git.sr.ht/~sircmpwn/aerc.