Skip to content

faesel/icare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘οΈ iCare

πŸ–₯️ A dead-simple, no-frills desktop blink reminder. Nothing fancy β€” just a tiny timer that tells you to blink.

No accounts. No cloud sync. No analytics. No bloat. Just a small always-on-top widget with a retro seven-segment countdown. When it hits zero, it flashes red β€” you blink, take a short break, and the cycle starts again. That's it.


πŸ“Έ Screenshots

Countdown Alert Break Settings
Countdown Alert Break Settings

✨ Features

  • 🟒 Retro LCD aesthetic β€” green-phosphor seven-segment digits with ghost segments, scanlines, and a blinking colon
  • πŸ”„ Three-state cycle β€” Countdown β†’ Alert (flash red, wait for click) β†’ Break (rest your eyes) β†’ repeat
  • βš™οΈ Configurable β€” countdown duration, break duration, start on login
  • πŸ”” Alert effects β€” optional shake animation, ping sound on alert, and pong sound when break ends
  • πŸ–±οΈ System tray β€” show/hide, pause/resume, settings, quit
  • πŸ’» Cross-platform β€” macOS and Windows
  • πŸͺΆ Lightweight β€” frameless, transparent, always-on-top, no dock/taskbar clutter

πŸš€ Getting Started

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build only (no launch)
npm run build

πŸ“¦ Packaging

# 🍎 macOS (DMG)
npm run package:mac

# πŸͺŸ Windows (NSIS installer)
npm run package:win

🍎 macOS β€” "app is damaged" warning

macOS Gatekeeper blocks unsigned apps. After installing iCare from the DMG, run:

xattr -cr /Applications/iCare.app

Then open the app as normal. This only needs to be done once.


🏷️ Creating a Release

Releases are built automatically via GitHub Actions. To create a new release:

1️⃣ Tag the version

# Update the version in package.json first, then:
git add package.json
git commit -m "chore: bump version to 1.0.1"
git tag v1.0.1
git push origin main --tags

2️⃣ Create the GitHub release

Using the GitHub CLI:

gh release create v1.0.1 --title "v1.0.1" --notes "Release notes here"

Or via the GitHub web UI:

  1. Go to https://github.com/faesel/icare/releases
  2. Click Draft a new release
  3. Choose the tag you just pushed (e.g. v1.0.1)
  4. Add a title and description
  5. Click Publish release πŸŽ‰

3️⃣ What happens next

Once the release is published, the CI workflow (.github/workflows/release.yml) automatically:

  • 🍎 macOS job β€” builds on macos-latest, packages a .dmg, and uploads it to the release
  • πŸͺŸ Windows job β€” builds on windows-latest, packages an .exe NSIS installer, and uploads it to the release

Both jobs run in parallel. After a few minutes the built artefacts will appear as downloadable assets on the release page.


βš™οΈ Configuration

Click the βš™ icon on the widget (appears on hover) or right-click the tray icon β†’ Settings.

Setting Default Description
⏱️ Countdown duration 20 min How often you're reminded to blink
😌 Break duration 20s How long the rest period lasts
πŸ” Start on login Off Auto-launch iCare when you log in
πŸ“³ Shake widget On Shake the widget on alert
πŸ”” Ping sound On Audible ping when it's time to blink
πŸ”• Pong sound On Audible pong when the break ends

πŸ“„ Licence

This project is licensed under the MIT Licence.

About

πŸ‘οΈ A retro-styled desktop blink reminder β€” always-on-top countdown widget with seven-segment LCD aesthetic

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors