Skip to content

Commit 5ef4139

Browse files
committed
update notification
1 parent d62821f commit 5ef4139

3 files changed

Lines changed: 27 additions & 0 deletions

File tree

docs/content/docs/notifications.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ neomd can fire desktop notifications via `notify-send` (or any compatible CLI) w
77

88
Notifications fire from the **TUI only**. The headless daemon (`neomd --headless`) screens mail silently so notifications don't end up on a NAS where no one sees them.
99

10+
How it looks:
11+
![notification](/images/notifictation.png)
12+
1013
## Quick start
1114

1215
1. Make sure `notify-send` is installed and a notification daemon is running (`mako`, `dunst`, `swaync`, …). On Hyprland with mako:

docs/content/docs/screener.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ spammy@ssp.sh # … except this one address, which is blocked
3232

3333
Domain entries work in every screener list (`screened_in`, `screened_out`, `feed`, `papertrail`, `spam`, `notify`). The `Di` / `Do` chord (see below) writes them for you from inside neomd.
3434

35+
3536
## Auto-screen and background sync
3637

3738
By default neomd screens your inbox automatically so you never have to press `S`:
@@ -96,6 +97,29 @@ Emails are only auto-screened while they are in the **Inbox**. Once moved to ToS
9697

9798
If emails end up in ToScreen incorrectly (e.g. screened by another device like [Termux with Android](configuration/android) with incomplete lists), use `:reset-toscreen` to move them back to Inbox where auto-screen will re-classify them.
9899

100+
## Priority Screener: Exact match over `@domain` match
101+
102+
When an incoming sender could match more than one list, neomd picks a category in two passes:
103+
104+
1. **First pass — exact email** is looked up in every list, in this priority order:
105+
`spam``screened_out``feed``papertrail``screened_in`.
106+
The first list that contains the *exact* address decides the category, and the search stops.
107+
2. **Second pass — `@domain` rules** are consulted only if the first pass found no exact match, again in the same priority order. The first list whose `@domain` entry matches decides the category.
108+
3. If neither pass matches → the sender lands in `ToScreen`.
109+
110+
This guarantees that a per-address rule **always overrides** the broader domain rule across *any* category. Two real examples:
111+
112+
| `screened_in.txt` | `screened_out.txt` | Sender | Result | Why |
113+
| ----------------- | ------------------ | --------------------- | ----------- | ------------------------------------------------------------------------------- |
114+
| `neomd.demo@ssp.sh` | `@ssp.sh` | `neomd.demo@ssp.sh` | **Inbox** | Exact match in `screened_in` (pass 1) wins over `@ssp.sh` block (pass 2) |
115+
| (empty) | `@ssp.sh` | `neomd.demo@ssp.sh` | ScreenedOut | No exact match anywhere → `@ssp.sh` in `screened_out` matches in pass 2 |
116+
| `@ssp.sh` | `spammy@ssp.sh` | `spammy@ssp.sh` | ScreenedOut | Exact match in `screened_out` (pass 1) wins over `@ssp.sh` approval (pass 2) |
117+
| `@ssp.sh` | (empty) | `random@ssp.sh` | **Inbox** | No exact match → `@ssp.sh` in `screened_in` matches in pass 2 |
118+
119+
**The mental model:** *"Add the domain to lift the whole company, then surgically block (or approve) individual addresses without restating the rule."*
120+
121+
The same two-pass logic runs for [`notify.txt`](/docs/notifications/#domain-entries) too — an exact entry there always wins over an `@domain` entry, but for the notify list this rarely matters since both produce the same outcome (a desktop notification).
122+
99123
## Colon commands
100124

101125
Press `:` to open the command line. Tab cycles through completions; Enter runs the command.
20.3 KB
Loading

0 commit comments

Comments
 (0)