improve readme and mread

This commit is contained in:
Iris Lightshard 2023-03-23 16:23:30 -06:00
parent a795631f8a
commit d6b0ec63c8
Signed by: nilix
GPG key ID: 3B7FBC22144E6398
2 changed files with 35 additions and 4 deletions

View file

@ -10,17 +10,48 @@
4. Run [build.sh](./build.sh)
5. Copy `taro-ctl` to your path
## usage
The `taro-ls` window has three main areas:
- Mailboxes: it's assumed by taro-ctrl 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 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
- mark all read ['.']: this
- search [`/`]: search mail with a regex (only headers, case sensitive)
- 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
There is a resize handle in the bottom right - clicking and dragging it resizes the window.
If you try to decrypt/sign with either `pinenetry-tty` or `pinentry-curses`, GPG will attach it to the stdio of `taro-ctl`, not the terminal window where you are viewing/composing mail. Use a graphical pinentry program instead.
## TODO
- Make `mread` more user friendly
- Implement keybinds for changing mailbox, selecting/scrolling mail, resizing
- Flag/star messages? I never use this fature if IMAP...
- Real `uxn` implementaions of reader/compose windows? Probably overkill
## messages
Messages are in the format `[1][2:3][...]`:
- byte 1 is the message type
- bytes 2 and 3 are the length of the message, in bytes
- bytes 4 and beyond are the message itself (payload) - won't be present if the length is 0
Even messages go from `taro-ctl` to the `uxn` windows.
- `0`: mailbox list
- `2`: list mail in current mailbox (or search results)
- `0`: mailbox list (truncated to 4k - this should be enough)
- `2`: list mail in current mailbox (or search results) (truncated to 32k - if you need more, use search)
Odd messages go from the `uxn` windows to `taro-ctl`.
@ -30,4 +61,4 @@ Odd messages go from the `uxn` windows to `taro-ctl`.
- `7`: refile mail; payload is the beginning and end of the mmsg range in u16, and then the mailbox name
- `9`: trash mail; payload is the beginning and end of the mmsg range in u16
- `11`: read mail; payload is a single u16 message number in the current sequence
- `13`: compose mail; no payload
- `13`: compose mail; no payload

2
mread
View file

@ -21,8 +21,8 @@ mhandle() {
_mread() {
local META
local this=$(mseq $@)
mflag -S ${this}
local this=$(mseq $@)
while true; do
mshow ${this}