generated from eblume/project-template
A macOS global quick-capture popover to retire Todoist. New `heph-quickadd` crate: an always-warm eframe/egui agent that registers ⌘' (global-hotkey, Carbon — no Accessibility permission) and toggles a hidden, pre-created window visible + focused on press — never spawning on the keypress, so it's a muscle reflex. A single field live-parses Todoist-style inline syntax via the shared parser; chips show ⚑ attention · 📁 project · ⏰ do-date · ↻ recurrence as you type. Enter saves optimistically (hide now, task.create on a bg thread; a failed RPC re-shows with the text restored). #project autocomplete (Tab/↑↓/click; focus-locked so Tab completes instead of traversing). Example hints rotate, fading in only after ~2s idle. Parser lifted from heph-tui into hephd's lib (hephd::quickadd) so the TUI and the popover share one parser. hephd supervises the helper as a child in local mode on macOS (opt-in HEPH_QUICKADD=1, set by the installed launchd plist) — one service to manage, no second launch agent; the helper self-exits when orphaned so killing hephd leaves nothing behind. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
724 B
TOML
25 lines
724 B
TOML
[package]
|
|
name = "heph-quickadd"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
authors.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[dependencies]
|
|
heph-core = { path = "../heph-core" }
|
|
hephd = { path = "../hephd" }
|
|
anyhow.workspace = true
|
|
serde_json.workspace = true
|
|
chrono.workspace = true
|
|
clap.workspace = true
|
|
eframe = "0.32"
|
|
global-hotkey = "0.8"
|
|
|
|
# macOS-only: winit for the accessory-mode activation policy (no Dock icon),
|
|
# pinned to the same minor eframe carries so cargo unifies to one winit; libc
|
|
# for getppid() (orphan detection — self-exit when the supervising daemon dies).
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
winit = "0.30"
|
|
libc = "0.2"
|