The main component is
alot.ui.UI, which provides methods for user input and notifications, sets up the widget
tree and maintains the list of active buffers.
When you start up alot,
init.py initializes logging, parses settings and commandline args
and instantiates the
UI instance of that gets passes around later.
From its constructor this instance starts the
that takes over.
Apart from the central
UI, there are two other “managers” responsible for
core functionalities, also set up in
DBManagerto access the email database and
SettingsManageroo access user settings
Every user action, triggered either by key bindings or via the command prompt, is
given as commandline string that gets
Command object which is then
Different actions are defined as a subclasses of
Command, which live
alot/commands/MODE.py, where MODE is the name of the mode (
Buffer type) they
are used in.