# `apps`

Installed apps, from the desktop entries in every `applications/`
directory (`$XDG_DATA_HOME`, then `$XDG_DATA_DIRS`; `NoDisplay`,
`Hidden`, `OnlyShowIn`/`NotShowIn` and `TryExec` honoured), watched
live.

| Field | Type | |
| --- | --- | --- |
| `all` | `[App]` | Every installed app, keyed by `id`, by name. |

| Method | |
| --- | --- |
| `fn search(query: text) -> Async<[Hit]>` | Fuzzy match of `query` (nucleo) against the apps' names, then their keywords and generic names, plus frecency (how often and how lately each was launched); best first. An empty query lists every app, the most used first. Runs only when asked: `let hits = apps.search(query)` keeps its last result while searching. |
