- Swift 100%
Crash report from 01:10: OverlayView traps when body re-evaluates after endsAt has passed (dismissal lags up to a tick) — ClosedRange requires lowerBound <= upperBound. Clamp the timer interval to now. Screenshot updated to the menu-bar-free overlay. |
||
|---|---|---|
| docs | ||
| Horizon | ||
| .gitignore | ||
| project.yml | ||
| README.md | ||
Horizon
macOS menu bar app that periodically reminds you to sit up straight and look at the horizon. Reminders appear as a full-screen overlay with a countdown on every display, skippable with Esc or the Skip button. Every reminder (completed or skipped) is logged locally and browsable in a stats window.
The overlay backdrop is your own wallpaper, blurred — including macOS aerial wallpapers, resolved from the wallpaper store.
Build
Requires Xcode and XcodeGen (brew install xcodegen).
xcodegen generate
xcodebuild -project Horizon.xcodeproj -scheme Horizon -configuration Debug \
-derivedDataPath build build
open build/Build/Products/Debug/Horizon.app
project.yml is the source of truth; Horizon.xcodeproj is generated and git-ignored.
Usage
Horizon lives in the menu bar (no Dock icon) and shows the minutes until the next break. The menu offers: start a break now, pause for an hour or until resumed, stats, settings, quit.
Settings: reminder interval (10–60 min, default 30), countdown duration (10–120 s, default 30), sound, launch at login. Debug builds add a 10-second interval option for testing.
Events are stored in ~/Library/Application Support/Horizon/events.json. The schedule resets on wake and screen unlock so a break never fires the moment you come back.
