TomatoBar 完整上手指南:把专注力装进 macOS 菜单栏
TomatoBar 完整上手指南:把专注力装进 macOS 菜单栏
【免费下载链接】TomatoBar🍅 World's neatest Pomodoro timer for macOS menu bar项目地址: https://gitcode.com/gh_mirrors/to/TomatoBar
写方案写到一半,手机响了;调 Bug 刚有头绪,弹窗来了——你的一天就是这样被无数碎片打断的。番茄工作法能帮你找回节奏,但前提是有一个不碍事的计时器。TomatoBar 就是为此而生的一款 macOS 菜单栏番茄钟,官方定位是"World's neatest Pomodoro timer for macOS menu bar",它安静地待在菜单栏一角,用倒计时、提示音和通知,帮你守住每一段专注时光。
这篇文章会带你走完四步:一分钟把应用跑起来、读透三个标签页、解锁核心亮点,最后是进阶玩法和避坑清单。
为什么番茄钟要"住在菜单栏"?
打开一个全屏计时器 App,反而成了新的干扰源。TomatoBar 的思路完全不同——它把整个应用塞进菜单栏的一个小图标里:
- 不占桌面空间:计时器常驻菜单栏,抬眼就能看到剩余时间
- 零操作负担:开始、停止只需要一个按键,不用切窗口
- 不打扰:提示音、通知、全局快捷键按需开启,专注时不弹任何东西
- 足够轻量:应用完全沙盒化运行,资源占用可以忽略不计
一句话总结:它不要求你主动去"用它",而是默默陪着你把每个 25 分钟走完。
第一步:一分钟把 TomatoBar 装进 Mac
有三种方式,任选其一即可。
方式一:Homebrew 安装(最省事)
打开终端,执行:
brew install --cask tomatobar如果首次启动失败,大概率是 Gatekeeper 的检疫隔离在作怪,改用带--no-quarantine参数的版本:
brew install --cask --no-quarantine tomatobar方式二:从源码编译(适合想折腾的人)
先克隆仓库:
git clone https://gitcode.com/gh_mirrors/to/TomatoBar然后用 Xcode 打开TomatoBar.xcodeproj,直接按⌘R运行。源码结构非常清晰,想二次开发的可以直接对照着看:
| 文件 | 职责 |
|---|---|
TomatoBar/App.swift | 应用入口,创建菜单栏状态项和弹窗 |
TomatoBar/Timer.swift | 核心计时逻辑,用状态机管理空闲/工作/休息 |
TomatoBar/View.swift | 弹窗界面,包含 Intervals、Settings、Sounds 三个标签页 |
TomatoBar/State.swift | 状态机定义与事件流转 |
TomatoBar/Notifications.swift | 桌面通知发送与"跳过休息"动作 |
TomatoBar/Player.swift | 三种提示音的播放控制 |
方式三:直接下载 Release 包
到项目的 Releases 页面下载最新版 dmg,拖进「应用程序」文件夹即可,记得首次打开时右键选择"打开"绕过 Gatekeeper。
三分钟读透主界面:核心就是一个弹窗
点击菜单栏的番茄图标,会弹出一个窄窄的小窗:顶部是显眼的倒计时大按钮,正在计时时显示剩余时间,悬停则变成"停止";下方是 Intervals、Settings、Sounds 三个标签页;底部还有⌘A(关于)和⌘Q(退出)两个快捷键入口。
Intervals 标签页:定制你的番茄节奏
四个步进器覆盖了全部时间参数,默认值就是经典的番茄工作法:
| 配置项 | 可选范围 | 默认值 | 含义 |
|---|---|---|---|
| Work interval | 1–60 分钟 | 25 | 单次专注时长 |
| Short rest interval | 1–60 分钟 | 5 | 每次工作后的短休息 |
| Long rest interval | 1–60 分钟 | 15 | 完成一整组后的长休息 |
| Work intervals in a set | 1–10 次 | 4 | 攒满几次工作进入长休息 |
注意最后一个参数:默认完成 4 个番茄后,才会进入 15 分钟的长休息,其余时间都是 5 分钟短休息。想更激进?把组数调大、长休息调长,完全由你说了算。
Settings 标签页:三个开关 + 一个快捷键
- 全局快捷键:点击录制框,按下任意组合键,即可绑定"开始/停止",之后无需碰鼠标
- Stop after break:休息结束后自动回到待机,而不是直接开始下一轮工作
- Show timer in menu bar:控制菜单栏是否显示数字倒计时,关掉后就只剩番茄图标
- Launch at login:开机自启,打开 Mac 即进入工作状态
Sounds 标签页:三档音量滑块
- Windup:开始计时时的上发条音
- Ding:时间到时的提示音
- Ticking:计时过程中的走针声,让你感知时间流动
每个滑块范围是 0 到 2.0,觉得吵就拉到 0,想要清晰提示就保持默认;双击滑块可以一键恢复 1.0,误调了也不用慌。
值得收藏的四个亮点
菜单栏实时倒计时。只要开着"Show timer in menu bar",菜单栏就会显示精确到秒的剩余时间,用的是等宽数字字体,刷新时不抖动,扫一眼就知道还剩几分钟。
休息后自动停止。打开Stop after break,一轮休息结束计时器会停在待机状态,不会在你离开座位时悄悄开始新一轮工作,避免"人不在、时间在跑"的尴尬。
可操作的桌面通知。工作时间结束会弹通知告诉你"该休息了",并且可以直接在通知卡片上点"跳过休息",马不停蹄进入下一轮,特别适合灵感爆棚的时刻。
三种图标随时切换。菜单栏图标会随状态变化——空闲、工作中、短休息、长休息各有专属图标(源码里对应BarIconIdle、BarIconWork、BarIconShortRest、BarIconLongRest四套资源),不用看数字也能知道当前处于哪个阶段。
进阶玩法:把番茄钟接入你的工作流
用 URL 远程控制计时器
TomatoBar 内置了tomatobar://协议,最简单的一条:
open tomatobar://startStop在终端跑这条命令就能启动或停止计时。你可以把它绑进 shell 别名、脚本甚至快捷指令,实现"一句话开番茄"。
用事件日志复盘专注数据
每次状态切换都会以 JSON 格式追加写入日志文件:
~/Library/Containers/com.github.ivoronin.TomatoBar/Data/Library/Caches/TomatoBar.log包含事件类型和时间戳,可以导入表格做专注时长统计,或者喂给其他数据分析工具。
一个藏在源码里的"超时保护"
在TomatoBar/Timer.swift里有个隐藏参数overrunTimeLimit,默认是 -60 秒:如果 Mac 睡眠导致计时严重超时(超过 60 秒),计时器会自动停止而不是立刻误报"时间到",避免你醒来时收到一堆错误通知。
多语言支持
界面文案支持英文、简体中文和韩语,语言文件分别位于TomatoBar/en.lproj、TomatoBar/zh-Hans.lproj和TomatoBar/ko.lproj的Localizable.strings,跟随系统语言自动切换。
常见问题与避坑清单
应用装了却打不开?优先用brew install --cask --no-quarantine tomatobar重装,这能绕开 macOS 的隔离限制。
菜单栏找不到图标?番茄钟可能被系统收进了菜单栏的折叠区,点一下菜单栏右侧的"⌃"展开即可找到;也可以去系统设置里把它的显示权限打开。
声音不响?先确认系统音量正常,再检查 Sounds 标签页里三个滑块是否被拉到了 0;重点排查 Ticking 走针音,它在暂停时会自动静音。
想改语言却找不到设置项?TomatoBar 没有内置语言选择,直接改系统语言,应用文案会自动跟随。
收尾:从下一个 25 分钟开始
工具的价值在于让你忘记工具本身。TomatoBar 用极简的菜单栏形态,把番茄工作法的全部要素——时间、声音、通知、快捷键——压缩进一个随时可唤起的弹窗里。它不复杂,所以你不会因为它分心;它足够完整,所以能真正坚持下来。
现在就去把它装上,按下第一次"开始",从下一个 25 分钟开始建立你的专注节奏。
【免费下载链接】TomatoBar🍅 World's neatest Pomodoro timer for macOS menu bar项目地址: https://gitcode.com/gh_mirrors/to/TomatoBar
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
