個人 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.