aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-17Ensure new partswitcher doesn't start on multipartJeffas
2019-07-17maildir: Watch for new messagesBen Burwell
When a directory is opened, start watching its "new" subdirectory for incoming messages using the fsnotify library. When creation events are detected, run the Unseen routine to move the message from new to cur and add new UIDs to the store, updating the UI's list of directory contents as we go.
2019-07-17Display user specified headers in viewer if presentDaniel Bridges
2019-07-17Show currently pressed keys in statuslineJeffas
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.
2019-07-17Add an option to toggle between read and unreadNicolai Dagestad
2019-07-17Revert "Ensure new partswitcher doesn't start on multipart"Drew DeVault
This reverts commit 41390bc3e1e557eff15e8159767f206b3b74ea30.
2019-07-17Add show-headers to aerc-configJeffas
2019-07-17Fix grid widths when using weighted widthsJeffas
If the column weights do not collectively divide the extent of the grid layout then some width was not used and so would not be redrawn, resulting in previous drawings showing through. This fixes this by checking if there is any remainingExact width and if there is it is assigned to the weighted columns by their proportion from left to right.
2019-07-17Add MouseEnabled config settingJeffas
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-17When reviewing an email don't pass characters onJeffas
This stops characters being passed to the focused box when reviewing an email. To edit headers the user should go back to the edit page.
2019-07-17Fix text input cursor position with non-ASCII textTuomas Siipola
Fixes #171
2019-07-17Show usage on getopt.Getopts errorAsger Hautop Drewsen
2019-07-17Ensure new partswitcher doesn't start on multipartJeffas
2019-07-17Update status message to include destinationJeffas
2019-07-17lowercase all key bindingsReto Brunner
2019-07-17Fix header decodingBen Burwell
Email headers can be encoded with different charsets, which is signalled using a special character sequence. The go-message package provides two different methods for accessing header values, Get(key) (actually inherited from the embedded textproto.Header) which returns the raw header value and Text(key), which returns the header's value decoded as UTF-8. Before, in the maildir backend, we were using the Get method which sometimes resulted in encoded headers being displayed in the UI. This patch replaces the incorrect usage of Get() with Text().
2019-07-15commands: Don't crash when store is nilKevin Kuehler
On a slow network connection, running these commands without this guard will cause aerc to panic. Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
2019-07-1571: Allow user to change config options at runtimePedro L. Ramos
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-14Update README.mdDrew DeVault
2019-07-13Escape plus symbol in hldiff filter.EdOverflow
I was getting errors when using the hldiff filter with aerc because the plus symbol on line 28 wasn't escaped. This commit escapes the plus symbol in the regex on line 28.
2019-07-13Fix missing format fields in maildir/container.goDrew DeVault
2019-07-13Don't initialize an invalid pty sizeDrew DeVault
2019-07-12Fix read reply flag formattingJeffas
The readFlag was displaying wrong and not using combinations of the flags to decide the string.
2019-07-12Add maildir docsBen Burwell
2019-07-12Implement maildir copyBen Burwell
Create a delivery in the destination directory with the content of the source message.
2019-07-12Handle the invalid "utf8" encodingBen Burwell
See commit 0bfc369eb68a1d34ea0ee983f218e97a14099959 in the go-message package.
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.