aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/aerc.go
Commit message (Collapse)AuthorAgeFilesLines
* view,compose: use border color to separate headers from bodyRobin Jarry2021-10-281-4/+4
| | | | | | | | | | When composing a message, there is an empty fill line between the headers and the text editor. The line is printed with the default style which may cause users to assume it is part of the editor. Display the fill lines with the border color to avoid confusion. Signed-off-by: Robin Jarry <robin@jarry.cc>
* bindings: prepare for more modifersRobin Jarry2021-10-281-0/+1
| | | | | | | | | | | | | | | | Prepare to support more modifiers in key bindings. tcell has some premade ctrl-modified keys but not all keys are supported. Other keys must be explicitly checked with a modifier mask. Update the KeyStroke type to carry a modifier mask. Update code accordingly. No functional change. Link: https://github.com/gdamore/tcell/blob/master/key.go#L265-L275 Link: https://github.com/gdamore/tcell/blob/master/key.go#L384-L419 Signed-off-by: Robin Jarry <robin@jarry.cc>
* Get rid of the aerc.PushError(" " + $string) idiomReto Brunner2021-01-301-4/+4
| | | | The individual callers should not be responsible for padding
* trim <> from messageIDs when handling mailto linksReto Brunner2021-01-121-0/+6
| | | | Co-authored-by: James Walmsley <james@fullfat-fs.co.uk>
* update tcell to v2 and enable TrueColor supporty0ast2020-12-181-1/+1
| | | | | | | | | Also update to the tcell v2 PaletteColor api, which should keep the chosen theme of the user intact. Note, that if $TRUECOLOR is defined and a truecolor given, aerc will now stop clipping the value to one of the theme colors. Generally this is desired behaviour though.
* fix mailto parsingReto Brunner2020-11-281-1/+5
|
* compose: use a proper header instead of a string mapReto Brunner2020-11-141-12/+24
| | | | | | | | | | | | | Prior to this commit, the composer was based on a map[string]string. While this approach was very versatile, it lead to a constant encoding / decoding of addresses and other headers. This commit switches to a different model, where the composer is based on a header. Commands which want to interact with it can simply set some defaults they would like to have. Users can overwrite them however they like. In order to get access to the functions generating / getting the msgid go-message was upgraded.
* show error if account view creation failsReto Brunner2020-08-101-3/+24
| | | | | | | | This can happen for example if aerc is compiled without notmuch support but the notmuch worker is requested. Pushing a status message isn't good enough, as this gets overridden pretty quickly if one has multiple accounts configured. So we show a fullscreen error instead.
* Implement style configuration.Kalyan Sriram2020-08-061-6/+14
| | | | | | 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.
* Revert "Implement style configuration."Reto Brunner2020-07-301-14/+6
| | | | This reverts commit 1ff687ca2b0821c2cacc1fa725abb3302d2af9da.
* Implement style configuration.Kalyan Sriram2020-07-301-6/+14
| | | | | | 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.
* Make grid sizes dynamicJeffas2020-06-091-5/+4
| | | | | | | | | The grid used static sizes which meant that changing settings didn't have an effect on elements of the ui, notably the sidebar width. This patch makes the `Size` parameter of a cell a function which returns the `int`, allowing for dynamic sizes. A `Const` function is also included for ease of use for static sizes.
* Revert "Add Style configuration"Drew DeVault2020-05-281-18/+11
| | | | This reverts commit 0f78f06610c0e8887aba2ae50e99b86477a384b3.
* Revert "Remove duration from the status methods"Drew DeVault2020-05-281-10/+10
| | | | This reverts commit f06d683688e3d2139b14f67b7e349089e7200bf4.
* Remove duration from the status methodsReto Brunner2020-05-271-10/+10
| | | | We always set 10 seconds anyhow, might as well do that without repeating ourselfs.
* Add Style configurationReto Brunner2020-05-271-11/+18
| | | | | | | | | | 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
* aerc: Refactor getpasswd dialogRay Ganardi2020-05-251-30/+53
| | | | | | Previously there's a hack for showing and hiding the dialog. Change it to use channels to emulate async/await
* feat(pgp): Show error message from pgpRay Ganardi2020-05-251-1/+4
| | | | | The error wasn't shown, making errors like wrong password being ignored and the password is prompted again.
* feat(pgp): Add <ESC> to cancel password promptRay Ganardi2020-05-251-7/+11
| | | | Previously there was no way to cancel the password prompt.
* gofmt fixesDrew DeVault2020-04-241-4/+4
|
* Add postpone commandJeffas2020-04-241-1/+3
| | | | | | | 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.
* Add :choose commandRay Ganardi2020-04-241-0/+33
| | | | | | | Usage: *choose* -o <key> <text> <command> [-o <key> <text> <command>]... Prompts the user to choose from various options.
* Use aerc.PushError where appropriateBen Fiedler2020-04-231-6/+3
| | | | Forgot an unused import, to save you the hassle here is v2.
* Add pinned tabsJeffas2020-03-091-1/+9
| | | | | | 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.
* Reduce size of the password prompt UIDrew DeVault2020-03-031-2/+2
|
* Initial support for PGP decryption & signaturesDrew DeVault2020-03-031-0/+48
|
* Add move-tab commandJeffas2020-03-031-0/+12
|
* create OriginalMail structLeszek CimaƂa2020-01-091-1/+2
|
* Show textinput completions in popoversBen Burwell2019-12-211-2/+2
| | | | | | 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.
* Add UI options to save/pipe messages with unsupported mimetypesGreg Anders2019-11-171-3/+3
| | | | | | | | | | | | | | | Adds a message indicating the user's ability to :save or :pipe a message with an unsupported mimetype and also adds a selector widget (similar to the tutorial). The selector widget was previously defined in the account wizard module, so this commit breaks it out into its own module to allow for re-use. Further, modify the BeginExLine() function to take an argument that pre-populates the command line, allowing functions to initiate an ex command without executing it. Closes #95.
* Add Templates with ParsingSrivathsan Murali2019-11-101-2/+5
| | | | | | | | | | | | | | | + 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.
* Fix selected account to return for messageviewerJeffas2019-10-021-4/+6
| | | | | | This ensures that the selectedaccount is returned if currently selected tab is a messageviewer. This also makes it more extensible for adding other ways of getting the selected account.
* widgets: remove duplicate importWagner Riffel2019-09-121-18/+17
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* Add signaturesJeffas2019-09-121-1/+1
| | | | | | | | | | | | | 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
* Add MouseableJeffas2019-09-111-14/+27
| | | | | | | | | | | | | | | | | | | | | | This adds the Mouseable interface. When this is implemented for a component that item can accept and process mouseevents. At the top level when a mouse event is received it is passed to the grid's handler and then it trickles down until it reaches a component that can actually handle it, such as the tablist, dirlist or msglist. A mouse event is passed so that components can handle other things such as scrolling with the mousewheel. The components themselves then perform the necessary actions. Clicking emails in the messagelist opens them in a new tab. Textinputs can be clicked to position the cursor inside them. Mouseevents are not forwarded to the terminal at the moment. Elements which do not handle mouse events are not required to implement the Mouseable interface.
* all: purge redundant underscoresWagner Riffel2019-09-041-1/+1
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* Add :prompt commandChristopher Vittal2019-08-261-2/+32
| | | | | | | | | | 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.
* Revert "add close command at global level"Drew DeVault2019-08-131-8/+0
| | | | This reverts commit f0a0c5aa733fa66958c113465bfc5fdd3d7cc9f0.
* add close command at global levelAditya Srivastava2019-08-131-0/+8
|
* Close backends prior to shutdownReto Brunner2019-08-081-0/+19
| | | | | | | We need some way to signal the backends that we are about to shutdown, allowing them to clean up (for example in notmuch committing the db changes). This commit implements a hook which gets called upon shutdown, providing backends implement the io.Closer interface.
* Ring bell when new messages arrive0.2.0Ben Burwell2019-07-291-0/+15
| | | | | | | | 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.
* Add index option to change-tabJeffas2019-07-271-0/+10
| | | | | | | 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 -.
* Add command history and cyclingGalen Abell2019-07-261-2/+11
| | | | | | 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.
* Support configurable header layout in compose widgetDaniel Bridges2019-07-261-2/+2
|
* Add new-email triggerJeffas2019-07-261-3/+10
| | | | | | | | | | | | | | | | | 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.
* Add change tab commandJeffas2019-07-231-0/+22
| | | | | | | | | | This command allows the user to change tab by giving the tab name. This can be tab completed too. The previous tab is stored in the tabs module so that when a new tab is created it is still possible to go to the previous one. Normal invocation is :ct folder Previous tab is :ct -
* Add Unix socket for communicating with aercDrew DeVault2019-07-191-0/+40
|
* Show currently pressed keys in statuslineJeffas2019-07-171-0/+3
| | | | | | This patch adds the currently pressed keys to the statusline. This is useful when keybindings are multiple keys long and you might forget which keys are already pressed.
* Add clickable tabsJeffas2019-07-111-0/+2
| | | | | | | | | | | This introduces a new interface `Clickable`. I'd imagine this would be implemented for most widgets eventually and would allow for programs run in the terminal to also have their mouse events forwarded to them. For the tabs it was relatively simple to check that the position of the click is within the boxes for the tabs. For other components I'd imagine that some state representing their currently drawn bounding box would be useful.
* Implement basic tab completion supportGregory Mullen2019-06-291-1/+5
| | | | | Tab completion currently only works on commands. Contextual completion will be added in the future.