core

module
v0.0.0-...-5805e45 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2026 License: GPL-3.0

Directories

Path Synopsis
api
server
Package server exposes the localhost-only HTTP API (HUMA + chi) that backs the QML UI.
Package server exposes the localhost-only HTTP API (HUMA + chi) that backs the QML UI.
cmd
dmail command
Package config loads daemon configuration from the environment.
Package config loads daemon configuration from the environment.
ent
Package errdefs defines the typed error kinds every provider must wrap its failures in.
Package errdefs defines the typed error kinds every provider must wrap its failures in.
internal
accounts
Package accounts owns account provisioning: the in-app OAuth setup guide (served over IPC to the GUI wizard, pattern borrowed from dankcalendar) and the finish step shared by the CLI and the wizard.
Package accounts owns account provisioning: the in-app OAuth setup guide (served over IPC to the GUI wizard, pattern borrowed from dankcalendar) and the finish step shared by the CLI and the wizard.
bus
Package bus is the in-process pub/sub the daemon components use to decouple state changes from their consumers: the sync engine and the op queue publish; the IPC subscription stream, the notifier layer, and the unread-counter cache subscribe.
Package bus is the in-process pub/sub the daemon components use to decouple state changes from their consumers: the sync engine and the op queue publish; the IPC subscription stream, the notifier layer, and the unread-counter cache subscribe.
contacts
Package contacts feeds the compose autocomplete from two sources: correspondents inferred from the cached mail (no permissions needed) and Google Contacts via the People API (contacts scopes + re-consent).
Package contacts feeds the compose autocomplete from two sources: correspondents inferred from the cached mail (no permissions needed) and Google Contacts via the People API (contacts scopes + re-consent).
i18n
Package i18n localizes the daemon's and CLI's user-visible strings.
Package i18n localizes the daemon's and CLI's user-visible strings.
ipc
Package ipc implements the local unix-socket control protocol used by the CLI, the QML UI, and external automation (niri/DMS keybinds).
Package ipc implements the local unix-socket control protocol used by the CLI, the QML UI, and external automation (niri/DMS keybinds).
keyring
Package keyring stores account secrets (OAuth token JSON, IMAP/SMTP passwords) in the system keyring via the Secret Service API, with fallback to the database Secret table if the keyring is unavailable.
Package keyring stores account secrets (OAuth token JSON, IMAP/SMTP passwords) in the system keyring via the Secret Service API, with fallback to the database Secret table if the keyring is unavailable.
mailmime
Package mailmime builds the plain-text MIME messages dankmail sends: threaded replies and minimal compositions.
Package mailmime builds the plain-text MIME messages dankmail sends: threaded replies and minimal compositions.
notify
Package notify sends desktop notifications over D-Bus (org.freedesktop.Notifications), with inline actions when the notification server advertises them, falling back to notify-send when the bus is unavailable.
Package notify sends desktop notifications over D-Bus (org.freedesktop.Notifications), with inline actions when the notification server advertises them, falling back to notify-send when the bus is unavailable.
oauth
Package oauth runs the OAuth 2.0 desktop (loopback) flow for Gmail accounts: it opens the consent URL in the browser, listens on a localhost redirect for the code, exchanges it, and hands the token to the keyring.
Package oauth runs the OAuth 2.0 desktop (loopback) flow for Gmail accounts: it opens the consent URL in the browser, listens on a localhost redirect for the code, exchanges it, and hands the token to the keyring.
paths
Package paths centralizes XDG base-directory locations, mirrored by quickshell/Common/Paths.qml on the UI side.
Package paths centralizes XDG base-directory locations, mirrored by quickshell/Common/Paths.qml on the UI side.
provider
Package provider defines the contract every mail backend (Gmail API, generic IMAP, ...) must satisfy.
Package provider defines the contract every mail backend (Gmail API, generic IMAP, ...) must satisfy.
provider/gmail
Package gmail implements provider.Provider over the Gmail REST API (users.threads/messages/history).
Package gmail implements provider.Provider over the Gmail REST API (users.threads/messages/history).
provider/microsoft
Package microsoft implements provider.Provider for Outlook.com / Microsoft 365 mailboxes over the Microsoft Graph API (see docs/design/microsoft-provider.md).
Package microsoft implements provider.Provider for Outlook.com / Microsoft 365 mailboxes over the Microsoft Graph API (see docs/design/microsoft-provider.md).
rules
Package rules implements action hooks: a declarative layer that expands one user action into several PendingOps before they are enqueued (e.g.
Package rules implements action hooks: a declarative layer that expands one user action into several PendingOps before they are enqueued (e.g.
settings
Package settings holds the daemon's user preferences, persisted as JSON under the XDG config dir and reloadable at runtime (IPC settings.set applies immediately; system.reload re-reads the file).
Package settings holds the daemon's user preferences, persisted as JSON under the XDG config dir and reloadable at runtime (IPC settings.set applies immediately; system.reload re-reads the file).
sync
Package sync owns the two loops at the heart of the daemon:
Package sync owns the two loops at the heart of the daemon:
Package models will hold the wire-level DTOs shared by the HTTP API and the IPC surface (thread summaries, account status, op results), kept separate from ent entities so storage can evolve without breaking the UI contract.
Package models will hold the wire-level DTOs shared by the HTTP API and the IPC surface (thread summaries, account status, op results), kept separate from ent entities so storage can evolve without breaking the UI contract.
Package repo wraps the Ent client behind domain-shaped queries and mutations, and owns database opening/migration.
Package repo wraps the Ent client behind domain-shaped queries and mutations, and owns database opening/migration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL