summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-14 13:46:33 +0200
committerDanilo M. <danix@danix.xyz>2026-09-14 13:46:33 +0200
commit9fdac493c9a6e35f36dc45ff0e13583ddf88605e (patch)
treeff561fba18bd543306b3166c8eb3591cb1d220e3 /README.md
parentd714483b6027425923340d1bcfa0263b8e7ac0bc (diff)
downloadqtmaildir-9fdac493c9a6e35f36dc45ff0e13583ddf88605e.tar.gz
qtmaildir-9fdac493c9a6e35f36dc45ff0e13583ddf88605e.zip
feat: a Not spam action
Backlog item 201. A message in the Spam view had no way back out: spam is one-way and Restore is hidden outside the trash. not_spam moves each message to the folder its moved-from: origin names, falling back to the account's inbox (reported) for provider-caught mail with no origin. The action is labelled "Not junk" on the free Alt+J: every letter of "Not spam" is taken in the Message menu, and Alt+P (Re&ply) and Alt+S (Mark &spam, frozen) are unavailable. restoreResolvedMessages() and the undelete_thread branch are parameterised with the cleared tag and undo description rather than copied, so Delete and Not spam cannot drift.
Diffstat (limited to 'README.md')
-rw-r--r--README.md16
1 files changed, 10 insertions, 6 deletions
diff --git a/README.md b/README.md
index b21c445..62bac67 100644
--- a/README.md
+++ b/README.md
@@ -595,9 +595,13 @@ From: account re-seeds it only until you pick one yourself.
Archive, mark-important and toggle-unread write fixed tags. Delete and spam
move the file instead: each adds a fixed tag (`deleted` or `spam`) and records
-the folder the file left in a `moved-from:<folder>` origin. For anything else,
-**Ctrl+T** opens a dialog over the selected threads: type tags to add or
-remove, separated by commas, or clear a checkbox to drop a tag already present.
+the folder the file left in a `moved-from:<folder>` origin. Restore (in the
+trash) and Not junk (in the spam folder) are their inverses: each moves the
+message back to the folder its origin names, and mail caught by a provider with
+no origin at all goes to the account's inbox, which the status line reports. For
+anything else, **Ctrl+T** opens a dialog over the selected threads: type tags to
+add or remove, separated by commas, or clear a checkbox to drop a tag already
+present.
Both fields complete against every tag in your database, which is a guard
against typing `shoppping` beside `shopping`, not a restriction: a tag that does
@@ -778,9 +782,9 @@ Defaults, all rebindable through `[keys]`:
| `Ctrl+Q` | `quit` | Quit |
Every action in this table carries a default binding, and every one appears in
-a menu. Six actions carry none, because a chord for them would be arbitrary:
-Check for stranded spam, Empty trash, Delete permanently, Empty spam, Edit
-draft and Save message. They are reachable from the menus, and the shortcut
+a menu. Seven actions carry none, because a chord for them would be arbitrary:
+Check for stranded spam, Empty trash, Delete permanently, Empty spam, Not junk,
+Edit draft and Save message. They are reachable from the menus, and the shortcut
reference prints them as unbound.
**Help > Keyboard shortcuts** lists the current bindings, generated from the
actions themselves, so it shows your overrides rather than these defaults.