12 Commits
Author SHA1 Message Date
tgrosinger 194029d713 End reading-mode breaks only on input
Breaks started from the menu in reading mode used to end on
their own once the due break's length passed, so work started
counting before the user was back. They now last until input,
which makes them identical to an ordinary idle_start, so the
reading_break event and its cap logic are gone.
2026-11-05 12:27:44 -08:00
tgrosinger 62266e366e Log idle_end in reading mode when the log is empty
After skip_long empties the log, reading mode dropped every
idle_end because none followed a break, so the timer never
got a start point and stayed frozen at full intervals.
2026-11-05 12:14:00 -08:00
tgrosinger f6fd40ea84 Add a Snooze menu item for overdue breaks
Snooze hides overdue breaks for a configurable time (default 5m),
including any break that comes due during it. Snoozing again
restarts it, taking a break ends it, and it is ignored when no
break is due. Timers keep counting, so the true overdue amount
shows once it ends. The widget shows the snooze countdown with
the overdue amount, the snoozed class, and a snoozed alt for
format-icons.

Also fix README examples: the overdue display never goes below
0:00, the long interval example was 45 seconds, and the config
example had a trailing comma.
2026-11-04 22:09:21 -08:00
tgrosinger c526ec8a2e Add reading mode and a Start Break menu item
Reading mode (Toggle Reading Mode) ignores automatic idle so
hands-off reading counts as work. Start Break begins a long break
if one is due, otherwise a short one; input ends it, and in
reading mode it also ends once the due break's length has passed.
Sleep and wake get their own break-event commands so they are
still logged in reading mode.

Rewriting the log replay also fixes two existing bugs: it looked
up the previous event in the full event list while iterating only
idle events, so pause events made it compare against the wrong
event, and current work time was not counted when the last log
entry was a pause event.
2026-11-04 21:55:25 -08:00
tgrosinger 2b16a50e37 Add option to pause timers 2025-12-07 20:06:05 -08:00
tgrosinger 8a9ccd1a65 Add menu option to skip long break 2025-12-07 20:06:05 -08:00
tgrosinger 8deb47cc2c Fix small bugs in break-event 2025-12-07 20:06:05 -08:00
tgrosinger 28aeabcca3 Add type hints 2025-12-07 20:06:05 -08:00
tgrosinger f40b414344 Remove unnecessary idle duration from config 2025-12-07 20:06:05 -08:00
tgrosinger 5cb96f37bb Improve log trimming to use index instead of timestamp 2025-12-07 20:06:05 -08:00
tgrosinger d6bfd0c7c4 Convert to using duration strings in config 2025-12-07 20:06:05 -08:00
tgrosinger b89fc06f06 First untested attempt from AI 2025-12-07 20:06:05 -08:00