- C 70.4%
- Shell 23.8%
- Makefile 5.8%
| mblaze | ||
| xrxs | ||
| .gitignore | ||
| .mailmap | ||
| build.sh | ||
| config | ||
| font.uf2 | ||
| lesskey | ||
| LICENSE | ||
| mkfile | ||
| README.md | ||
| screenshot.png | ||
| taro-reader | ||
| taro.c | ||
| taro.desktop | ||
| taro.svg | ||
| taro.tal | ||
taro
mblaze frontend in uxn and xrxs
build and install
- Install and configure mblaze (as well as probably mbsync and msmtp)
- Install uxn and plan9port
- Edit config and probably the
mhandlefunction in taro-reader (see next section) - Run build.sh
- Copy
taro-ctlto your path
configuration
taro-ctl
The config file is processed into a bunch of constants for the backend by the build script. Adjust them to your needs:
MBOX_ROOT: the directory where your maildirs are.TARO_LIB: the directory where your runtime files (taro-lsrom,taro-readerscript,.themeandfont.icnfiles, etc.) will be installed to, as well as a copy ofuxnemuTARO_DOWNLOADS: directory where attachments are downloaded to.UXN_EMU: name theuxnemuwill be copied to - this is a hack to set the_NET_WM_CLASS.TARO_ENV: environment variables as you type them in the terminal, that you can use for theREADER_PROGandCOMPOSE_PROGcommandsREADER_PROG: command to spawn to read mail - by default it calls thestterminal with some environment variables and options set, and runstaro-readerCOMPOSE_PROG: command to spawn to write mail - by default it calls thestterminal with some environment variables and options set and runsmcomfrommblaze
taro-ls
The .theme file format is supported - it can be crafted with nasu and should be located at TARO_LIB/.theme. The following details the purpose (and default) of each color:
- Background and text color when hilighted (black)
- Foreground/text color (whitish gray)
- Hilight, scrollbar, button hover color (turquoise)
- Alternate color (medium gray)
The default font.uf2 included with the program is a modified Geneva font. Any uf2 font will work, but if it isn't monospace the mscan lines in the mailbox won't line up.
usage
taro is a multi-window MUA with three types of windows:
taro.rom: the mainuxnwindow where you will check your inbox and organize your mailtaro-reader: a terminal window that runs a shell script to read mailtaro-compose: a terminal window runningmcom
taro.rom is a display layer that simply calls out to the taro.9p service for all its operations. taro.9p can also be run by itself to be manipulated programatically or by an assistive technology.
The 9p filesystem is exposed at $TARO_LIB/n.
mail management
The taro.rom window has three main areas:
- Mailboxes: it's assumed by taro that your inbox is named INBOX, and it exists; it's put first, and the rest are shown in alphabetical order
- Mail List: your mail in the default scan-format given in your mblaze-profile is shown here
- Actions: button list and initially hidden text input area
Left clicking on a mailbox switches to that mailbox. Left-clicking on mail selects that mail. You can do multiselect on mail by holding shift when clicking. Right-clicking on mail opens that mail (only the first in the selection if 2 or more are selected). You can also use the Enter key to open mail.
The buttons on the bottom are as follows (with equivalent keybinds):
- compose [
n]: open a compose window to write new mail - refresh [
r]: refresh the current mailbox, removing search query - mark all read [
.]: this - search [
/]: search mail with a regex (only headers, case insensitive) - refile [
m]: move mail to the given folder - trash [
Del]: move mail to the Trash folder, unless it's already in the Trash, in which case it's deleted
The search button will be hilighted while a search query is active.
There is a resize handle in the bottom right - clicking and dragging it resizes the window.
Additional keybindings:
[shift+]tab: change mailboxesup/down: navigate through mailshift+<up|down>: naive multiselectalt+<up|down|left|right>: resize
reading mail
Reading mail is currently done in a terminal that pipes the mail content into less and gives some keybind options:
q: quitr: replyf: forwardo: open an attachment - you are presented with the MIME structure of the mail with parts numbered and prompted to select a number to open. The programs to open each mimetype are in the aforementionedhandlefunction of the script.s: save an attachment - likeobut selecting a MIME part saves it to the folderTARO_DOWNLOADSinconfig.cr
The attachment actions loop until you enter nothing or a non-numeric value. The whole script loops until you quit.
writing mail
Writing mail is currently done by opening a terminal and calling mcom, which lets you compose in your EDITOR of choice and prompts for additional action.
crypto
If you try to decrypt/sign with either pinenetry-tty or pinentry-curses, GPG will attach it to the stdio of taro.9p, not the terminal window where you are viewing/composing mail. Use a graphical pinentry program instead.
what it doesn't do
- manage your contacts (there are other programs for this)
- manage your calendar (and that)
- add/remove mailboxes (how many times a year do you do this?)
9p service
The 9p service exposes the following files:
ctl: write-only ctl file for receiving commandsboxes: list of mailboxes- `mbox': contents of the selected mailbox
The ctl file accepts the following commands:
mbox BOX: switch to the mailboxBOX(clears search query)search REGEX: apply the search queryREGEXrefile START:END DEST: move the mail denoted by the range to the mailbox DESTtrash START:END: move the mail denoted by the range to the trash, or delete it forever if the current mailbox isTrashmarkread: mark all mail in the current mailbox as readcompose: open a terminal and compose a new mail withmcomread MMSG: open a terminal and read the mail denoted byMMSGintaro-reader
license
Taro is distributed under the MIT license. Use it however, just give credit.
