diff options
| author | Igor Soarez <igor@soarez.org> | 2026-10-19 19:30:03 +0300 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-10-19 19:30:03 +0300 |
| commit | fed066bc3908d18ede5490130975203a56c48fc2 (patch) | |
| tree | 17ecccec1a1b5669e1868a0e169f263bdee53c73 /crates/dinggerd/src/main.rs | |
| parent | 7081a103443bafa28d902529d502a89c2dccb79a (diff) | |
menu bar: herdr-style colored state glyphs; tmux segment before the clock
the design panel's monochrome template rendering made every row look
alike; restore herdr's agent-panel visual language - green ready, yellow
working, red blocked, filled when unseen in the queue. the tmux segment
moves left of the clock so it is visible at a glance; the status item
logs what it observes for diagnosis.
Diffstat (limited to 'crates/dinggerd/src/main.rs')
| -rw-r--r-- | crates/dinggerd/src/main.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/dinggerd/src/main.rs b/crates/dinggerd/src/main.rs index 4c8521c..61d9c15 100644 --- a/crates/dinggerd/src/main.rs +++ b/crates/dinggerd/src/main.rs @@ -1,5 +1,7 @@ //! dingger: agent state watching for tmux panes. +mod hooks; +mod integrations; mod manifest_update; mod notify; mod tmux; @@ -39,6 +41,11 @@ enum Command { /// Name of the tmux client that clicked, passed as #{client_name}. client: Option<String>, }, + /// Install agent integrations (hook extensions that report state). + Install { + /// Agent to install the integration for. + agent: String, + }, } #[derive(Subcommand)] @@ -59,6 +66,10 @@ fn main() { interval_secs, no_sounds, } => { + if let Err(err) = hooks::spawn_listener() { + eprintln!("dingger: {err}"); + std::process::exit(1); + } let mut watcher = watcher::Watcher::new(interval_secs, !no_sounds); if let Err(err) = watcher.run() { eprintln!("dingger: {err}"); @@ -85,6 +96,12 @@ fn main() { std::process::exit(1); } } + Command::Install { agent } => { + if let Err(err) = integrations::install(&agent) { + eprintln!("dingger: {err}"); + std::process::exit(1); + } + } } } |
