criew 0.0.3

Terminal-first Linux kernel patch mail workflow TUI
# CRIEW config example (minimal).
# Default config path: ~/.criew/criew-config.toml
# Starting with v0.0.1, CRIEW only supports the CRIEW naming set:
# ~/.criew, criew-config.toml, criew.db, CRIEW_B4_PATH, and CRIEW_IMAP_PROXY.
# Older Courier-era names are intentionally unsupported.
# Relative paths are resolved from the config file directory.

[storage]
# Optional runtime root, default is ~/.criew
# data_dir = "~/.criew"

# Required to customize DB location. Default: ~/.criew/db/criew.db
database = "./.criew/db/criew.db"

# Required to customize raw mail cache location. Default: ~/.criew/mail/raw
# raw_mail_dir = "./.criew/mail/raw"

# Required to customize patch file location. Default: ~/.criew/patches
patch_dir = "./.criew/patches"

[logging]
# Required to customize log directory. Default: ~/.criew/logs
dir = "./.criew/logs"
filter = "info"

[b4]
# Optional. When omitted, CRIEW tries CRIEW_B4_PATH, ./vendor/b4/b4.sh,
# an embedded fallback under <data_dir>/vendor/b4/b4.sh, and then b4 in PATH.
# path = "./vendor/b4/b4.sh"

[source]
# Optional default lore mailbox used by CLI `sync` when no mailbox is passed.
# Default: linux-kernel
# Historical compatibility alias: [imap].mailbox still maps to the same value,
# but new config should prefer [source].mailbox.
# mailbox = "linux-kernel"

# Optional lore base URL.
# lore_base_url = "https://lore.kernel.org"

[imap]
# Optional self email address for matching your own mail.
# When `imap.user` is omitted, CRIEW also uses this as the IMAP login identity.
# email = "you@example.com"

# Optional but required for `My Inbox` / real IMAP sync.
# Supports legacy aliases: imapuser / imappass / imapserver / imapserverport / imapencryption
# `user` is the IMAP login account. Gmail usually expects the full email address here.
# If omitted, CRIEW falls back to `imap.email`.
# user = "you@example.com"
# pass = "imap-pass"
# server = "imap.example.com"
# serverport = 993
# encryption = "ssl" # Gmail IMAP 993 implicit TLS/SSL; "tls" is accepted as the same mode
# proxy = "socks5://10.0.2.2:7890" # Optional. Supports http://, socks5://, socks5h://
# When omitted, CRIEW falls back to CRIEW_IMAP_PROXY, ALL_PROXY, HTTPS_PROXY, then HTTP_PROXY.

[ui]
# Optional. Whether to auto-sync enabled subscriptions after TUI starts.
# Default: true
# startup_sync = true

# Optional. Main-page navigation scheme.
# Supported:
#   "default" (j/l focus, i/k move)
#   "vim" (h/l focus, j/k move, gg/G jump, qq quit)
#   "custom" (ui.keymap_base plus ui.custom_keymap overrides)
# Default: "default"
# keymap = "default"

# Optional. Base preset used when keymap = "custom".
# Supported: "default", "vim"
# Default: inferred from ui.keymap when omitted
# keymap_base = "default"

# Optional. Custom main-page bindings.
# Each value is an array of 1-2 printable keys.
# [ui.custom_keymap]
# focus_prev = ["j"]
# focus_next = ["l"]
# move_up = ["i"]
# move_down = ["k"]
# jump_top = ["g", "g"]
# jump_bottom = ["G"]
# quick_quit = ["q", "q"]

# Optional. Seconds between `My Inbox` background auto-sync runs while TUI stays open.
# Must be greater than 0. Default: 30
# inbox_auto_sync_interval_secs = 30

[kernel]
# Optional. Single kernel tree root path shown in left pane tree view (Tab toggles).
# tree = "/path/to/linux"

# Optional. Multiple kernel tree roots; each appears as a top-level root in tree view.
# trees = ["/path/to/linux", "/path/to/linux-next"]