Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Keyboard reference

Every command below is also in the Ctrl+K palette and the ? cheat sheet, because all three are generated from one table.

Bindings come from the design canvas — e replies, not r. docs/PRODUCT.md §8 records that resolution; this table is the registry.

Rebinding

Every binding is overridable from the [keys] section of config.toml, keyed by the command id in the last column:

[keys]
archive = "y"
first_message = "g g"

A chord joins modifiers to a key with + (ctrl+k); a sequence separates chords with a space (g g). Shift is written into the character, so A is what you get by holding shift — a and A are different bindings. An override that cannot be used, or that collides with a key already taken in the same place, is reported in the settings panel and the command keeps its default.

mod is the primary accelerator: Control here, Command on macOS. Every default above uses it, which is why the same config.toml means the same thing on both. Writing ctrl instead pins the binding to Control everywhere.

While you are typing, single-key bindings do not fire. Only Escape, the function keys, and chords holding Ctrl, Alt or Super reach a command from inside a text field.

Bindings

KeysCommandWhereUndoId
j or DownNext messageList, conversation, reader, searchnext_message
k or UpPrevious messageList, conversation, reader, searchprev_message
g gFirst messageList, conversation, reader, searchfirst_message
GLast messageList, conversation, reader, searchlast_message
Return or l or RightOpen messageList, conversation, searchopen_message
xToggle selectionList, conversation, reader, searchtoggle_selection
J or shift+DownExtend selection downList, reader, searchextend_selection_down
K or shift+UpExtend selection upList, reader, searchextend_selection_up
ctrl+aSelect allList, conversation, reader, searchselect_all
h or LeftPrevious viewList, conversation, readerprev_view
EscapeBackEverywhereback
oToggle result orderSearchtoggle_result_order
JNext message in conversationConversationnext_in_conversation
KPrevious message in conversationConversationprev_in_conversation
zFold or unfold this messageConversationtoggle_fold
ctrl+oView originalList, conversation, readerview_original
OExpand allConversationexpand_all
IHide or show the conversation railConversationtoggle_rail
eReplyList, conversation, reader, composerreply
EReply to allList, conversation, reader, composerreply_all
fForwardList, conversation, reader, composerforward
aArchiveList, conversation, readerUndoablearchive
AArchive threadList, conversation, readerUndoablearchive_thread
dDeleteList, conversation, readerUndoabledelete
mMove to…List, conversation, readerUndoablemove
sFlagList, conversation, readerUndoableflag
UMark unreadList, conversation, readerUndoablemark_unread
bSnoozeList, conversation, readerUndoablesnooze
BUnsnoozeList, conversation, readerUndoableunsnooze
LAdd label…List, conversation, readerUndoableadd_label
/SearchList, conversation, readersearch
ctrl+sSave search as folderSearchsave_search
cComposeList, conversation, readercompose
ctrl+ReturnSendComposerUndo brieflysend
ctrl+shift+ReturnSchedule send…Composerschedule_send
ctrl+sSave draftComposersave_draft
ctrl+dDiscard draftComposerAsks firstdiscard_draft
ctrl+shift+mMark as sentList, composermark_sent
ctrl+shift+rRetry sendList, composerretry_send
ctrl+shift+xCancel sendList, composercancel_send
ctrl+shift+aAttach file…Composerattach_file
ctrl+shift+oDetach composerComposerdetach_composer
ctrl+shift+cCc and BccComposercopy_fields
ctrl+shift+gInsert image…Composerinsert_image
ctrl+bBoldComposerbold
ctrl+iItalicComposeritalic
ctrl+shift+8Bulleted listComposerbullet_list
ctrl+shift+7Numbered listComposernumbered_list
ctrl+shift+kInsert link…Composerinsert_link
ctrl+shift+9Quote blockComposerquote_block
uUndoList, conversation, reader, account listundo
ctrl+kCommand paletteEverywherecommand_palette
?Keyboard shortcutsList, conversation, readercheat_sheet
ctrl+commaSettingsEverywheresettings
ctrl+shift+nAdd accountEverywhereadd_account
ctrl+eEdit configurationList, conversation, readeredit_config
ctrl+bToggle sidebarList, conversation, readertoggle_sidebar
g fFocus the folder listList, conversation, reader, searchfocus_sidebar
tabNext paneList, conversation, reader, folder listcycle_pane
shift+tabPrevious paneList, conversation, reader, folder listcycle_pane_back
j or DownNext folderFolder listnext_folder
k or UpPrevious folderFolder listprev_folder
spaceExpand or collapse folderFolder listtoggle_folder
rRename saved searchFolder listrename_saved_search
shift+UpMove saved search upFolder listmove_saved_search_up
shift+DownMove saved search downFolder listmove_saved_search_down
dDelete saved searchFolder listAsks firstdelete_saved_search
ReturnEnable or disable accountAccount listtoggle_account_enabled
dRemove accountAccount listUndoableremove_account
cUpdate account credentialAccount listupdate_credential
rRebuild search indexAccount listrebuild_account_index
mSet as default accountAccount listset_default_account
MMap mailbox roleAccount listUndoablemap_mailbox_role
g aNext scopeList, folder listnext_scope
F5 or RRefreshList, conversation, readerrefresh
pShow message partsReaderopen_parts
j or DownNext partParts panelnext_part
k or UpPrevious partParts panelprev_part
ReturnOpen partParts panelopen_part
sSave partParts panelsave_part
SSave all partsParts panelsave_all_parts
xOpen part externallyParts panelopen_part_externally
HRender part onceParts panelrender_part_once
Page_Down or spaceScroll reading pane downList, conversation, readerscroll_reader_down
Page_Up or shift+spaceScroll reading pane upList, conversation, readerscroll_reader_up