Commit graph

224 commits

Author SHA1 Message Date
Kalyan Sriram
2c244222d5 Rename selecter to selector 2020-07-30 19:35:59 +02:00
Kalyan Sriram
1ff687ca2b Implement style configuration.
Introduce the ability to configure stylesets, allowing customization of
aerc's look (color scheme, font weight, etc). Default styleset is
installed to /path/to/aerc/stylesets/default.
2020-07-30 19:35:59 +02:00
Tobias Wölfel
494bd674a9 Add flag based search options
Provide search and filter with the option to specify more flag based
conditions.
Use '-x <flag>' to search for messages with a flag (seen, answered,
flagged) and '-X <flag>' to search for messages without a flag.
2020-07-25 08:08:08 +02:00
Tobias Wölfel
825996572f Document mailto argument usage 2020-07-19 11:15:56 +02:00
ARaspiK
0535f6333f Add additional flagging functionality
More mail flags can now be set, unset, and toggled, not just the
read/seen flag.

This functionality is implemented with a new `:flag` and `:unflag`
command, which are extensions to the matching `:read` and `:unread`
commands, adding support for different flags.  In fact, the
`read`/`unread` commands are now recognized aliases to `flag`/`unflag`.
The new commands are also well documented in aerc(1).

The change mostly extends the previous read/unread setting functionality
by adding a selection for the flag to change.
2020-07-08 09:13:03 +02:00
ARaspiK
e1c2b596dc Add a 'folders-exclude' option
Added a 'folders-exclude' option that allows removing selected folders
from the directory list sidebar. My motivating example was that removing
a single folder from the list using Golang regexes seemed pretty hard,
so this is a better way to do it. The excluded folders list is included
in the man page.
2020-07-02 09:13:14 +02:00
Alexander Harkness
91db250272 Fix missing escape in aerc-config manpage
Underscores were being elided by scdoc when they should have been
rendered verbatim in the output.
2020-06-13 10:15:59 +02:00
Jeffas
a69399a138 Fix search documentation
The documentation for searching in IMAP and Maildir was out of date.
This updates it to be more representative of what the options now do.
2020-06-09 08:42:54 +02:00
Drew DeVault
caad1b2c06 Revert "Add Style configuration"
This reverts commit 0f78f06610.
2020-05-28 10:32:42 -04:00
Reto Brunner
0f78f06610 Add Style configuration
The following functionalities are added to configure aerc ui styles.
- Read stylesets from file with very basic fnmatch wildcard matching
- Add default styleset
- Support different stylesets as part of UiConfig allowing contextual
  styles.
- Move widgets/ui elements to use the stylesets.
- Add configuration manual for the styleset
2020-05-27 07:57:10 +02:00
Martin Michlmayr
a7986f5706 Fix typos 2020-05-21 18:11:47 +02:00
Reto Brunner
6bd6690d80 templates: add version func
Fixes #316
2020-05-06 10:00:59 -04:00
Reto Brunner
434eaa19a1 docs: extract template function to their own section
The functions were located in the data section, which was suboptimal.
2020-05-06 10:00:58 -04:00
Ray Ganardi
b650bb30a2 Implement :header command
Usage: *header* [-f] <field> [value]
	Add a new email header. If the header already exists, -f must be
	specified to replace the given value.
2020-05-01 11:01:28 -04:00
Reto Brunner
94ce215e58 add template structure to aerc-templates(7) 2020-04-26 12:44:48 +02:00
Reto Brunner
2632a1a8ad aerc-config: remove bold modifier within text
Partial bold ("highlighted") text looks very strange and it doesn't
really add anything, might as well remove it.
2020-04-26 12:39:49 +02:00
Reto Brunner
432d2b1592 remove mention of header addition via the editor from tutorial 2020-04-24 23:51:47 +02:00
Jeffas
3102ac3680 Add recall command
This command allows recalling the selected postponed email to edit in
the composer. The command only allows recalling from the postpone
directory.
2020-04-24 12:59:21 -04:00
Jeffas
7f033278eb Add postpone command
This command uses the Postpone folder from the account config to save
messages to. Messages are saved as though they were sent so have a valid
'to' recipient address and should be able to be read back in for later
editing.
2020-04-24 12:59:21 -04:00
Ray Ganardi
447e662057 Add :choose command
Usage:
	*choose* -o <key> <text> <command> [-o <key> <text> <command>]...

