| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current default theme is unusable on light backgrounds. Some colors
are too light and are almost invisible.
Use only palette colors to ensure that everything is customizable by the
user.
I tested this with white on black, grey on dark purple, black on yellow,
black on white. Text remains readable everywhere.
Update stylesets that don't use these new defaults to explicitly
override them.
Changelog-changed: The default `colorize` theme has been changed to
use the base terminal colors.
Cc: Jason Cox <me@jasoncarloscox.com>
Reported-by: Matěj Cepl <mcepl@cepl.eu>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
|
|
|
|
|
|
|
|
|
| |
Include the styleset filepath and exact statement that caused the error.
Remove the "failed to load config: " prefix in the error message. The
line is often very long already.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default styleset and ui settings are quite dull and don't make use
of the "newer" features that have been added to aerc in the past two
years.
Change the default styleset to something more colorful that renders
correctly on both dark and light backgrounds. Change the default ui
settings to get something more appealing to new users.
Save the previous default color theme to a new `monochrome` styleset.
Changelog-changed: The default `[ui]` settings and the `default`
styleset have changed extensively. A no-color theme can be restored
with the `monochrome` styleset.
Cc: Marc Coquand <marc@mccd.space>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
|
|
|
|
|
|
|
|
| |
Some settings are supported and documented but their description and
default values are not present in the default aerc.conf file. Add them.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
|
|
|
|
|
|
|
| |
This has nothing to do at the root of the source tree.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Acked-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a command to allow for reintroduction of messages into the transport
system. This means taking a message and forwarding it to new recipients
as is including original headers. The fact that the message has been
bounced is indicated by the prepend of *Resent-* headers in accordance
with RFC 2822. The bounced message is not stored in the sent mailbox.
Also add an `-A` switch to allow for bouncing using different account
than the one currently selected.
Also add default keybind and documentation entry for this command.
The mentioned RFC also recognizes *Resent-Cc* and *Resent-Bcc* headers
which might be an interesting continuation of this -- currently all
recipients are specified in *Resent-To*. Also more control over the
*Resent-From* header value could be implemented.
This command is strongly inspired by (neo)mutt's `bounce`.
Implements: https://todo.sr.ht/~rjarry/aerc/115
Changelog-added: `:bounce` command to reintroduce messages into the
transport system.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
| |
Make the function already present in app/compose.go reusable while also
changing its signature for it not to require involvement of a Composer
instance.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the code which handles the preparation of a sender into which the
message can be written into lib to allow for reuse. Also hide the
sending backend a bit more from the `:send` command code by introducing
a NewSender function which determines which backend should be used and
invokes the appropriate sender factory function.
Rename send() to sendHelper() to avoid collision.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JMAP is able to automatically determine sender and recipients based on
the message headers after it is submitted for sending. However this
means that it is not possible to send a message with the From header not
matching the account with this approach (or to send the message to
recipients not listed in the headers). Luckily, JMAP allows setting the
envelope containing the envelope sender and recipients manually. Modify
the code to do so.
Also bump go-jmap to include a fix needed for this to work.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
| |
Remove all use of the sendCtx struct and instead only pass the minimum
required data to sender factory functions. Also introduce shouldCopy
variable instead of evaluating all copying prerequisities every time.
Fix preposition in SMTP error message.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Rename several variables to better distinguish their meaning.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
| |
Use the StartWithSize method to start the terminal with the appropriate
size. This prevents multiple WINCH signals from being sent to the pty at
startup
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update Vaxis to v0.7.2 to gain performance improvements and StyledString
parsing. The Vaxis parser fully accounts for the terminal's capability
to display wide characters.
Use the Vaxis StyledString parser to parse and style ansi-encoded
strings. Remove unneeded code and tests.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Update color value reference in documentation
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Set the window title using Vaxis at UI initialization.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
All references to tcell have been replaced with vaxis
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Replace all tcell.EventMouse events with vaxis mouse events
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Replace tcell paste events with vaxis paste events
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
| |
Replace tcell terminal with the vaxis terminal. The vaxis terminal is a
port of tcell term.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Replace all tcell.Style objects with vaxis.Style objects
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Replace all instances of tcell key usage with vaxis keys
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Replace the Fill implementation with vaxis style objects
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
| |
Use Vaxis library directly to initialize the UI, dropping the need for a
tcell Screen implementation
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
| |
Remove references to tcell.Screen or views.Viewports. Convert Contexts
and the core UI struct to use Vaxis objects only.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
| |
Modify the function signature of Event and MouseEvent interfaces to
accept vaxis events. Note that because a vaxis event is an empty
interface, the implementations are not affected and the events are
delivered as they were before
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement inline image viewing for jpeg, png, bmp, tiff, and webp
formats. When a user has no configured image filter and the image is
supported and the terminal has either sixel or kitty image protocol
support, the image will be displayed in the message viewer.
Always clear the screen before each draw. This call is necessary in
vaxis to allow for images to be cleared properly between renders. There
is no performance impact: the call only resets each cell to a blank
cell, and aerc will redraw each one already.
Changelog-added: Inline image previews when no filter is defined for
`image/*` and the terminal supports it.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
| |
Create and expose a vaxis.Window object with each Context. vaxis.Windows
are used for creating local coordinates (similar to the views.View API
that tcell provides).
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace tcell with vaxis. Vaxis provides several new features (none of
which are included in this commit). All behavior should be exactly the
same as previous, with one exception:
Vaxis does not have an internal terminfo library. Some terminals will
now have RGB that didn't before, as well as any other feature that
was falling back to some unknown state.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parse library builds an ansi-escaped string based on a buffer of
styled cells. Use constants which aerc will still parse properly (and
are the same as the terminfo package was pulling in) to remove
dependency on tcell/terminfo. Additionally, we can use the internal go
"fmt" package to write strings instead of the terminfo.TParm method
(which is much slower at formatting strings).
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
| |
No need to do anything if the message was already seen once.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
| |
Document the recently added {{.Signature}} template.
Signed-off-by: Johannes Thyssen Tishman <johannes@thyssentishman.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch bumps the version of github.com/cloudflare/circl which is
required by github.com/ProtonMail/go-crypto to 1.3.7 to include
mitigations for GO-2023-1765 and GO-2024-2453.
Link: https://pkg.go.dev/vuln/GO-2023-1765
Link: https://pkg.go.dev/vuln/GO-2024-2453
Signed-off-by: Moritz Poldrack <git@moritz.sh>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow the backend workers to combine the filter terms. Currently, the
consecutive filters are joined in the message store with a space (" ").
This works well for most backends, but makes the filter combination for
notmuch confusing.
Example:
Issuing two consecutive filter commands in notmuch
:filter not tag:list
:filter tag:list
would create the following filter query
'not tag:list tag:list'
This is not what users would expect; they expect:
'(not tag:list) and (tag:list)'
Note that the notmuch backend works correctly for the given query, but
produced a query that does not match the user's expectation. This patch
fixes this.
The combination of filter terms in other backends remains the same.
Reported-by: Ángel Castañeda <angel@acsq.me>
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Tested-by: Inwit <inwit@sindominio.net>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new :align command that aligns the selected message vertically at
the top, center, or bottom of the message list.
The command requires a position argument that can either be: "top",
"center", or "bottom".
Create the following default keybinds:
zz = :align center<Enter>
zt = :align top<Enter>
zb = :align bottom<Enter>
Changelog-added: Add new `:align` command to align the selected
message at the top, center, or bottom of the message list.
Suggested-by: Ángel Castañeda <angel@acsq.me>
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Tested-by: Jason Cox <me@jasoncarloscox.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the [ui].msglist-scroll-offset option in aerc.conf to set the scroll
offset in number of lines from the top and bottom of the message list.
Changelog-added: Add `[ui].msglist-scroll-offset` option to set a
scroll offset for the message list.
Suggested-by: Ángel Castañeda <angel@acsq.me>
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite the scrolling logic to consider a scroll offset. Ensure correct
lower and upper bounds of the scroll variable. Cap offset at half of the
screen height.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Tested-by: Jason Cox <me@jasoncarloscox.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since some organisations are using capitalised email-adresses, there is
no guarantee that invitations are received by an address of the same
case.
Fixes: 62982a9a ("invites: reply with accept, accept-tentative or decline")
Changelog-fixed: Calendar responses now ignore case.
Reported-by: "Bart Libert" <bart@libert.email>
Signed-off-by: Moritz Poldrack <git@moritz.sh>
Tested-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
| |
Add annotations in square brackets in app.HumanReadableBindings() which
translates the keyinds to strings for the ':help keys' command.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Reviewed-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Customize annotations on the review screen. Annotations will overwrite
the default descriptions. Replace the [][]string construct with a named
struct for better readability.
Fixes: https://todo.sr.ht/~rjarry/aerc/118
Changelog-deprecated: Built-in descriptions for the default
keybinds shown on the review screen will be deprecated in a future
release. Descriptions can be added to those keybinds with inline
comments in binds.conf.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Parse inline comments in binds.conf as annotations to the corresponding
keybinds. Note that a space is required before the comment symbol, so
the comment delimiter is " # ".
Example:
p = :postpone<Enter> # I'll work on it later
where "I'll work on it later" is the annotation.
When a comment symbol ("#") is needed in the value part of the keybind,
it should be escaped ("\#"). Comment symbols can be used without
restriction in the annotation itself.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Reviewed-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If replying to mail or forwarding a mail that doesn't have a
recipient name, the automatically generated header line will just
have an empty value. Use the names template to extract either the
name if available otherwise the mbox name.
While at it, instead of just taking the first item of the list,
join all items to avoid an index error if the list is empty.
Signed-off-by: Michael Walle <michael@walle.cc>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some IMAP servers report both IPv4 and IPv6 addresses from their DNS
name:
$ host imap.gmail.com
imap.gmail.com has address 108.177.15.109
imap.gmail.com has address 108.177.15.108
imap.gmail.com has IPv6 address 2a00:1450:400c:c0a::6c
imap.gmail.com has IPv6 address 2a00:1450:400c:c0a::6d
ResolveTCPAddr actually returns the first *IPv4* address by default,
unless the address string is an explicit IPv6 address.
Directly use net.Dial which has a fast fallback mechanism. It first
tries to connect with an IPv6 address (if any) and if that fails, it
will retry with an IPv4 address (if any) before failing completely.
Link: https://cs.opensource.google/go/go/+/refs/tags/go1.21.6:src/net/ipsock.go;l=81
Link: https://lists.sr.ht/~rjarry/aerc-discuss/%3CCYVLU3AOA00I.26I5IMAF3T4CK%40dow.land%3E
Link: https://pkg.go.dev/net#Dial
Reported-by: Jonathan Dowland <jon@dow.land>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Koni Marti <koni.marti@gmail.com>
|
|
|
|
| |
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initialize a build variable to the date on which the binary was
generated. Include the date in the build info string which is output
when running aerc -v and in the crash logs.
Do not rely on parsing the build flags via some obscure base64 voodoo to
determine if notmuch support is available or not. Instead, use the
symbols from the linked library directly if available.
Before:
$ aerc -v
0.16.0-183-g4cc2e6be3a01 +notmuch (go1.21.6 amd64 linux)
After:
$ aerc -v
aerc 0.16.0-183-g4cc2e6be3a01 +notmuch-5.6.0 (go1.21.6 amd64 linux 2024-01-31)
Signed-off-by: Robin Jarry <robin@jarry.cc>
Acked-by: Ciarán Ainsworth <cda@sporiff.dev>
|
|
|
|
|
|
|
|
|
|
|
| |
Rename the command :patch delete to :patch unlink. This expresses the
"link" between the project data within aerc and the underlying
repository better. :patch unlink does not delete anything in the
repository, it only removes the metadata about currently applied patch
revisions/tags.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
| |
Replace the typo with a correct word for the description of the
OriginalDate template variable to make sense.
Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Moritz Poldrack <moritz@poldrack.dev>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
| |
Rename the :patch remove command to :patch drop to better express the
this operation is the counter-part to :patch apply.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the message viewer is open and running :reply -c, if the editor
exits with an error (e.g. vim :cq), the compose tab is not closed and
aerc does not register input anymore.
This happens because the composer is closed twice. Once explicitly, and
a second time by RemoveTab. This causes to open two viewers on the same
message at the same time.
Here is the deadlock stack trace:
goroutine 149 [sync.Mutex.Lock]:
runtime.gopark()
runtime/proc.go:398
...
sync.(*Mutex).Lock(...)
sync/mutex.go:90
git.sr.ht/~rjarry/aerc/app.(*Composer).Show()
git.sr.ht/~rjarry/aerc/app/compose.go:793
git.sr.ht/~rjarry/aerc/lib/ui.(*Tabs).selectPriv()
git.sr.ht/~rjarry/aerc/lib/ui/tab.go:171
git.sr.ht/~rjarry/aerc/lib/ui.(*Tabs).Add()
git.sr.ht/~rjarry/aerc/lib/ui/tab.go:75
git.sr.ht/~rjarry/aerc/app.(*Aerc).NewTab()
git.sr.ht/~rjarry/aerc/app/aerc.go:481
git.sr.ht/~rjarry/aerc/app.NewTab(...)
git.sr.ht/~rjarry/aerc/app/app.go:60
git.sr.ht/~rjarry/aerc/commands/account.ViewMessage.Execute.func1()
git.sr.ht/~rjarry/aerc/commands/account/view.go:71
git.sr.ht/~rjarry/aerc/lib.NewMessageStoreView.func1()
git.sr.ht/~rjarry/aerc/lib/messageview.go:79
git.sr.ht/~rjarry/aerc/lib.NewMessageStoreView()
git.sr.ht/~rjarry/aerc/lib/messageview.go:123
git.sr.ht/~rjarry/aerc/commands/account.ViewMessage.Execute()
git.sr.ht/~rjarry/aerc/commands/account/view.go:52
git.sr.ht/~rjarry/aerc/commands/msg.reply.Execute.func1.1()
git.sr.ht/~rjarry/aerc/commands/msg/reply.go:191
git.sr.ht/~rjarry/aerc/app.(*Composer).Close()
git.sr.ht/~rjarry/aerc/app/compose.go:714
git.sr.ht/~rjarry/aerc/app.(*Composer).termClosed()
git.sr.ht/~rjarry/aerc/app/compose.go:1189
git.sr.ht/~rjarry/aerc/app.(*Terminal).closeErr()
git.sr.ht/~rjarry/aerc/app/terminal.go:69
git.sr.ht/~rjarry/aerc/app.(*Terminal).Close(...)
git.sr.ht/~rjarry/aerc/app/terminal.go:46
git.sr.ht/~rjarry/aerc/app.(*Terminal).HandleEvent()
git.sr.ht/~rjarry/aerc/app/terminal.go:174
git.sr.ht/~rockorager/tcell-term.(*VT).Start.func1()
git.sr.ht/~rockorager/tcell-term@v0.10.0/vt.go:175
created by git.sr.ht/~rockorager/tcell-term.(*VT).Start in goroutine 1
git.sr.ht/~rockorager/tcell-term@v0.10.0/vt.go:165 +0x38d
Fixes: https://todo.sr.ht/~rjarry/aerc/216
Reported-by: Karel Balej <balejk@matfyz.cz>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Karel Balej <balejk@matfyz.cz>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pass a cancellable context to the IPC server and defer accepting
connections until the first worker message has been received by the main
thread.
This is not a real fix for the :split command not working at startup.
:split requires a mail store to be present on the currently selected
account tab+folder. I could have waited for a types.DirectoryContents
message but it seems silly and bug prone since such a message may never
arrive and we don't want to pool IPC messages forever.
Also, a types.DirectoryContents message may arrive for one account but
:split is only effective *per account* and the default selected account
tab is the first one.
In any case, this band aid prevents aerc from crashing or breaking down
the terminal when running IPC commands in the aerc-startup hook.
Fixes: https://lists.sr.ht/~rjarry/aerc-devel/%3CCYPN7AVYQ69S.WV0T67VM6WX3%40wegtam.com%3E
Fixes: https://todo.sr.ht/~rjarry/aerc/173
Reported-by: Jens Grassel <jens@wegtam.com>
Reported-by: Justine Smithies <justine@smithies.me.uk>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Thomas Böhler <witcher@wiredspace.de>
Reviewed-by: Thomas Böhler <witcher@wiredspace.de>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Send some key events directly to the textinput widget when the filter
line is shown. There's no need to have duplicated code in listbox and
textinput for the same keys, e.g. CtrlW.
This also fixes a panic when CtrlW is used on the filter line.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|