个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Go rewrite of Tomatick — cross-platform (macOS, Windows, Linux) menu bar / system tray timer, stopwatch, alarm & pomodoro with timestamped history.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Class A (OSS/MIT). A menu bar / system tray timer, stopwatch, alarm and pomodoro — all in one icon, with a timestamped history of everything you run.
This is a Go rewrite of the original macOS-only Python
Tomatick, built so a single codebase
runs on macOS, Windows, and Linux. Config and history use the same JSON /
SQLite schema, so a config.json from the Python app loads here.
25m, 1h30m, 90s, 2:30), with a
live M:SS countdown in the tray (menu-bar title on macOS; tooltip + menu on
Windows). Pause / Reset / Stop.Everything is driven from the tray icon's menu: start a session → it appears in the menu → click its item to pause/stop it (or dismiss a ringing alarm).
Requires Go 1.25+. On Linux you also need the usual Fyne OpenGL/X11 headers
(libgl1-mesa-dev, xorg-dev). On Windows, a gcc (MinGW) is required because
Fyne uses CGO.
git clone https://github.com/MichalAFerber/tomatick2.git
cd tomatick2
go test ./...
go run ./cmd/tomatick
A tomato icon appears in the menu bar (macOS), notification area (Windows), or system tray (Linux). Click it to open the menu.
On Linux, a tray host that speaks StatusNotifierItem / AppIndicator is required (GNOME needs an extension; KDE and most other desktops work out of the box).
The timing, scheduling, history, and settings logic has no GUI dependencies:
go test ./internal/sessions ./internal/alarms ./internal/history ./internal/settings ./internal/core
go test ./... also compiles the UI packages (needs CGO + platform GUI libs).
# current OS
go build -o tomatick ./cmd/tomatick
# packaged bundles (run on the target OS, or use fyne-cross)
make package-mac # Tomatick.app, Dock-hidden
make package-windows # Tomatick.exe
make package-linux # Tomatick.tar.xz
fyne package must be installed. Pin it to the fyne.io/fyne/v2 version in
go.mod — the packager decides the bundle layout, so a floating @latest
changes it under you between releases. The release workflow pins the same
version:
go install fyne.io/fyne/v2/cmd/[email protected]
fyne.io/fyne/v2/cmd/fyne is deprecated upstream in favor of
fyne.io/tools/cmd/fyne (the old binary still works and prints a migration
notice on every run). Stay on the path above for now: fyne.io/tools is a
separate module with its own version numbers, not locked to fyne.io/fyne/v2,
so swapping it in here — and in .github/workflows/release.yml — needs its
own verification that packaging output doesn't change, not a drive-by edit.
On macOS the bundle is unsigned; on first launch right-click → Open to get past Gatekeeper, or:
xattr -dr com.apple.quarantine /Applications/Tomatick.app
Tomatick is a tray app — no Dock icon on macOS (runtime
LSUIElement / accessory policy). Look for the tomato in the menu bar. To start
it at login, use the icon's menu → Settings → Launch at login.
| OS | Directory |
|---|---|
| macOS | ~/Library/Application Support/Tomatick/ |
| Windows | %AppData%\Tomatick\ |
| Linux | ~/.local/share/Tomatick/ |
config.json # pomodoro settings, alarms, sound, launch-at-login
history.db # SQLite event history
Honor TOMATICK_SUPPORT_DIR to redirect both files (used by tests).
| Capability | macOS | Windows | Linux |
|---|---|---|---|
| Tray title text | yes (next to the icon) | tooltip + menu | title where the tray supports it |
| Sounds | /System/Library/Sounds | %WINDIR%\Media | bundled ding + paplay/aplay |
| Keep awake | caffeinate | SetThreadExecutionState | systemd-inhibit |
| Launch at login | LaunchAgent us.tomatick | HKCU Run key | ~/.config/autostart/ |
| Focus / DND | Shortcuts app, by name | ignored | ignored |
| Global hotkey | Accessibility permission | RegisterHotKey | X11 grab |
cmd/tomatick/ # main
internal/
sessions/ # Timer / Stopwatch / Pomodoro (pure logic)
alarms/ # Alarm model + scheduling (pure logic)
history/ # SQLite history store
settings/ # config.json load/save
core/ # tick, wiring, no GUI
ui/ # Fyne tray + settings windows
sound/ notify/ keepawake/ autostart/ hotkey/ focus/
assets/ # tomato art, bundled ding.wav
The product site lives at tomatick.us (source still in the Python repo).
| Component | License | Used for |
|---|---|---|
| Fyne | BSD-3-Clause | windows, dialogs, system tray |
| fyne.io/systray | Apache-2.0 | tray title / icon |
| modernc.org/sqlite | BSD-3-Clause | history database (pure Go) |
| golang.design/x/hotkey | MIT | global hotkey |
The menu-bar tomato icon (red / white / black themes) and the app icon are
original artwork, generated by scripts/make_icon.py.
Released under the MIT License — © 2026 Michal Ferber.