TimeOn app icon

TimeOn.

Breaks you can't ignore.

A tiny menu bar app for macOS that runs your work / break cycle and, when the timer hits zero, blacks out every connected display until the break is really over.

v1.0.2 · macOS 26.3+ · Universal (arm64 · x86_64) · Free

A pomodoro that doesn't ask permission.

Most timers ping. TimeOn covers every pixel on every screen with an unkillable black overlay. Your break stops being optional.

When the timer hits zero,
your screen turns into this.

No notifications. No "5 more minutes". One borderless black window per display, above the Dock, the menu bar, the screen saver, and notifications.

01:54 -03:06

Menu bar only

Lives as ⦿ 12m in the menu bar. No Dock icon. No Cmd-Tab presence. ⏸ 12m while paused.

Configurable cycle

Work blocks of 25 / 30 / 45 / 50 / 60 / 75 / 90 / 120 min. Breaks of 1 / 5 / 10 / 15 / 20 / 30 / 45 min.

Multi-display blocker

One borderless NSWindow per NSScreen at kCGMaximumWindowLevelKey. Rebuilt on display changes, wake, screensaver and Space switches.

Pause & resume

Pause preserves the exact remaining time to the second. The menu bar icon switches to so you know.

Bypass apps

Pick any running app from the system. If it's in the foreground when a break would trigger, the break is skipped and a fresh work cycle starts.

Test Break (10 s)

A one-tap 10-second break to verify the blocker works on your hardware before relying on it.

Smooth progress

Drawn manually with TimelineView(.animation) at 60 fps. The bar grows continuously instead of jumping every second.

Skip Break, optional

Show or hide the Skip button from settings. Off by default if you want zero outs.

Hardened.

A break overlay you can dismiss isn't a break. TimeOn keeps the curtain down.

  • Maximum window level. The overlay sits above the Dock, menu bar, screen saver and notifications.
  • Hostile presentation options. Hide Dock, hide menu bar, disable Apple menu, disable process switching, disable Force Quit, disable session termination, disable Hide.
  • Key event swallowing. keyDown, performKeyEquivalent and cancelOperation (Esc) are all absorbed.
  • 0.5s watchdog. Re-applies presentation options, window level, visibility and re-activates the app if it loses focus.
  • Wake / Space / screensaver observers. Reinforces the overlay on every display change, wake event and active-space change.
  • App Sandbox off. Required so the blocker can use the maximum window level and survive standard quit shortcuts during a break.
60fps progress bar
0.5swatchdog interval
displays covered
27unit tests

Get TimeOn.

macOS 26.3 or later. Universal binary. Signed with an Apple Development identity — first launch needs a right-click → Open to clear Gatekeeper.

Free · MIT-friendly · Built with SwiftUI & AppKit.