Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
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.
|
|
|
|
This reverts commit 41390bc3e1e557eff15e8159767f206b3b74ea30.
|
|
|
|
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.
|
|
This patch adds the ability to control whether aerc captures mouseevents
or not. By default it will be set to not capture events.
|
|
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.
|
|
Fixes #171
|
|
|
|
|
|
|
|
|
|
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().
|
|
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>
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
The readFlag was displaying wrong and not using combinations of the
flags to decide the string.
|
|
|
|
Create a delivery in the destination directory with the content of the
source message.
|
|
See commit 0bfc369eb68a1d34ea0ee983f218e97a14099959 in the go-message
package.
|
|
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.
|
|
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.
|
|
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.
|
|
Fixes #112
Signed-off-by: Eyal Sawady <eyalsawady@gmail.com>
|
|
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
Also sets the public List() method to return the unfiltered
list of directories directly from the store.
|
|
Credit for this fix goes to Reto; I guess if we're not gonna be mutt
we should probabaly do things correctly.
|