Skip to content

zch200/blink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blink

A lightweight macOS menu bar app that reminds you to take eye breaks. Built with Swift + AppKit + SwiftUI, no third-party dependencies.

Features

  • Menu bar countdown -- eye icon with live countdown timer always visible
  • Full-screen break overlay -- covers all screens with a dark overlay when it's time to rest; cannot be dismissed until the minimum break duration passes
  • 30-second pre-alert -- a floating notification appears before each break, so you can wrap up what you're doing
  • Postpone -- delay a break by 5 minutes (up to 2 times per cycle)
  • Configurable -- adjust work interval (15/20/25/30/45 min) and minimum break duration (15/20/30/60 sec) from the menu bar
  • Launch at login -- optional, toggle from the menu bar
  • Random tips -- each break shows a random wellness tip (look away, blink, stretch, drink water, etc.)
  • Zero dependencies -- pure Swift, ships as a single .app bundle

Requirements

  • macOS 13.0+
  • Xcode Command Line Tools (xcode-select --install)

Build

# Build and package into .app
bash scripts/build.sh

# Install
cp -r .build/release/Blink.app /Applications/

# Or run directly
open .build/release/Blink.app

Usage

Once running, Blink lives in your menu bar:

Menu bar Description
👁 18:32 Eye icon + countdown to next break

Click the icon to access settings:

  • Work interval -- how long between breaks
  • Minimum break -- shortest enforced break duration
  • Launch at login -- start automatically on boot
  • Reset timer -- restart the current countdown
  • Quit -- exit the app

Break flow

  1. Pre-alert (T-30s): A floating banner appears at the top of your main screen showing a countdown. If postpones remain, a "Postpone 5 min" button is available.
  2. Break (T-0s): All screens are covered with a dark overlay. A random tip is displayed along with a countdown. You cannot dismiss until the minimum break time passes.
  3. Dismiss: Once the timer expires, an "End break" button appears. The elapsed rest time is shown so you can choose to rest longer.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors