mblaze-ui

A minimal TUI for the mblaze email client

git clone https://git.8pit.net/mblaze-ui.git

 1# mblaze-ui
 2
 3A minimal TUI for the [mblaze][mblaze github] email client.
 4
 5![Screenshot of mblaze-ui with a list of email summaries.](https://gist.github.com/nmeum/ddb6ddbe84d9ef5bdabd5a81219c93b2/raw/8a56073afb3b1d3d5019e09f2af43f59c245ace4/mblaze-ui.png)
 6
 7## About
 8
 9mblaze-ui is [tcell][tcell github]-based terminal user interface for the
10[mblaze][mblaze github] email client. Similar to existing Unix utilities
11from `mblaze(7)`, it operates on the current message sequence as set by
12`mseq(1)`. For each mail of the sequence, it prints a one line summary
13similar to `mscan(1)`. Using the arrow keys, a mail from the sequence
14can be selected and manipulated using the key bindings described below.
15Conceptually, mblaze-ui is therefore similar to `mless(1)` but offers
16a pager-independent interface.
17
18## Installation
19
20This software requires at least Go 1.21.0. If such a Go version
21is available on your system, install using `go install` as follows:
22
23    $ go install github.com/nmeum/mblaze-ui@latest
24
25## Usage Example
26
27Set a message sequence using `mseq(1)`, for example
28
29    $ mlist -s ~/mail/INBOX | msort -r -d | mseq -S
30
31will set the message sequence to all unseen emails in your INBOX and
32will sort these messages ascending by date. This sequence can then
33be viewed and modified in a TUI environment using:
34
35    $ mblaze-ui
36
37In the TUI, a specific message can be selected using the arrow keys.
38The state of this message can be modified through the key bindings
39described in the following section.
40
41## Key Bindings
42
43The following key bindings are currently implemented:
44
45* `Esc` / `Ctrl-C` / `q`: Exit mblaze-ui
46* `Ctrl-L`: Redraw the screen
47* `Enter`: View the currently selected email using `mshow(1)`
48* `Up` / `Down`: Select the next/previous email
49* `PageUp` / `PageDown`: Show the next/previous page of mails
50* `f` / `F`: Mark the email as unflagged/flagged using `mflag(1)`
51* `s` / `S`: Mark the email as unseen/seen using `mflag(1)`
52* `t` / `T`: Mark the mail as untrashed/trashed using `mflag(1)`
53* `d`: Delete the currently selected email
54* `r`: Compose a reply for the selected email
55
56## License
57
58This program is free software: you can redistribute it and/or modify it
59under the terms of the GNU General Public License as published by the
60Free Software Foundation, either version 3 of the License, or (at your
61option) any later version.
62
63This program is distributed in the hope that it will be useful, but
64WITHOUT ANY WARRANTY; without even the implied warranty of
65MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
66Public License for more details.
67
68You should have received a copy of the GNU General Public License along
69with this program. If not, see <https://www.gnu.org/licenses/>.
70
71[mblaze github]: https://github.com/leahneukirchen/mblaze
72[tcell github]: https://github.com/gdamore/tcell