aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-12Add maildir backend workerBen Burwell
Add the initial implementation of a backend for Maildir accounts. Much of the functionality required is implemented in the go-message and go-maildir libraries, so we use them as much as possible. The maildir worker hooks into a new maildir:// URL scheme in the accounts.conf file which points to a container of several maildir directories. From there, the OpenDirectory, FetchDirectoryContents, etc messages work on subdirectories. This is implemented as a Container struct which handles mapping between the symbolic email folder names and UIDs to the concrete directories and file names.
2019-07-12Create UIDStore packageBen Burwell
This package can be used to provide a source for mapping mock UIDs back to relevant keys for alternate backends. For example, for the Maildir backend, we need to map between UID and message file names.
2019-07-11Add clickable tabsJeffas
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.
2019-07-11Don't bind $noinheritEyal Sawady
Fixes #112 Signed-off-by: Eyal Sawady <eyalsawady@gmail.com>
2019-07-11#190 Handle gmail duplicate folderDaniel Bridges
2019-07-11Add backtab to tutorial navigationJeffas
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.
2019-07-11Support imaps with oauthbearer authentication (Gmail)Frode Aannevik
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-10Fix crashes when operating on empty folder (#216)Daniel Bridges
2019-07-08Fix :pipe -b actually writing to stdinDrew DeVault
2019-07-08Fix re-opening of expired pipe tabsDrew DeVault
2019-07-08:exec, :pipe: show exit status on completionDrew DeVault
2019-07-08aerc(1): correct error with :pipe documentationDrew DeVault
2019-07-08Add :exec and :pipe -b(ackground)Drew DeVault
2019-07-08Factor IMAP-specific structs out of UI modelsBen Burwell
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.
2019-07-08Use []uint32 instead of imap.SeqSetBen Burwell
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.
2019-07-08Factor UI models out of the worker message packageBen Burwell
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.
2019-07-07Add .build.ymlDrew DeVault
2019-07-05Make :pipe command more genericDrew DeVault
2019-07-04Remove unused caps stringDrew DeVault
2019-07-04Sort out dirstore once and for allDrew DeVault
2019-07-04dirlist: simplify nextPrev() considerablyReto Brunner
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
2019-07-04dirlist: remove the additional filtering in Draw()Reto Brunner
2019-07-04dirlist: sync dirstore in filterDirsByFoldersConfigReto Brunner
Also sets the public List() method to return the unfiltered list of directories directly from the store.
2019-07-04Add IMAP folder tab completionGregory Mullen
Credit for this fix goes to Reto; I guess if we're not gonna be mutt we should probabaly do things correctly.
2019-07-04Use go-message implementation of GenerateMessageIDBen Burwell
Now that this is available in the upstream, we no longer need to maintain a parallel implementation.
2019-07-04Document message index format specifiersBen Burwell
2019-07-04Crash on delete in empty folder (#213)Zach Sisco
2019-07-04Add unsubscribe commandBen Burwell
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-04Use "open" instead of "xdg-open" on Darwin systemsBen Burwell
2019-07-04Update binds.confDrew DeVault
2019-07-02Correct default filter order in aerc.conf.inDrew DeVault
2019-07-02Revert "Remove dirs field and references to it"Drew DeVault
This reverts commit 0e55637aac92e748267559b7aa91a188a17c386f.
2019-06-30Remove dirs field and references to itRobert Günzler
This fixes prev/next-folder that broke after 546dfcd76dd228e0605359e9985f0b6a5672e8fa
2019-06-29panic: runtime error: index out of range in handleFetchMessages (#127)Zach Sisco
2019-06-29Add new lib/dirstore to source completions fromGregory Mullen
2019-06-29Implement basic tab completion supportGregory Mullen
Tab completion currently only works on commands. Contextual completion will be added in the future.
2019-06-27Move contrib -> filtersDrew DeVault
2019-06-27Reopening mailcontent file to fix #166Stefan Rakel
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.
2019-06-27Set the required go version for this module, aercDaniel Lublin
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
2019-06-26Fix jumping around in searchDrew DeVault
2019-06-26Implement :search, :next-result, :prev-resultDrew DeVault
2019-06-25msgview/save: Use defaultSavePath if no path is providedReto Brunner
2019-06-25add DefaultSavePath configReto Brunner
2019-06-25account-wizard: look up imap and smtp server by SRV records (#100)Daniel Lublin
2019-06-24worker/imap: rig up search directory handlerDrew DeVault
2019-06-24worker/imap: implement searchDrew DeVault
2019-06-23aerc-config: [viewer] should be [compose]Issam Maghni
2019-06-21Fix Cc & Bcc handling in repliesDrew DeVault
2019-06-19Fix reply bindings in [view]Drew DeVault
2019-06-19Makefile: fix -ldflags -X invocationReto Brunner
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.