Commit graph

217 commits

Author SHA1 Message Date
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
Ben Fiedler
955b5c22b5 Ensure documented defaults match given defaults 2020-04-23 21:06:29 +02:00
Ray Ganardi
06bb332285 fix binding for delete message
I guess confirm command was removed sometime ago, but the config
template was not updated.
2020-04-20 10:52:09 -04:00
Zoltan Kalmar
8372e9e39f Add quotes to the default pinned-tab-marker
It's a fix for: https://todo.sr.ht/~sircmpwn/aerc2/361
Using an unquoted backtick char is leading to a config error:

```
Failed to load config: missing closing key quote from '`
' to ''
```
2020-03-13 09:09:56 -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
Reto Brunner
e78b7b85e4 config: Strongly type context type
The go compiler can't help much with untyped int constants.
Even though the only valid constants are 0-3 it will happily accept 4 as input.

Let's let the go compiler worry about correctness here. This also allows people
not very familiar with the code to use it properly via auto completion.
2020-01-24 12:25:59 -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
1ba9f0da19 binds.conf: mark bindings 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
cb7d7a0438 Add some defaults for template options 2019-11-10 11:00:21 -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
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
36af93b8f4 Add documentation for sort
This adds documentation for the config option and the command.
2019-09-20 14:56:02 -04:00
Jeffas
90d26da58a Add sorting functionality
There is a command and config option. The criteria are a list of the
sort criterion and each can be individually reversed.

This only includes support for sorting in the maildir backend currently.
The other backends are not supported in this patch.
2019-09-20 14:56:02 -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
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
Wagner Riffel
feacca3c5c all: use fmt.Errorf for fomartting errors
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
2019-09-04 16:30:57 -10: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
Jonas Mueller
f6df46d319 Pass os stdin to credential command
This is neccessary for `gpg-agent` to display a prompt and get the key
to unlock a given password. See https://todo.sr.ht/~sircmpwn/aerc2/250.
2019-08-12 08:59:40 +09: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
Reto Brunner
b812257ba9 Print errors from config load issues.
Currently we /dev/null stdout, if it is a tty.
The checkConfigPerms function, as well as the error print were incorrectly
writing to stdout and therefore weren't visible to most users.
2019-07-29 14:51:16 -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
Kevin Kuehler
f81e4bd41c Implement :filter, :clear
Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
2019-07-19 11:30:32 -04:00
Drew DeVault
8b2abcb02a Change default attach keybinding 2019-07-19 10:45:44 -04:00
Drew DeVault
fe7230bb9a Add :cp alias for :copy 2019-07-17 18:42:03 -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
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
Reto Brunner
1c419d1b4d lowercase all key bindings 2019-07-17 15:58:46 -04:00
Pedro L. Ramos
d85f671bdf 71: Allow user to change config options at runtime
There is a LoadConf and a LoadConfFromFile.
LoadConfFromFile reads the iniFile into memory and and calls
LoadConf, which executes the old parsing commands from
LoadConf (old func).

The remaining of the LoadConfFromFile is the same as the old OldConf.
2019-07-15 09:42:03 -04:00
Eyal Sawady
4c7f81d20d Don't bind $noinherit
Fixes #112

Signed-off-by: Eyal Sawady <eyalsawady@gmail.com>
2019-07-11 19:44:07 -04:00
Ben Burwell
cffa2365be Document message index format specifiers 2019-07-04 11:08:55 -04:00
Drew DeVault
687f1d8c1a Update binds.conf 2019-07-04 09:58:31 -04:00
Drew DeVault
61ef404e31 Correct default filter order in aerc.conf.in 2019-07-02 20:36:57 -04:00
Drew DeVault
91a75cd98b Implement :search, :next-result, :prev-result 2019-06-26 20:50:54 -04:00
Reto Brunner
ee242a3d0f add DefaultSavePath config 2019-06-25 10:38:52 -04:00
Drew DeVault
63538978f3 Fix reply bindings in [view] 2019-06-19 20:07:33 -04:00
Reto Brunner
99c363b724 Set empty message in dirlist if no folder exist. 2019-06-14 10:42:26 -04:00
Drew DeVault
61206c6ac6 Make awk filters more portable 2019-06-13 20:17:39 -04:00
Drew DeVault
0494c9ae9d Add :next/:prev binds for [viewer] 2019-06-11 09:36:18 -04:00
Yash Srivastav
702ad43bd2 Override $ex in compose view 2019-06-09 15:51:30 -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
6e61f58d86 Rewrite Python filters in awk 2019-06-07 11:54:01 -04:00
Drew DeVault
e0cadd61a2 Add image/* filter, commented out by default 2019-06-07 10:23:12 -04:00
Drew DeVault
37f0114ffa Disable HTML filter by default 2019-06-07 10:22:58 -04:00
Drew DeVault
150a271b36 Add binding to toggle headers 2019-06-07 10:08:09 -04:00
Yash Srivastav
b83e7c9fa6 implements ability to view headers in message view 2019-06-07 09:20:24 -04:00
Chris Kinniburgh
6c6bb4c893 config: sort account folders
directory list depends on these being sorted
2019-06-05 13:48:24 -04:00
Drew DeVault
0ec970bce8 Add delete to the default binds.conf 2019-06-02 15:43:32 -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
887ff6550d Implement :edit in compose screen 2019-05-26 11:58:14 -04:00
Drew DeVault
d30a6e3d1f Subsitute prefix in aerc.conf for install 2019-05-26 10:27:22 -04:00
Drew DeVault
11a569f658 binds.conf: make reply -a easier to use than reply 2019-05-25 16:51:14 -04:00
Drew DeVault
c4c8648cc7 Change ex command to C-x when using terminal 2019-05-24 12:45:48 -04:00
Francis Dinh
10a3d9d209 Bind :compose to C in binds.conf
The tutorial mentions using "C" for composing messages, but this was not
actually implemented in binds.conf.
2019-05-23 18:01:24 -04:00
Drew DeVault
f42724caf3 Install default configs to XDG config if not found 2019-05-22 12:35:44 -04:00
Drew DeVault
9b19e3ad05 Show account wizard if no accounts configured 2019-05-22 11:35: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
Drew DeVault
0897413a3e Implement :next-part, :prev-part 2019-05-20 16:49:39 -04:00
Drew DeVault
455c6f0b77 Rename :delete-message et al to :delete et al 2019-05-19 18:23:34 -04:00
Galen Abell
b8208509f4 Implement loading passwords from external commands
* Resolves #80
2019-05-18 15:31:38 -04:00
Drew DeVault
7f540df29f Install filters to /usr/share/aerc/filters 2019-05-17 13:51:18 -04:00
Drew DeVault
fcdcd32de7 Remove unimplemented color configuration
Will probably end up doing this differently anyway
2019-05-17 11:52:38 -04:00
Drew DeVault
89ffd8653d Implement ui.empty-message config option
Also removes some options that aren't going to be supported any time
soon.
2019-05-17 11:42:34 -04:00
Reto Brunner
b275a394e2 Abort if accounts.conf is world readable
Fixes #32
2019-05-16 17:26:35 -04:00
Drew DeVault
fb3826cee5 Revert "Abort if accounts.conf is world readable"
This reverts commit a755608ef9.
2019-05-16 16:40:29 -04:00
Drew DeVault
ff51625513 Revert "s/aerc.conf/address.conf/ in permission check"
This reverts commit 66ba099ca0.
2019-05-16 16:40:06 -04:00
Cole Helbling
66ba099ca0 s/aerc.conf/address.conf/ in permission check
Small typo in a recent commit: should abort if accounts.conf is world
readable, not aerc.conf.
2019-05-16 16:28:49 -04:00
Reto Brunner
a755608ef9 Abort if accounts.conf is world readable
Fixes #32
2019-05-16 15:02:13 -04:00
Drew DeVault
08855f23ec Change default bindings for replies 2019-05-16 14:06:33 -04:00
Drew DeVault
e367469e1a Change default reply keybindings 2019-05-16 12:42:25 -04:00
Drew DeVault
b0bf09b98f Copy sent emails to the Sent folder
Or rather, to a user-specified folder
2019-05-15 19:41:21 -04:00
Drew DeVault
52b318127f Fix default bindings for quit and edit 2019-05-14 19:18:33 -04:00
Drew DeVault
67ddaea1b2 Move ! bind to [messages] 2019-05-14 17:06:31 -04:00
Drew DeVault
6c0359670c Add (non-functional) reply commands to bindings 2019-05-14 17:04:21 -04:00
Drew DeVault
d3fe60a0fa Add ! to default keybindings 2019-05-14 16:57:10 -04:00
Drew DeVault
065da5e372 Add $EDITOR, internal config for compose 2019-05-14 15:25:30 -04:00
Drew DeVault
f77d7c2c3d Add distinct keybindings for each compose view 2019-05-14 14:27:28 -04:00
Drew DeVault
17bd2dc4db Populate "From" header from config for new emails 2019-05-13 16:04:01 -04:00
Drew DeVault
bda74452a8 Add outgoing account configuration 2019-05-12 23:35:36 -04:00
Drew DeVault
577248f5e1 Add initial compose widget 2019-05-12 00:06:09 -04:00
Drew DeVault
60627c96f5 Use better regex for identifying patches 2019-03-31 16:48:05 -04:00
Drew DeVault
78d3f958e0 Remove show-headers config option
This'll probably look different when we implement it
2019-03-31 16:32:48 -04:00
Drew DeVault
ffd1ffd5ba Remove unused config options
Which are not planned for eventual implementation
2019-03-31 16:29:05 -04:00
Drew DeVault
e5e73d30bf Remove key bindings from aerc.conf
These were moved to binds.conf
2019-03-31 16:09:18 -04:00
Drew DeVault
93695d1e84 Add script for sandboxing w3m 2019-03-31 15:33:07 -04:00
Drew DeVault
36419d85aa Use shell to execute filters, fix non-determinism 2019-03-31 15:21:04 -04:00
Drew DeVault
958328427a Improve plaintext.py 2019-03-31 14:43:46 -04:00
Drew DeVault
8e5ed2a161 Implement header-regex-match filters 2019-03-31 14:42:18 -04:00
Drew DeVault
bbdf9df75e Add basic filter implementation 2019-03-31 14:24:53 -04:00
Drew DeVault
5d0402aeea Add message view commands, :close 2019-03-30 21:45:41 -04:00
Drew DeVault
04d9ab3ce6 Update default config/binds.conf 2019-03-30 21:40:41 -04:00
Julian P Samaroo
45b4c8a724 Handle no configured accounts gracefully
Instead of throwing a runtime error, when no accounts are configured in
accounts.conf, we provide an informative error message.
2019-03-30 16:26:55 -04:00
Drew DeVault
6d01332b55 Rig up terminal keybinding group 2019-03-21 17:44:44 -04:00
Drew DeVault
f5bf4a9324 Add context-specific keybindings 2019-03-21 17:37:19 -04:00
Drew DeVault
79b459ecb0 Add additional context to key binding set 2019-03-21 16:35:35 -04:00
Drew DeVault
16c3f0a893 Handle terminal title, login shell 2019-03-17 17:08:54 -04:00
Drew DeVault
14cb8cb51f Implement :next-tab, :prev-tab 2019-03-17 16:24:17 -04:00
Drew DeVault
f47a927ab6 Fix special key bindings (e.g. <C-d>) 2019-03-15 21:54:44 -04:00
Drew DeVault
77c76ba462 Implement default in accounts.conf 2019-03-15 21:33:08 -04:00
Drew DeVault
b181e0449d Remove extra debug log statement 2019-03-15 21:29:52 -04:00
Drew DeVault
a729179f9f Implement sidebar-width config option 2019-03-15 20:40:28 -04:00
Drew DeVault
513e8aa94b Rename :cd -> :cf, add :cd 2019-03-15 10:47:09 -04:00
Drew DeVault
24dfc47126 Rig up key bindings 2019-03-15 01:46:14 -04:00
Drew DeVault
8d20e9218e Implement key bindings subsystem
Which is not yet rigged up
2019-03-15 01:31:23 -04:00
emersion
a0be5e8025 Misc idiomatic fixes 2018-01-10 11:20:41 -05:00
Drew DeVault
b5d5e0dbed Parse account configuration 2018-01-09 21:31:36 -05:00
Drew DeVault
6394e386c2 Initial pass on worker/UI message passing 2018-01-09 20:39:00 -05:00
Drew DeVault
39c93d2897 Load UI configuration 2018-01-09 19:28:43 -05:00