aboutsummaryrefslogtreecommitdiff

lazymail

lazymail is a Haskell written old-school console Mail User Agent, born as a final project for a functional programming course.

Heavily inspired in lumail, lazymail is a modal client:

  • Maildir mode: offers a tree-like view of all the maildirs recursively found from an initial path.
  • Index mode: offers a view of all the emails in a selected maildir.
  • Email mode: used to read the selected email in Index mode.
  • Compose mode: launch your favorite text editor in order to write your emails.

lazymail main features are:

  • Tons of bugs
  • Configurable key-bindings
  • Configurable colors.
  • Some user-configurable hooks.
  • That's it.

lazymail was born as a final project for a functional programming course. As such, the overall code quality isn't great and the program is not even close for production use.

Installation

A cabal build system is available. Just issue the following commands in the root directory of lazymail:

$ cabal update    # Update the indices 
$ cabal configure # Check the build dependencies
$ cabal build     # lazymail will be build under dist/
$ cabal install   # Install lazymail under the default prefix dir

Or if you want to install it in one step, just do:

$ cabal update && cabal install

Usage

The first thing you'll want to do is edit customConfig function, in Config.hs file. This function has some user configuration in order for the client to work. Edit initialFile and point it to the root of your maildirs hierarchy. Re-compile the program.

Then use your cursor keys to move between the different modes. Read Keymap.hs to discover the rest of the key-bindings. You can even add your own key-bindings in Config.hs.

nihil fit ex nihilo