design and user interface goals
- (keyboard) fully operatable by keyboard only - but accept mouse clicks
- (partly done) base interface on sup, but allow buffers to be dragged out or separated as windows so that multiple views/buffers can be seen at one time.
- (done) allow several simultaneous windows.
- (done) display html mail and some attachments inline.
- (done) render math using MathJax
- (partly done) syntax highlighting between triple-backtick tags (markdown style)
- (not done) built-in crypto (gpg,..) support.
- (only vim) editors: embed vim or emacs (possibly ship a simple editor)
- (linux) Support: Platforms supported by notmuch and other libraries, specifically: Linux, *BSD, Mac, Windows..
- Never use deprecated libraries - use as few libraries as possible.
- Never rewrite something if it exists an active library for it.
- All database operations / mail handling should be done by notmuch or other tools.
licence and attribution
GNU GPL v3 or later:
Copyright (c) 2014 Gaute Hope <firstname.lastname@example.org> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
installation and usage
to run the tests do:
$ scons test
Configure with a prefix and install:
$ scons --prefix=/usr build $ scons --prefix=/usr install
this will install the
astroid binary into
/usr/bin/ and data files into
astroid uses the
$XDG_CONFIG_HOME/astroid directory (or
$HOME/.config/astroid if it is not set) for storing its configuration file. When you first run astroid it will set up the default configuration file there. This is a JSON file created by boost::property_tree. Options not set here will be set to their default values as specified in
By default astroid looks in
$HOME/.mail for the notmuch database, but you can change this in the configuration file. You can also set up default queries and accounts for sending e-mail there.
you can run:
$ astroid --new-config
to create a new configuration file in the default location, you can also specify a location of the new config file with the
running and usage
? to get a list of available key bindings in the current mode, navigate up and down using
k. The list is updated depending on the mode you are in.
patches, help, comments and bugs
Contributions to Astroid in the form of patches, documentation and testing are very welcome. Information on how to contribute to astroid can be found in the wiki.
Also check out #astroid or #notmuch on irc.freenode.net.
Some parts of the user interface and layout have been copied from or has been inspired by the Geary mail client. One of the other notmuch email clients, ner, has also been used for inspiration and direct code copy some times.