Prompts the user to choose from various options.
2020-04-24 12:59:21 -04:00
Jeffas
3156d481fe Add pinned tabs
This adds the commands pin-tab and unpin-tab. Once pinned a tab lives on
the left of the tabstrip and has a configurable marker, defaulting to `
before its name.
2020-03-09 09:31:02 -04:00
Peter Lamby
258a3f11ae Correct the khard example so that it works with aerc 2020-03-09 09:17:08 -04:00
Jeffas
68f179021d Add move-tab command 2020-03-03 20:08:29 +01:00
Peter Lamby
2e381fa42d Document smtp-starttls 2020-03-02 10:39:13 +01:00
sqwishy
31489e3baa note in aerc-templates.7.scd for toLocal function 2020-02-25 17:45:29 -05:00
Erazem Kokot
a82fa2bf23 Fix typo in message view section 2020-02-12 11:51:50 -05:00
Srivathsan Murali
b2fa5a16f5 Contextual UI Configuration
+ Adds parsing of contextual ui sections to aerc config.
+ Add GetUiConfig method for AercConfig that is used to get the
  specialized UI config.
+ Add UiConfig method to AccountView to get specialized UI Config.
+ Modifies Aerc codebase to use specialized UIConfig instead.
+ Adds documentation for Contextual UI Configuration
2020-01-24 10:50:21 -05:00
Ben Burwell
aa967682bc Fix handling of multiple template-dirs
Before, while the docs stated that template-dirs was a colon-separated
list, a delimiter was not specified in the struct tag, so it was falling
back to the default for the ini library (a comma). Also added a note to
the docs to clarify that templates are configured in the [templates]
section.
2020-01-24 12:11:03 +01:00
Reto Brunner
5b3acb8034 msgview/save: Adapt to already decoded reader
The functionality was broken since the decoding changes.
This commit also simplifies the code (in my view) to make the application logic
easier to follow.
The docs are updated accordingly (the feature was poorly documented).

As far as I am aware there should be no breaking changes (and is certainly
still in the spec of the prior documentation)
2020-01-20 09:21:28 -05:00
Ben Burwell
240f57848f Add docs for reply -T 2020-01-11 09:45:21 -05:00
Leszek Cimała
a40959c129 template: man cosmetic changes 2020-01-09 14:31:19 -05:00
Leszek Cimała
bf0f72a533 template: add exec and wrap 2020-01-09 14:31:19 -05:00
Leszek Cimała
d238272bdb add .OriginalMIMEType variable to reply template 2020-01-09 14:31:19 -05:00
Drew DeVault
14d58c2f7b Reword aerc-tutorial with revised constraints
This document used to specify some constraints on the receipient
address, but this has since been corrected in aerc.
2020-01-05 16:01:58 -05:00
Reto Brunner
63391b7dca Add labels to index format (%g)
Exposes the notmuch tags accordingly, stubs it for the maildir worker.
2019-12-27 10:20:29 -07:00
Reto Brunner
ce42429cbf read: adapt to ProvidesMessages 2019-12-22 16:21:38 -05:00
Reto Brunner
709d4e1e59 docs: mark command 2019-12-21 09:27:54 -05:00
Reto Brunner
b9d2938f9f msglist: highlight marked messages
Note that, until we get color configuration, this means that the user *must*
have the %Z verb in the index format else it'll be horribly confusing
as no visual indication is provided
2019-12-21 09:27:53 -05:00
Ben Burwell
fad375c673 Add address book completion in composer
Complete email address fields in the message composer with an external
address book command, compatible with mutt's query_cmd.
2019-12-21 09:23:22 -05:00
Ben Burwell
7160f98a90 Show textinput completions in popovers
Rather than showing completions inline in the text input, show them in a
popover which can be scrolled by repeatedly pressing the tab key. The
selected completion can be executed by pressing enter.
2019-12-21 09:23:21 -05:00
Michele Finotto
dfe58842b9 Add custom sorting for folders
A new config options for accounts.conf (folders-sort) was added to
allow a user to choose which folders should be shown on top.
My use case was to avoid stepping into heavy, but rarely viewed folders
when cycling through other often accessed ones.

To test add this to your account.conf:

folders-sort  = INBOX,Sent,Archive

INBOX, Sent and Archive should then show at the top of your dirlist,
and all other folders should come next in alphabetical order.
2019-12-09 12:42:40 -05:00
Srivathsan Murali
c655afa32b Complete the F rune.
%F now shows the auth name or recepient name/address if the
message is from you.
2019-11-17 13:19:20 -05:00
Drew DeVault
08574104bc Correct capitalization in quoted_reply 2019-11-10 13:36:25 -05:00
Srivathsan Murali
3ba69edab5 Add Templates with Parsing
+ Changes NewComposer to return error.
+ Add lib to handle templates using "text/template".
+ Add -T option to following commands
    - compose.
    - reply
    - forward
+ Quoted replies using templates.
+ Forwards as body using templates
+ Default templates are installed similar to filters.
+ Templates Config in aerc.conf.
    - Required templates are parsed while loading config.
+ Add aerc-templates.7 manual for using template data.
2019-11-10 10:15:49 -05:00
Luke Drummond
331b915139 Add support for AUTH LOGIN submission
`go-sasl` upstream added support [1] for the obsolete [2] AUTH LOGIN
method which enables aerc to send email via servers which remain common
in the wild.

Fixes ~sircmpwn/aerc2#263

[1] https://github.com/emersion/go-sasl/commit/61afe53d
[2] https://datatracker.ietf.org/doc/draft-murchison-sasl-login/
2019-11-01 11:02:01 -04:00
Srivathsan Murali
1bedb8fe06 Config for deleting message from message viewer
As suggested in #268, this adds a behaviour setting for
deleting message from message viewer.
2019-09-20 15:23:45 -04:00
Jeffas
d2a18e267c Change search flags
This changes the search flags for maildir and imap backends.

They now no longer use -t for searching all text. This seems to make
more sense as being the targeted recipient. I have similarly added Cc
for -c. The text search now resides under -a for all text.
2019-09-20 15:06:54 -04:00
Jeffas
36af93b8f4 Add documentation for sort
This adds documentation for the config option and the command.
2019-09-20 14:56:02 -04:00
Jeffas
35dc57ed90 Add search documentation for maildir backend 2019-09-16 12:40:26 -04:00
Jeffas
e2d5c456dc Add signatures
This adds the ability for per-account signatures in the accounts.conf
config file. The signature is added to emails in the editor at the
bottom of the email. This includes when forwarding, replying to, and
composing emails.

There are two config options: signature-file and signature-cmd. The
former allows a signature to be read from a file and the latter allows
an arbitrary command to be executed to return the signature.

The config options have been documented in aerc-config
2019-09-12 16:18:34 -04:00
Reto Brunner
a93b4de6f3 Add modify-labels command
This adds the event type as well as the command implementation, but no backend
supports it yet.
2019-09-12 16:17:24 -04:00
Jeffas
618a500341 Add display of unread messages in dirlist
Add an onUpdateDirs handler. This is used to invalidate the dirlist and
redraw with the correct number of recent/unread/total messages is shown.

A config option and formatting options are provided.
2019-09-11 12:37:43 -04:00
Jeffas
32381592fc Add new search behaviour for imap
This patch adds search behaviour to allow searching in the body of the
messages, the entire text (body + header), and searching just the from
header.
2019-09-11 12:24:27 -04:00
Paul Spooren
e4104a8674 Allow custom spinner via config file
Allows to set `ui.spinner=` to a string which is then split by
`ui.spinner-delimiter=` (Default: comma) instead of having a hard coded
animation.

This implementation doesn't use INIs capabilities to split strings as
it trims whitespaces breaking the default animation.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2019-08-30 10:32:28 +09:00
Reto Brunner
f13f9a8684 notmuch: add search / filter capabilities 2019-08-29 08:44:11 +09:00
Reto Brunner
94b9d557de extract search criteria parsing into the backends 2019-08-29 08:44:10 +09:00
Christopher Vittal
ecd803aae4 Add :prompt command
Usage:
    :prompt <prompt> <command...>

Displays the prompt on the status bar, waits for user input, then
appends that input as the last argument to the command and executes it.
The input is passed as one argument to the command, unless it is empty,
in which case no extra argument is added.
2019-08-26 09:48:39 +09:00
Drew DeVault
334ca89bea folder filter: only assume regex if filter is ~fmt 2019-08-20 13:04:58 +09:00
Jelle Besseling
1f5293931a Add forwarding as attachment feature
This allows a single message to be forward as attachment with the
:forward -a command
2019-08-20 10:05:51 +09:00
Jelle Besseling
36c6030e81 Add addresses argument to forward command 2019-08-20 10:04:29 +09:00
Daniel Xu
9fd6054ca1 Support regex filters for folders
It's nice to be able to filter the folders displayed in the side
bar. Basic string matching can get verbose with enough folders
whitelisted.

Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
2019-08-19 15:22:59 +09:00
Drew DeVault
4fc6fee734 Revert "add close command at global level"
This reverts commit f0a0c5aa73.
2019-08-13 10:55:50 +09:00
Aditya Srivastava
f0a0c5aa73 add close command at global level 2019-08-13 10:49:34 +09:00
Daniel Bridges
72204d1f24 Add optional body argument to compose command 2019-08-13 10:49:34 +09:00
Daniel Bridges
5b523880b4 Let user edit arbitrary headers in composer 2019-08-12 08:57:04 +09:00
Reto Brunner
0016775278 Add notmuch docs 2019-08-08 10:11:20 +09:00
Daniel Bridges
0a52124102 Allow cc/bcc command to receive no arguments 2019-08-07 14:07:48 +09:00
Daniel Bridges
f4b7741463 Add cc and bcc commands 2019-08-03 10:43:55 -04:00
Ronan Pigott
b73fcaae32 doc: Fix missing '\' in aerc-tutorial man page. 2019-07-29 18:24:05 -04:00
Drew DeVault
85bb0b1f98 aerc-tutorial(7): add searching and expand viewer 2019-07-29 17:07:31 -04:00
Ben Burwell
152f8c9519 Ring bell when new messages arrive
Add a "new-message-bell" option to the UI section of aerc.conf. A new
hook into the message store allows the msglist widget to detect new
messages being added to the displayed list. When new messages are
delivered, and the new-message-bell option is enabled (as it is by
default), the terminal will beep.
2019-07-29 15:01:49 -04:00
Jeffas
989730d470 Add index option to change-tab
This allows selection of a tab using its index. It attempts to parse the
given argument as a number, if it fails then it uses it as a name.

Also supports relative indexes using prefixed + or -.
2019-07-27 12:40:28 -04:00
Galen Abell
0ee7d30187 Add :detach command
Add a command for removing attachments from a composed message. Syntax
is :detach [path], with path being an optional argument specifying the
path of one existing attachment. If no path is specified, the first
attachment is removed.
2019-07-27 12:37:55 -04:00
Drew DeVault
48758136c0 Implement sendmail support 2019-07-27 11:19:49 -04:00
Jeffas
6784ed3772 Add change-tab docs 2019-07-26 14:36:59 -04:00
Galen Abell
8635c70fda Add command history and cycling
Aerc will keep track of the previous 1000 commands, which the user can
cycle through using the arrow keys while in the ex-line. Pressing up
will move backwards in history while pressing down will move forward.
2019-07-26 14:29:34 -04:00
Daniel Bridges
67fb0938a6 Support configurable header layout in compose widget 2019-07-26 14:22:04 -04:00
Jeffas
dc4c36adbf Add new-email trigger
This patch sets up the trigger config section of aerc.conf.

Each trigger has its own function which is called from the place where
it is triggered. Currently only the new-email trigger is implemented.

The triggers make use of format strings. For instance, in the new-email
trigger this allows the user to select the trigger command and also the
information extracted from the command and placed into their command.

To actually execute the trigger commands the keypresses are simulated.

Further triggers can be implemented in the future.

Formatting of the command is moved to a new package.
2019-07-26 14:00:24 -04:00
Drew DeVault
b3a66866b9 aerc(1): fix scdoc syntax error 2019-07-19 12:46:52 -04:00
Drew DeVault
2d6338e27d aerc(1): document missing commands 2019-07-19 12:45:10 -04:00
Drew DeVault
7d37a89458 aerc(1): Fix fallback ex key documentation 2019-07-19 12:33:24 -04:00
Kevin Kuehler
f81e4bd41c Implement :filter, :clear
Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
2019-07-19 11:30:32 -04:00
Galen Abell
7899d15d60 Add :attach command for compose
Allow users to add attachments to emails in the Compose view. Syntax is
:attach <path>, where path is a valid file. Attachments will show up in
the pre-send review screen.
2019-07-19 10:30:47 -04:00
Jeffas
fb124139f3 Add option to always show mimetype in viewer
A user may want to be able to see what mimetype they are viewing, so
that they can determine what program it may be opened in or for some
other reason.

The config option is under the [viewer] section and is called
'always-show-mime'. It defaults to false to preserve the current
behaviour.
2019-07-17 17:34:43 -04:00
Daniel Bridges
dfc048fe28 Display user specified headers in viewer if present 2019-07-17 17:26:43 -04:00
Nicolai Dagestad
a1763bf207 Add an option to toggle between read and unread 2019-07-17 17:01:25 -04:00
Jeffas
44a743ed11 Add show-headers to aerc-config 2019-07-17 16:03:42 -04:00
Jeffas
06af5391a3 Add MouseEnabled config setting
This patch adds the ability to control whether aerc captures mouseevents
or not. By default it will be set to not capture events.
2019-07-17 16:00:44 -04:00
Ben Burwell
7a26b48c22 Add maildir docs 2019-07-12 11:26:39 -04:00
Frode Aannevik
b0eaf5191c Support imaps with oauthbearer authentication (Gmail)
imaps+oauthbearer://user:token@host?token_endpoint=...

 - the config Source password is used as access token if
   no token_endpoint parameter is set
 - the config Source password is used as refresh token if
   token_endpoint parameter is set, and used to exchange
   with an access token

The implementation has only been tested with Gmail.

    source = imaps+oauthbearer://{username}:{refersh_token}@imap.gmail.com:993? \
    client_id=XX&\
    client_secret=XX&\
    token_endpoint=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken

client credentials created with

    https://console.developers.google.com/apis/credentials

refresh token created with

    https://github.com/google/gmail-oauth2-tools/blob/master/python/oauth2.py

rel: https://todo.sr.ht/~sircmpwn/aerc2/42
2019-07-11 19:36:14 -04:00
Drew DeVault
e1152b6a13 aerc(1): correct error with :pipe documentation 2019-07-08 18:19:43 -04:00
Drew DeVault
7ecc6f96de Add :exec and :pipe -b(ackground) 2019-07-08 18:19:08 -04:00
Ben Burwell
cffa2365be Document message index format specifiers 2019-07-04 11:08:55 -04:00
Ben Burwell
030f390436 Add unsubscribe command
The unsubscribe command, available when in a message viewer context,
enables users to easily unsubscribe from mailing lists.

When the command is executed, aerc looks for a List-Unsubscribe header
as defined in RFC 2369. If found, aerc will attempt to present the user
with a suitable interface for completing the request. Currently, mailto
and http(s) URLs are supported. In the case of a HTTP(S) URL, aerc will
open the link in a browser. For mailto links, a new composer tab will be
opened with a message filled out according to the URL. The message is
not sent automatically in order to provide the user a chance to review
it first.

Closes #101
2019-07-04 11:06:14 -04:00
Ben Burwell
1bb1a80156 Use "open" instead of "xdg-open" on Darwin systems 2019-07-04 10:58:33 -04:00
Reto Brunner
ccf5c02c38 msgview/save: Use defaultSavePath if no path is provided 2019-06-25 10:38:55 -04:00
Issam Maghni
b15d1e52b3 aerc-config: [viewer] should be [compose] 2019-06-23 13:52:43 -04:00
Drew DeVault
74af57b6c6 Add aerc -v to print the installed version 2019-06-18 09:50:06 -04:00
Réouven Assouly
ce475e4952 commands/msgview: add open command 2019-06-17 14:52:52 -04:00
Lyle Hanson
0b14d92baf Document collecting log output
Redirecting stdout writes log output to that file, but this wasn't
easily discoverable.

v2 removes changes to aerc-tutorial; I was also on the fence about that,
and agree that it isn't on-topic for the tutorial.

Addresses https://todo.sr.ht/~sircmpwn/aerc2/180
2019-06-14 10:55:55 -04:00
Reto Brunner
99c363b724 Set empty message in dirlist if no folder exist. 2019-06-14 10:42:26 -04:00
Clayton Craft
e56ceb099e Support directories in path to :save
This adds new functionality to :save in the message view for specifying
directories in the path. A new flag, -p, is also added to :save for
automatically creating any directories in the path that do not exist.

If the path ends in a / (e.g. "Downloads/mail/") or if the path is an
existing directory, the part's file name is the filename from the mail
header for the part. Otherwise, it uses the last element in the path as
the filename (e.g. 'blah.jpg' is the filename if the path is
'Downloads/mail/blah.jpg')
2019-06-14 09:48:20 -04:00
Drew DeVault
d22a9140cd Implement :mkdir command 2019-06-09 19:21:26 -04:00
Drew DeVault
50f25e7c4d aerc(1): add :read and :unread command to docs 2019-06-09 14:59:13 -04:00
Robert Günzler
acfe7d7625 Add archive command
Adds an archive command that moves the current message into the folder
specified in the account config entry.

Supports three layouts at this point:

- flat: puts all messages next to each other
- year: creates a folder per year
- month: same as above, plus folders per month

This also adds a "-p" argument to "cp" and "mv" that works like
"--parents" on mkdir(1). We use this to auto-create the directories
for the archive layout.
2019-06-09 11:33:50 -04:00
Yash Srivastav
fca7321639 Message list: implement index-format option 2019-06-07 16:22:01 -04:00
Drew DeVault
df1209b60e Update docs per filters rewrite 2019-06-07 11:56:48 -04:00
ngenisis
7446a17830 Mention aerc-tutorial(7) in aerc(1) 2019-06-05 09:32:26 -04:00
Stephen Gregoratto
4df8e7f04d add missing column in table 2019-06-03 23:08:31 -04:00
Francis Dinh
58a0f438df Update aerc-tutorial(7) to reflect changes to reply bindings
As of commit 11a569f6, the functions of rr/Rr and rq/Rq are switched,
but this wasn't reflected in the manpage until now.
2019-06-03 20:55:51 -04:00
Galen Abell
28fc9fa53d Add :save and :pipe commands to viewer
* :save takes a path and saves the current message part to that location
* :pipe is the same as pipe on the account page, but uses the current
  message part rather than the whole email (ie :pipe gzip -d)
* Refactored account:pipe and extracted common pipe code to
  commands.util.QuickTerm
* Added helper command aerc.PushError
2019-05-27 09:37:07 -04:00
Drew DeVault
8be4c5715d Document :forward in aerc(1) 2019-05-25 20:33:36 -04:00
Drew DeVault
c4c8648cc7 Change ex command to C-x when using terminal 2019-05-24 12:45:48 -04:00
Roshless
ae9d60e887 Fix key value typo in documentation 2019-05-23 10:22:37 -04:00
Drew DeVault
c295508352 Mention custom headers in aerc-tutorial(7) 2019-05-22 16:50:00 -04:00
Francis Dinh
1ec72f879f Minor fixes to list of filter dependencies
- "sockify" -> "socksify"
- Added colorama dependency
2019-05-22 16:35:35 -04:00
Drew DeVault
062f00ebe9 Minor improvements to aerc-tutorial 2019-05-22 12:36:09 -04:00
Drew DeVault
58bc15b472 Implement opening tutorial after account wizard 2019-05-22 11:13:55 -04:00
Drew DeVault
6811143925 New account wizard, part one 2019-05-21 16:53:50 -04:00
Drew DeVault
176245208d Use kebab-case for cred-cmds 2019-05-21 14:31:14 -04:00
Amin Bandali
588a6c785b Implement :pwd command 2019-05-19 14:36:11 -04:00
Drew DeVault
ca2cd00fe7 Fix scdoc & gofmt issues 2019-05-18 15:34:16 -04:00
Galen Abell
b8208509f4 Implement loading passwords from external commands
* Resolves #80
2019-05-18 15:31:38 -04:00
Drew DeVault
fc719e47c4 Add man pages 2019-05-17 13:46:26 -04:00