Configuration¶
The settings view¶
Most of what follows can be changed without leaving the
client: :settings opens a tabbed view over accounts and
the daily-driver preferences, walked through step by step in
the settings view. The files below remain the
source of truth; the settings view is a well-mannered editor
of them, nothing more.
This documents the configuration Antiphon understands today;
keys arrive here in the same commit that makes them real.
Everything lives under $XDG_CONFIG_HOME/antiphon (defaulting
to ~/.config/antiphon on Linux and macOS alike):
config.toml global settings
accounts/*.toml one file per account
local.toml per-machine overrides, loaded last
signatures/<name> signature files referenced by name
templates/<name> compose templates referenced by name
Templates named new and reply, when present, shape fresh
composes and replies automatically; :template <name> opens a
fresh compose from any named template. Tokens {from},
{name}, {date} and {quoted} expand; unknown braces pass
through.
Parsing is strict: an unknown key fails with the file, the
line, and the nearest valid key. Empty or relative XDG
variables are ignored per the specification. No secrets belong
in any of these files; passwords come from password_cmd.
local.toml holds the same keys as config.toml and wins
where both set a value; defects in it are reported against
local.toml.
config.toml¶
[ui]
theme = "vespers" # or a gallery name, see below
reading_pane = "below" # below | right | off
date_format = "%Y-%m-%d %H:%M" # chrono strftime
composer = "embedded" # embedded terminal pane for the
# editor, or "suspend" to hand the
# whole screen over
list_rows = 7 # message rows when the reading
# pane is below; with "right" or
# "off" the list fills the height
# and this key does not apply
sidebar_width = 16 # columns, clamped to 10-40
headers = ["from", "to", "date", "subject"]
# headers the pager and reading
# pane show, in this order; any
# RFC 5322 name is legal, matched
# case-insensitively (x-mailer,
# message-id, ...)
[vault]
backend = "auto" # auto | luks2 | apfs | gocryptfs
passphrase_cmd = "pass show antiphon/vault" # unlock secret
idle_lock_minutes = 0 # seal after N client-less
# minutes; 0 = never
unlock = ["touchid", "yubikey", "passphrase"]
[sync]
interval_minutes = 2 # periodic daemon sync; 0 disables
idle = false # IMAP IDLE push on each INBOX
[daemon]
autostart = true # client starts antiphond if absent
[notifications]
enabled = true
[keys]
# action = "key sequence"; every action is rebindable
half-page-down = "ctrl-d"
sync = ",s"
[[saved_searches]]
name = "unread"
query = "tag:unread"
Gallery themes: vespers (default), kanagawa-wave,
catppuccin-mocha, gruvbox-dark, tokyo-night, nord,
rose-pine. Truecolor terminal required.
In the message list the rendered date_format splits at its
last space: the left part wears the theme's date colour, the
right its time colour, whatever strftime pattern you set; a
single-token format is coloured entirely as a date.
The vault seals the store at rest (see the vault):
antiphon vault create sets it up, passphrase_cmd supplies
the unlock secret to antiphond, and an absent vault leaves the
store an ordinary directory. unlock states a preference
order; of the three methods, passphrase is the one that
works today, so list it last and the others are tried first
once they exist.
Compose behaviour (:sign overrides, templates, drafts) is
covered with the rest of composing in
templates and signatures and the
writing guide.