Commit Graph
2 Commits
Author SHA1 Message Date
skkeyeandClaude Opus 5.5 49e14b820a Add paid pomodoro breaks
Some jobs pay for breaks, so a pomodoro break shouldn't take time off
the workday. By default (new setting `paid_breaks`, in [reminders]), b
on the Tracker, zb anywhere or :break starts a pomodoro break WITHOUT
pausing the shift: the break stays in your worked time and the data
file isn't touched. b (or s) brings you back to focus. With the setting
off, b pauses the shift like p. p and e always stop the clock.

For the rhythm, a paid break still counts as a break: reminders::PaidBreaks
keeps them in memory and pomodoro() cuts them out of the focus stretches,
the same way as a pause. Stopping the shift ends a paid break, and
closing the work day forgets them.

The Tracker shows "on a paid break" and the paid break's progress, and
the nudges name the right key (b or p/s).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 00:06:26 -04:00
skkeyeandClaude Opus 5.5 7c8a02275e Add the UI foundation: vim keymap, widgets and the component contract
- keymap: every key sequence in vim notation (gg, yy, <C-a>,
  <Space>s), with counts (5j), per-screen overrides and which-key hints,
  all from the same tables.
- Component: the one trait for screens and popups. They only look at
  the data through a Context and answer with Actions.
- Action: everything a screen can ask the app to do.
- widgets: big digits, buttons, a day timeline, a heatmap, a text field.
- ui/mod.rs: tabs, status line and the which-key popup; terminal.rs sets
  the terminal up (and restores it after a crash).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:22 -04:00