aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 253b27c51969ea88f964dd3a370d357732c2dd46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 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](http://lumail.org/), 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