aerc-binds - key bindings configuration file format for aerc(1)
Contents
Contexts
The available contexts are:
[messages]
keybindings for the message list
[view]
keybindings for the message viewer
[view::passthrough]
keybindings for the viewer, when in key passthrough mode (toggled with :toggle-key-passthrough)
[compose]
keybindings for the message composer
[compose::editor]
keybindings for the composer, when the editor is focused
[compose::review]
keybindings for the composer, when reviewing the email before it's sent
To customize the description shown on the review screen, add a comment ("#") at the end of the
keybinding. Example:
p = :postpone<Enter> # I'll work on it later
The order in which bindings are defined is preserved on the review screen. If a non-default binding
is not annotated it will be displayed without any description.
To hide a binding from the review screen, explicitly annotate it with a "#-" comment. Example:
<C-e> = :encrypt<Enter> # -
[terminal]
keybindings for terminal tabs
You may also configure account specific key bindings for each context:
[context:account=AccountName]
keybindings for this context and account, where AccountName is a regular expression that matches the
account name you provided in accounts.conf.
Folder and context-specific bindings can be configured for message lists:
[messages:folder=FolderName][view:folder=FolderName][compose:folder=FolderName][compose::editor:folder=FolderName][compose::review:folder=FolderName]
keybindings under this section will be specific to the folder that matches the regular expression
FolderName. Keybindings from a folder specifier will take precedence over account specifiers
Examples:
[messages:account=Mailbox]
c = :cf path:mailbox/** and<space>
[compose::editor:account=Mailbox2]
[compose::editor:folder=aerc]
y = :send -t aerc
[messages:folder=Drafts]
<Enter> = :recall<Enter>
[messages:folder=Archive/d+/.*]
gi = :cf Inbox<Enter>
...
You may also configure global keybindings by placing them at the beginning of the file, before specifying
any context-specific sections.
Parent keybindings can be erased in the context ones by specifying an "empty" binding:
[compose::review]
a = :attach<space>
d = :detach<space>
[compose::review:account=no-attachments]
a =
d =
Name
aerc-binds - key bindings configuration file format for aerc(1)
See Also
aerc(1) aerc-config(5)
Special Options
In addition of user defined key sequences, the following special options are available in each binding
context:
$noinherit = true|false
If set to true, global keybindings will not be effective in this context.
Default: false$ex = <key-stroke>
This can be set to a keystroke which will bring up the command input in this context.
Default: :$complete = <key-stroke>
This can be set to a keystroke which will trigger command completion in this context for text inputs
that support it.
Default: <tab>
Note: automatic command completion is disabled when simulating keystrokes and re-enabled at the end.
When [ui].completion-min-chars is set to manual (see aerc-config(5)), it is possible to end a
keybinding with the completion key to explicitly display the completion menu. E.g.:
o = :cf<space><tab>
Supported Keys
In addition to letters and some characters (e.g. a, RR, gu, ?, !, etc.), special keys may be specified in
<anglebrackets>. The syntax for modified or special keys is:
<C-A-S-key>
Where C is control, A is alt, S is shift, and key is the named key or character.
Valid key names are:
┌─────────────┬──────────────┐
│ Name │ Description │
├─────────────┼──────────────┤
│ <space> │ " " │
├─────────────┼──────────────┤
│ <semicolon> │ ; │
├─────────────┼──────────────┤
│ <tab> │ Tab │
├─────────────┼──────────────┤
│ <enter> │ Enter │
├─────────────┼──────────────┤
│ <up> │ Up arrow │
├─────────────┼──────────────┤
│ <down> │ Down arrow │
├─────────────┼──────────────┤
│ <right> │ Right arrow │
├─────────────┼──────────────┤
│ <left> │ Left arrow │
├─────────────┼──────────────┤
│ <pgup> │ Page Up │
├─────────────┼──────────────┤
│ <pgdn> │ Page Down │
├─────────────┼──────────────┤
│ <home> │ Home │
├─────────────┼──────────────┤
│ <end> │ End │
├─────────────┼──────────────┤
│ <insert> │ Insert │
├─────────────┼──────────────┤
│ <delete> │ Delete │
├─────────────┼──────────────┤
│ <backspace> │ Backspace │
├─────────────┼──────────────┤
│ <exit> │ Exit │
├─────────────┼──────────────┤
│ <cancel> │ Cancel │
├─────────────┼──────────────┤
│ <print> │ Print screen │
├─────────────┼──────────────┤
│ <pause> │ Pause │
├─────────────┼──────────────┤
│ <backtab> │ Shift+Tab │
├─────────────┼──────────────┤
│ <esc> │ Escape │
└─────────────┴──────────────┘
Synopsis
The binds.conf file is used for configuring keybindings used in the aerc interactive client. It is
expected to be in your XDG config home plus aerc, which defaults to ~/.config/aerc/binds.conf. If the
file does not exist, the built-in default will be installed. An alternate file can be specified via the
--binds-conf command line argument, see aerc(1).
This file is written in the ini format with key bindings defined as:
<keysequence> = <command>
Where <keysequence> is the keystrokes pressed (in order) to invoke this keybinding, and <command>
specifies keystrokes that aerc will simulate when the keybinding is invoked. Generally this is used to
execute commands, for example:
rq = :reply-q<Enter>
Pressing r, then q, will simulate typing in :reply-q<Enter>, and execute :reply-q accordingly. It is
also possible to invoke keybindings recursively in a similar fashion.
You may configure different keybindings for different contexts by writing them into different [sections]
of the ini file.
