Skip to content

Tomatick 0.2.0

Choose a tag to compare

@MichalAFerber MichalAFerber released this 27 Jun 01:47
· 9 commits to main since this release

Install

  1. Download Tomatick-0.2.0.dmg below.
  2. Open it and drag Tomatick onto Applications.
  3. First launch only: right-click Tomatick in Applications β†’ Open β†’ Open (the bundle is unsigned). If macOS still refuses:
    xattr -dr com.apple.quarantine /Applications/Tomatick.app

Highlights

  • One unified Settings window: a single tabbed, modal window (General, Pomodoro, Presets, Alarms, History) with Save / Cancel, replacing the old scattered menu submenus.
  • Quick-start timer presets: launch common timers (ships with "Focus" 25m and "Quick break" 5m) straight from the Start menu, fully editable in a new Presets tab.
  • Focus / Do-Not-Disturb integration: automatically turn a macOS Focus on during pomodoro work phases and off afterward, via Shortcuts you name in Settings.
  • Keep Awake: a caffeinate-style toggle in the menu (and as a hotkey action) that prevents display/system sleep while you work.
  • Global hotkey: bind a single system-wide shortcut to start a Pomodoro, start a Timer, or toggle Keep Awake.

New features

  • Custom app icon: a tomato-on-rounded-rect icon, generated by the new scripts/make_icon.py and bundled as tomatick.icns.
  • Quick-start presets with their own management UI (add / edit / delete) and inline display of each preset's label and duration.
  • Focus / DND via macOS Shortcuts: configurable "on" and "off" Shortcut names, plus a "Trigger Focus during work phases" toggle; Focus is also cleared on quit.
  • Keep Awake toggle in the menu bar, backed by the built-in caffeinate (tied to the app's lifetime so it can't be orphaned).
  • Single global hotkey (NSEvent-based) with action and key-combo pickers in Settings.
  • History tab now lists the full event log (newest first) with an event count, plus Export and Clear actions.
  • Editable Snooze minutes and Default sound preview in the General tab.
  • scripts/release.sh: one-command build + DMG packaging + GitHub release helper.

Improvements

  • Timers now keep alerting when done: instead of a one-shot sound, a finished timer loops its sound and stays in the menu with a Dismiss entry, the same way a fired alarm rings.
  • History moved out of the menu bar into the Settings β†’ History tab, and now shows all events rather than only the most recent few.
  • The menu is simpler: a single "Settings…" item and a "Keep awake" toggle replace the former nested Settings/Sound/History submenus.
  • About dialog now shows the app version.
  • Clean quit: releases the Keep Awake assertion, clears Focus, and removes the global hotkey monitor before exiting.
  • Version is now a single source of truth read from tomatick/__init__.py (used by both setup.py bundle metadata and the release script).

Fixes

  • Reopening the Settings window (and the Alarms editor) a second time no longer crashes: the PyObjC controller classes are now defined once and reused, avoiding the "overriding existing Objective-C class" error.

Setup notes

  • Focus / Do-Not-Disturb requires you to create two Shortcuts yourself (one that turns your Focus on, one that turns it off) in the macOS Shortcuts app, then enter their exact names in Settings β†’ Pomodoro (Focus Shortcut on / off). macOS has no public API to toggle Focus, so Tomatick runs these Shortcuts by name; leaving the names blank disables the feature.
  • The global hotkey requires granting Accessibility permission on first use (System Settings β†’ Privacy & Security β†’ Accessibility). Until it's granted the hotkey simply won't fire β€” it degrades gracefully rather than crashing.
  • This build is Apple-Silicon-only (arm64) and unsigned. On first launch, use Finder β†’ right-click β†’ Open to get past Gatekeeper.

SHA-256 (Tomatick-0.2.0.dmg): 91adb0db7e478c6de3d438401951552bc88975ff46d58aa0b7c4e0129599ad60