If you want to bind a command to a key you can do so by adding the pair to the [bindings] section. This will introduce a global binding, that works in all modes. To make a binding specific to a mode you have to add the pair under the subsection named like the mode. For instance, if you want to bind T to open a new search for threads tagged with 'todo', and be able to toggle this tag in search mode, you'd add this to your config
[bindings] T = search tag:todo [[search]] t = toggletags todo
Known modes are:
Have a look at the urwid User Input documentation on how key strings are formatted.
User-defined bindings are combined with the default bindings listed below.
.. literalinclude:: ../../../alot/defaults/default.bindings :language: ini
In prompts the following hardcoded bindings are available.
|Ctrl-f/b||Moves the curser one character to the right/left|
|Alt-f/b Shift-right/left||Moves the cursor one word to the right/left|
|Ctrl-a/e||Moves the curser to the beginning/end of the line|
|Ctrl-d||Deletes the character under the cursor|
|Alt-d||Deletes everything from the cursor to the end of the current or next word|
|Alt-Delete/Backspace Ctrl-w||Deletes everything from the cursor to the beginning of the current or previous word|
|Ctrl-k||Deletes everything from the cursor to the end of the line|
|Ctrl-u||Deletes everything from the cursor to the beginning of the line|
To disable a global binding you can redefine it in your config to point to an empty command string. For example, to add a new global binding for key a, which is bound to toggletags inbox in search mode by default, you can remap it as follows.
[bindings] a = NEW GLOBAL COMMAND [[search]] a =
If you omit the last two lines, a will still be bound to the default binding in search mode.