Commit Graph

161 Commits

Author SHA1 Message Date
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