aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add clickable tabsJeffas2019-07-114-0/+38
| | | | | | | | | | | 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.
* Don't bind $noinheritEyal Sawady2019-07-111-0/+1
| | | | | | Fixes #112 Signed-off-by: Eyal Sawady <eyalsawady@gmail.com>
* #190 Handle gmail duplicate folderDaniel Bridges2019-07-113-4/+4
|
* Add backtab to tutorial navigationJeffas2019-07-111-1/+3
| | | | | | | | This allows users to use backtab (Shift+tab) to go back through the fields in the tutorial, like C-K. This then mimics the other methods in having a forward and backward variant. Also documented this in the wizard help paragraph.
* Support imaps with oauthbearer authentication (Gmail)Frode Aannevik2019-07-115-8/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix crashes when operating on empty folder (#216)Daniel Bridges2019-07-1011-15/+45
|
* Fix :pipe -b actually writing to stdinDrew DeVault2019-07-081-1/+9
|
* Fix re-opening of expired pipe tabsDrew DeVault2019-07-083-4/+24
|
* :exec, :pipe: show exit status on completionDrew DeVault2019-07-082-2/+4
|
* aerc(1): correct error with :pipe documentationDrew DeVault2019-07-081-0/+2
|
* Add :exec and :pipe -b(ackground)Drew DeVault2019-07-083-25/+104
|
* Factor IMAP-specific structs out of UI modelsBen Burwell2019-07-0810-108/+211
| | | | | | | Before, we were using several IMAP-specific concepts to represent information being displayed in the UI. Factor these structures out of the IMAP package to make it easier for other backends to provide the required information.
* Use []uint32 instead of imap.SeqSetBen Burwell2019-07-086-41/+41
| | | | | | | | A sequence-set is an IMAP-specific implementation detail. Throughout the UI, aerc simply operates using lists of opaque identifiers. In order to loosen the coupling between the UI and IMAP in particular, replace most usages of imap.SeqSet with []uint32, leaving the translation to a SeqSet to the IMAP backend as needed.
* Factor UI models out of the worker message packageBen Burwell2019-07-0812-86/+146
| | | | | | | | Before, the information needed to display different parts of the UI was tightly coupled to the specific messages being sent back and forth to the backend worker. Separating out a models package allows us to be more specific about exactly what a backend is able to and required to provide for the UI.
* Add .build.ymlDrew DeVault2019-07-071-0/+24
|
* Make :pipe command more genericDrew DeVault2019-07-058-110/+125
|
* Remove unused caps stringDrew DeVault2019-07-041-2/+0
|
* Sort out dirstore once and for allDrew DeVault2019-07-043-16/+2
|
* dirlist: simplify nextPrev() considerablyReto Brunner2019-07-041-25/+11
| | | | | | | Assuming we always have a sorted dirlist (other code depends on that already), we don't need to loop over the dirStore. Any filtering done should be performed elsewhere
* dirlist: remove the additional filtering in Draw()Reto Brunner2019-07-041-7/+0
|
* dirlist: sync dirstore in filterDirsByFoldersConfigReto Brunner2019-07-041-9/+7
| | | | | Also sets the public List() method to return the unfiltered list of directories directly from the store.
* Add IMAP folder tab completionGregory Mullen2019-07-044-3/+32
| | | | | Credit for this fix goes to Reto; I guess if we're not gonna be mutt we should probabaly do things correctly.
* Use go-message implementation of GenerateMessageIDBen Burwell2019-07-042-36/+1
| | | | | Now that this is available in the upstream, we no longer need to maintain a parallel implementation.
* Document message index format specifiersBen Burwell2019-07-042-2/+37
|
* Crash on delete in empty folder (#213)Zach Sisco2019-07-041-0/+3
|
* Add unsubscribe commandBen Burwell2019-07-043-0/+150
| | | | | | | | | | | | | | | | 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
* Use "open" instead of "xdg-open" on Darwin systemsBen Burwell2019-07-044-4/+25
|
* Update binds.confDrew DeVault2019-07-041-2/+2
|
* Correct default filter order in aerc.conf.inDrew DeVault2019-07-021-1/+1
|
* Revert "Remove dirs field and references to it"Drew DeVault2019-07-021-11/+10
| | | | This reverts commit 0e55637aac92e748267559b7aa91a188a17c386f.
* Remove dirs field and references to itRobert Günzler2019-06-301-10/+11
| | | | | This fixes prev/next-folder that broke after 546dfcd76dd228e0605359e9985f0b6a5672e8fa
* panic: runtime error: index out of range in handleFetchMessages (#127)Zach Sisco2019-06-291-3/+1
|
* Add new lib/dirstore to source completions fromGregory Mullen2019-06-292-4/+27
|
* Implement basic tab completion supportGregory Mullen2019-06-2947-154/+598
| | | | | Tab completion currently only works on commands. Contextual completion will be added in the future.
* Move contrib -> filtersDrew DeVault2019-06-274-3/+3
|
* Reopening mailcontent file to fix #166Stefan Rakel2019-06-271-1/+7
| | | | | | Because editors like vim use backupfiles and rename them to the original name, the file handle used can point to the wrong file. Reopening the file should fix this.
* Set the required go version for this module, aercDaniel Lublin2019-06-271-0/+2
| | | | | | This is the way to declare which compiler version a module requires to build. I read up on https://golang.org/doc/go1.12#modules
* Fix jumping around in searchDrew DeVault2019-06-261-10/+5
|
* Implement :search, :next-result, :prev-resultDrew DeVault2019-06-265-1/+149
|
* msgview/save: Use defaultSavePath if no path is providedReto Brunner2019-06-253-6/+26
|
* add DefaultSavePath configReto Brunner2019-06-251-0/+10
|
* account-wizard: look up imap and smtp server by SRV records (#100)Daniel Lublin2019-06-251-1/+42
|
* worker/imap: rig up search directory handlerDrew DeVault2019-06-241-0/+2
|
* worker/imap: implement searchDrew DeVault2019-06-242-0/+26
|
* aerc-config: [viewer] should be [compose]Issam Maghni2019-06-231-1/+1
|
* Fix Cc & Bcc handling in repliesDrew DeVault2019-06-213-7/+14
|
* Fix reply bindings in [view]Drew DeVault2019-06-191-4/+4
|
* Makefile: fix -ldflags -X invocationReto Brunner2019-06-191-3/+3
| | | | | | | | Aerc uses the go linker to add some variables like main.Prefix / main.ShareDir etc. however the go linker only considers the last -ldflags invocation it seems. This commit fixes the makefile to use only a single -ldflags invocation, which again sets the vars as expected.
* account-wizard: automatically replace imap.* with smtp.*Noah Loomans2019-06-181-1/+6
| | | | | | | | | Many email providers use the imap sub-domain for imap and the smtp sub-domain for smtp. FastMail is an example of this[1]. This is a small quality-of-life improvement which automatically replaces imap.* with smtp.* when going from the imap screen to the smtp screen in the wizard [1]: https://www.fastmail.com/help/technical/servernamesandports.html
* Insert nil check before handling prev/next messageMartin Hafskjold Thoresen2019-06-181-2/+8
| | | | | If these are called before the store is setup, `acct.Store()` returns `nil`, and we SEGFAULT in `MessageStore.nextPrev`.