AERC-BINDS(5) # NAME aerc-binds - key bindings configuration file format for *aerc*(1) # 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: ** = __ Where ** is the keystrokes pressed (in order) to invoke this keybinding, and __ specifies keystrokes that aerc will simulate when the keybinding is invoked. Generally this is used to execute commands, for example: *rq* = _:reply -q_ Pressing *r*, then *q*, will simulate typing in _:reply -q_, 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. # 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 # I'll work on it later *[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_*]*++ *[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 [compose::editor:account=Mailbox2] [compose::editor:folder=aerc] y = :send -t aerc [messages:folder=Drafts] = :recall [messages:folder=Archive/\d+/.*] gi = :cf Inbox ... ``` 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 d = :deatch [compose::review:account=no-attachments] a = d = ``` # 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* = __ This can be set to a keystroke which will bring up the command input in this context. Default: _:_ *$complete* = __ This can be set to a keystroke which will trigger command completion in this context for text inputs that support it. Default: __ 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_ # SUPPORTED KEYS In addition to letters and some characters (e.g. *a*, *RR*, *gu*, *?*, *!*, etc.), special keys may be specified in **. The following special keys are supported: [[ *Name* :- *Description* | ** : " " | ** : ; | ** : Tab | ** : Enter | ** : Up arrow | ** : Ctrl+Up | ** : Alt+Up | ** : Down arrow | ** : Ctrl+Down | ** : Alt+Down | ** : Right arrow | ** : Ctrl+Right | ** : Alt+Right | ** : Left arrow | ** : Ctrl+Left | ** : Alt+Left | ** : Page Up | ** : Ctrl+PageUp | ** : Alt+PageUp | ** : Page Down | ** : Ctrl+PageDn | ** : Alt+PageDn | ** : Home | ** : End | ** : Insert | ** : Delete | ** : Ctrl+Delete | ** : Alt+Delete | ** : Backspace | ** : Exit | ** : Cancel | ** : Print screen | ** : Pause | ** : Shift+Tab | ** : Escape | ** : Ctrl+Space | ** : Alt+Space | ** : Alt+0 | ** : Alt+1 | ** : Alt+2 | ** : Alt+3 | ** : Alt+4 | ** : Alt+5 | ** : Alt+6 | ** : Alt+7 | ** : Alt+8 | ** : Alt+9 | ** : Ctrl+a | ** : Alt+a | ** : Ctrl+b | ** : Alt+b | ** : Ctrl+c | ** : Alt+c | ** : Ctrl+d | ** : Alt+d | ** : Ctrl+e | ** : Alt+e | ** : Ctrl+f | ** : Alt+f | ** : Ctrl+g | ** : Alt+g | ** : Ctrl+h | ** : Alt+h | ** : Ctrl+i | ** : Alt+i | ** : Ctrl+j | ** : Alt+j | ** : Ctrl+k | ** : Alt+k | ** : Ctrl+l | ** : Alt+l | ** : Ctrl+m | ** : Alt+m | ** : Ctrl+n | ** : Alt+n | ** : Ctrl+o | ** : Alt+o | ** : Ctrl+p | ** : Alt+p | ** : Ctrl+q | ** : Alt+q | ** : Ctrl+r | ** : Alt+r | ** : Ctrl+s | ** : Alt+s | ** : Ctrl+t | ** : Alt+t | ** : Ctrl+u | ** : Alt+u | ** : Ctrl+v | ** : Alt+v | ** : Ctrl+w | ** : Alt+w | ** : Ctrl+x | ** : Alt+x | ** : Ctrl+y | ** : Alt+y | ** : Ctrl+z | ** : Alt+z | ** : Ctrl+] | ** : Alt+] | ** : Ctrl+[ | ** : Alt+[ | ** : Ctrl+^ | ** : Alt+^ | ** : Ctrl+\_ | ** : Alt+\_ # SEE ALSO *aerc*(1) *aerc-config*(5) # AUTHORS Originally created by Drew DeVault and maintained by Robin Jarry who is assisted by other open source contributors. For more information about aerc development, see _https://sr.ht/~rjarry/aerc/_.