Skip to content

Add end-of-timer reminder overlay and caffeine mode, release 0.1.3 - #7

Merged
0nahid merged 3 commits into
mainfrom
claude/overlay-caffeine-0mvbaj
Oct 18, 2026
Merged

0nahid merged 3 commits into
mainfrom
claude/overlay-caffeine-0mvbaj

Conversation

@0nahid

@0nahid 0nahid commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Requested by Nahid Hassan · project thread

Before: when a phase ended Matinee played a sound and nothing else, and the Mac could go to sleep in the middle of a focus session.

After: when a focus session ends, every screen is covered by a dimmed glass overlay with a reminder (Stand up, Drink water, Rest your eyes, Stretch, or your own text) and Dismiss / Start Break buttons (Esc / Return). When a break ends, it shows "Break's over" with Start Focus. A Preview button next to the reminder picker shows it immediately. A new Caffeine switch in the menu keeps the Mac and display awake while the timer runs. The version goes to 0.1.3, so merging publishes a release and installed copies update.

How: ReminderSettings (persisted in UserDefaults) picks the reminder; ReminderOverlay puts a borderless key-capable NSPanel at screen-saver level on each screen (with hidesOnDeactivate off, and the app activated before the main-screen panel is made key) hosting ReminderOverlayView. FocusTimer gains an onPhaseFinished callback wired up in MatineeApp. CaffeineMode follows timer.isRunning via observation tracking and holds a PreventUserIdleDisplaySleep IOKit assertion only while enabled and running, so it's released on pause, stop, finish or quit.

To test on a Mac: click Preview, try Esc and Return, and check it covers every display; set focus to 1 min and let it run out; turn on Caffeine, start a timer and check pmset -g assertions lists Matinee, then pause and check it's gone.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SxiPF75k29ZLVHYLDSZuFz

When a focus session ends, a full-screen glass overlay shows a reminder
(stand up, drink water, rest your eyes, stretch, or custom text) with
Dismiss and Start Break buttons; when a break ends it offers Start Focus.
Caffeine mode holds an IOKit power assertion so the Mac and display stay
awake while the timer runs, released when it pauses, stops or finishes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SxiPF75k29ZLVHYLDSZuFz
@0nahid 0nahid self-assigned this Oct 18, 2026
@0nahid
0nahid marked this pull request as ready for review October 18, 2026 21:47
…0.1.3

The overlay panels no longer hide when Matinee loses focus, the app is
activated before a panel is made key so Esc and Return reach it, and the
backdrop is dimmed and drawn dark so the text stays readable on any
wallpaper. A Preview button shows the chosen reminder right away.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SxiPF75k29ZLVHYLDSZuFz
@0nahid 0nahid changed the title Add end-of-timer reminder overlay and caffeine mode Add end-of-timer reminder overlay and caffeine mode, release 0.1.3 Oct 18, 2026
@0nahid 0nahid mentioned this pull request Oct 18, 2026
@0nahid
0nahid merged commit 03a04a0 into main Oct 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants