Skip to content

feat: add full-screen break screen overlay - #511

Open
ArashZich wants to merge 1 commit into
Splode:mainfrom
ArashZich:feat/fullscreen-break-screen
Open

ArashZich wants to merge 1 commit into
Splode:mainfrom
ArashZich:feat/fullscreen-break-screen

Conversation

@ArashZich

Copy link
Copy Markdown

Summary

This pull request introduces an opt-in full-screen ambient break overlay ("Break Shield") during break rounds (short-break and long-break), inspired by break screen experiences like GNOME Pomodoro.

When enabled, it gently covers the screen during breaks to encourage stepping away from the monitor, while remaining completely unobtrusive and easy to dismiss if needed.


What's Changed

  • Settings Toggle: Added an opt-in toggle under Settings → Timer (fullscreen_break_shield, defaults to disabled).
  • Ambient Break Screen (/break):
    • Full-screen view matching the user's active theme palette and Mona Sans typography.
    • Displays remaining break time, progress ring, round indicator, and subtle ambient breathing glow.
    • Includes mindfulness prompt ("Time to step away and recharge").
  • Controls & Interactions:
    • Pause / Resume: Pause or resume the break timer directly from the overlay.
    • Skip Break: Directly advance to the next round if desired.
    • Dismiss / Unlock: Press Esc or click Unlock to close the overlay at any time without stopping or resetting the running break timer.
    • Auto-Dismiss: Automatically closes as soon as the break ends and the next round begins, or when the timer is reset.
  • Backend & Database:
    • Added clean SQLite migration (MIGRATION_7) for schema v7 to persist the preference.
    • Declared window capabilities and permissions in Tauri v2 (capabilities/default.json).
  • Localization: Added translation strings across all 8 supported languages (en, de, es, fr, ja, pt, tr, zh).
  • Changelog: Updated CHANGELOG.md under [Unreleased].

Verification

  • Rust unit tests: cargo test passes cleanly (all 88 tests pass).
  • Frontend checks: npm run check passes with 0 errors and 0 warnings.
  • Production build: npm run build completes successfully.
  • Code style: Prettier / formatting checks verified.
  • Manual verification: Built and tested locally on macOS (packaged .dmg). Tested toggling the setting, break transitions, timer pause/resume/skip, and Esc dismissal.

- Add fullscreen_break_shield setting in SQLite (migration 7) and Settings -> Timer
- Add full-screen /break route displaying progress dial, timer, and mindfulness prompt
- Support dismissing screen with Esc or Unlock button without interrupting the break timer
- Support skipping break directly from the overlay
- Automatically dismiss overlay when transitioning back to focus
- Add localized strings for all supported locales
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.

1 participant