You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/docs/notifications.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,9 @@ neomd can fire desktop notifications via `notify-send` (or any compatible CLI) w
7
7
8
8
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.
9
9
10
+
How it looks:
11
+

12
+
10
13
## Quick start
11
14
12
15
1. Make sure `notify-send` is installed and a notification daemon is running (`mako`, `dunst`, `swaync`, …). On Hyprland with mako:
Copy file name to clipboardExpand all lines: docs/content/docs/screener.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,7 @@ spammy@ssp.sh # … except this one address, which is blocked
32
32
33
33
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.
34
34
35
+
35
36
## Auto-screen and background sync
36
37
37
38
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
96
97
97
98
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.
98
99
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:
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 |
|`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
+
99
123
## Colon commands
100
124
101
125
Press `:` to open the command line. Tab cycles through completions; Enter runs the command.
0 commit comments