Keys¶
The quick reference lays the whole default map out by task.
Every action is rebindable under [keys] in config.toml;
the in-app cheatsheet (?) always renders the effective map,
defaults merged with your overrides, and so do the pager
keybar and the status-line hints.
Sequences¶
Single keys (j, /, G), modifiers (ctrl-d, alt-v),
named keys (enter, esc, tab, space, up, down), and
two-key sequences (gg, ,s). Unknown action names and
unparseable sequences fail at startup naming the entry.
Movement actions take a count prefix, vi style: 4j moves
down four, 12k up twelve. Digits accumulate until a bound
key consumes them (capped at 9999); esc clears a pending
count.
Actions: move-down, move-up, top, bottom,
half-page-down, half-page-up, open, back, quit,
search, command, next-account, previous-account,
sidebar-next, sidebar-previous, sidebar-open,
toggle-sidebar, cycle-reading-pane, sync, settings,
reply,
reply-all, forward,
reply-list, compose, toggle-read, mark-all-read,
toggle-flagged, delete-message, toggle-html (h:
flip the open or previewed message between plain and html
parts), toggle-headers (t: flip the pager and reading
pane between the configured headers set and every header
of the message), open-link (o: a numbered picker over
the links of the open message; type the number and press
enter, or move with j/k, and the url goes to the system
opener, open on macOS and xdg-open elsewhere; esc
closes), attachments (v: expand the attachment drawer),
archive (a: move the message to the account's archive
folder, from the list or the pager; the row leaves at once
and the daemon replays the move against the server),
move-to (c: a picker over the account's other folders,
aliases shown where configured; enter moves, esc closes;
:move <folder> does the same by name, accepting an alias,
the real path, or inbox for the account root),
pane-down/pane-up (J/K: scroll the reading pane),
thread-view (T: pivot the flat list onto the selected
message's whole thread; back (esc) restores the listing
you came from; a T in the status column marks messages
whose thread has more rows in the current listing),
help (?: the keybinding cheatsheet, generated live from
these bindings with your overrides applied).
In the pager, link spans render underlined in the accent
colour. The mouse works there too: the wheel scrolls, and a
left click on a link opens it. Only http, https and
mailto urls are ever handed to the opener, and Antiphon
itself never fetches anything.
A message with attachments shows a one-line drawer at the
pager's bottom, e.g. 2 attachments: report.pdf, photo.jpg,
truncated to the width. v expands it into a list: j/k
select, s saves the decoded bytes to a prompted path
(prefilled with the sent filename, ~ expands), v writes
a temporary copy and hands it to the system opener, and
esc collapses the drawer again.
next-account (gt) and previous-account (gT) cycle the
view scope: unified, then each account in turn. sidebar-next
(ctrl-n) and sidebar-previous (ctrl-p) move the sidebar
highlight over the unified view, the accounts (each with its
folders nested beneath it), four built-in searches (all,
inbox, unread, flagged) and the [[saved_searches]]
from config, in that order; sidebar-open (ctrl-o) applies
the highlighted entry. Account entries set the scope; saved
searches run their query inside the current scope. On startup
the all search is selected, so everything in scope is
listed.
Folder entries list one folder of one account: inbox is the
account's root maildir, and every other folder is discovered
from the store's maildir tree on each refresh, nested IMAP
folders included (lists/aerc, inbox/accounts). Opening a
folder scopes the view to its account and shows only that
folder's messages. A folder holding unread mail steps out of
the muted rank and carries its unread count beside the name,
refreshed with the rest of the sidebar every couple of
seconds.
[folder_names] gives folders friendlier sidebar names
(INBOX/Accounts shown as accounts); the alias also works
wherever a folder name is typed. The left side is the folder
path as the store knows it: lowercase, /-separated.
reply-list (L) replies to the mailing list a message came
from: Mail-Followup-To wins when the author set one,
otherwise the List-Post mailto address is used. A
List-Post: NO list refuses with a status message, and a list
without any List-Post header falls back to reply-all with a
warning naming the recipient count rather than guessing an
address.
:accept, :tentative and :decline answer the calendar
invite of the open message: each opens an ordinary compose to
the organiser with the RFC 5546 reply attached as a calendar
part, so nothing is sent before the review screen's y. The
organiser's copy updates your attendance when their client
processes the part, which the big providers all do.
:unsubscribe acts on the current message's
List-Unsubscribe header. An RFC 8058 one-click entry asks
for confirmation naming the list, then hands the POST to
antiphond, which requires https and performs it off the serve
loop (the client never touches the network). A mailto
entry opens a
compose prefilled with the address, subject and body from the
URI. A web-only entry displays the URL for you to open;
nothing is ever fetched automatically.