Focus filters
macOS Focus Filters let a Focus tell Magimail which of its accounts matter right now. Magimail vends
one from an App Intents extension. The intent, the state file and the distributed notification it
posts, the picker's constraints, the packaging and the worktree trap are all shared and in
../shared/focus-filters.md. The filter silences an excluded
account and drops it from the surfaces that pull attention.
What a Focus does
An account excluded by the active filter is always silenced and dropped from the surfaces whose job is to pull attention. It stays on the surfaces you navigate with, every time.
| Surface | Excluded account |
|---|---|
| Notifications | silenced |
| Dock badge | not counted |
| Menu bar popover | not listed |
| Widgets | not listed |
| Toolbar switcher | listed, dimmed dot, still selectable |
| Accounts menu | listed, still selectable |
Prevent Access to Silenced Accounts changes only the last two rows: the account is greyed out and
cannot be selected. It stays listed either way.
In code that is two lists, not one. getFocusedAccounts() holds what the filter includes, and feeds
the glanceable surfaces. getVisibleAccounts() holds every account, always, and feeds the switcher
and the menu. Focus state reaches the navigation surfaces as emphasis instead, through
isExcludedByFocus and isDisabledByFocus.
Why an excluded account is never removed from the switcher, and why the excluded state is a dimmed
dot rather than grey text, are in ../shared/focus-filters.md.