Add session-owned Pomodoro cycles and controls

Add configurable work and break intervals, pause/resume, CLI and activity-popup controls, and silent completion alerts. Use CLOCK_BOOTTIME deadlines so running timers include suspend without consuming paused time.

Refs #31
This commit is contained in:
Samuel Onoja committed 2026-10-20 15:19:55 +01:00
1 parent 53ba599918
commit 2c9bb85f2c
18 files changed
+1209 -16

No files matched your search

+6 -1
View File
@@ -24,6 +24,11 @@ pub enum Command {
#[command(subcommand)]
action: LauncherAction,
},
/// Control the session’s work and break timer.
Pomodoro {
#[command(subcommand)]
action: crate::pomodoro::Action,
},
/// Publish bounded activity data owned by the invoking shell.
Activity {
#[command(subcommand)]
@@ -248,7 +253,7 @@ pub enum LauncherAction {
impl Command {
pub fn ipc(&self) -> Option<(&'static str, Value)> {
let (command, args) = match self {
Self::Activity { .. } | Self::Run { .. } => return None,
Self::Pomodoro { .. } | Self::Activity { .. } | Self::Run { .. } => return None,
Self::Launcher {
action: LauncherAction::Toggle,
} => ("toggle-launcher", json!({})),