CalmBar 2.6:把十四个 macOS 小功能收进一个菜单栏面板

5 分钟阅读

CalmBar 是常驻菜单栏的 macOS 工具集,2.6.1 版包含风扇温控与充电上限、按应用音量、屏幕录制、AI 划词翻译、启动项管理与开发者缓存清理等十四个功能。Swift 6 原生开发,除自动更新外不发起网络请求。

CalmBar 2.6:把十四个 macOS 小功能收进一个菜单栏面板

面板

CalmBar 常驻菜单栏,点图标弹出一块固定 320×520 的面板,分成温控、守护、工具、监控、声音五个分区。窗口高度写死,切分区只让内容做动画,顶边不动。这算不上什么功能,可每天要点十几次的东西,抖一下都够烦。没启用的模块不会出现在面板里,对应的分区跟着消失。

当前版本 2.6.1,2026 年 11 月 4 日发布,build 4,支持 macOS 14.0 及以上。主程序用 Swift 6 写成,界面走 SwiftUI 和 AppKit,除 Sparkle 自动更新外没有第三方依赖。代码里的 FeatureID 有十四个 case,下面按它们所属的分组来写。

CalmBar 菜单栏主面板

散热与电池

温度从 SMC 读,包括 CPU 核心簇、GPU、电池和 SoC。风扇有三档。自动是把控制权还给系统,手动是一个无级滑杆,能锁百分比也能锁 RPM,智能曲线填起转温度和满速温度两个数,中间线性插值。双风扇机型可以联动,也能左右各调各的。退出、重启、休眠、崩溃这四种情况都会把 SMC 交还官方固件,不会留下一对被外部程序锁住的风扇。

没有风扇的机器先读 FNum,确认为零就整体降级成纯温度监控,调速滑杆、RPM 读数和特权助手入口一起收起来。装上去发现没得调,比装上去拉不动要好。

充电上限能在 70% 到 100% 之间设,默认 80%。写的是 SMC 的 CH0C 和 CHTE,到点停止充电,改由适配器供电。回差巡航让它掉到下限再补电,避开 80% 边缘那种反复微充。电量低于 15%,或者电芯温度超过 45 度,熔断会立刻恢复充电。出门前点临时充满,满了自动回落到设定值。

输入与效率

菜单栏收纳在 2.6.1 改过一次。悬停展开原来鼠标扫过菜单栏任何位置都会触发,现在限定在收纳箭头左右各 16pt 以内,停留 0.35 秒才展开。按住 ⌘ 把低频图标拖到分隔符 / 左边就能收进去,折叠按 ⌥⌘H。

滚轮解耦是设备级的。外接鼠标反转 Y 轴,内建触控板和 Magic Mouse 保持原生的方向和惯性,两套设备互不打扰。

剪贴板记文本、富文本、图片、链接、文件和十六进制颜色值。图片会在后台过一遍 Vision,把里面的文字和二维码存进索引,所以截图里的字也搜得到。密码管理器复制出来的内容直接跳过。键盘模式是 ← → 切分类、↑ ↓ 选条目、回车复制,然后窗口自己关掉。

命令面板在 ⌥⌘K,输入中文、英文或者拼音首字母都能匹配,回车执行。它和菜单栏面板互斥,一个开着,另一个就收起。

专注

防休眠用的是 IOKit 电源断言,可以一直开着,也可以设 5 分钟到 5 小时的倒计时。防离开读 IOHIDSystem 的空闲时间,到点发一次轻微的 HID 微动,把计时器重置。

这里得把边界说清楚。它能影响的是那类按系统闲置时间判断离开状态的办公软件,Teams、Slack、飞书、钉钉都算。服务端如果有自己的心跳或者别的检测方式,照样会判离开。工具只做它能做的那一段。

音乐拦截监听应用启动事件,把 Music 和 iTunes 的自动唤起掐掉。可以改成拉起 Spotify、网易云音乐,也可以配一个网页播放器地址。蓝牙耳机重连时那一下弹出,基本归它管。

识字与翻译

屏幕识字全程在本地,走 Vision 框架,中英日韩混排、代码、二维码和条码一起认。框选完结果自动进剪贴板,历史记录能搜。这条功能不联网。

翻译是整个项目里唯一会往外发请求的东西。端点由你自己填,协议走 OpenAI 兼容的 /v1/chat/completions,本地起一个 HY-MT2 也行,Docker、NAS、MLX 都有对应的部署文档。双击 ⌘C 或者按 ⌥⌘T,译文就在光标旁边流式出来。

2.6.1 改了菜单栏那个入口。以前点一下直接翻译剪贴板,翻错了还要去别处改原文。现在弹的是一个输入面板,剪贴板内容默认填进去但不自动翻,改完按 ⌘↩ 再发。

声音与录制

按应用调音量是 2.6.0 加进来的,要 macOS 14.4 以上,版本不够会直接说不支持。单个应用能拉到 200%,上限在设置里改。也可以把某个应用的声音单独送到另一个输出设备,同时路由几个应用、设备断开后跟随系统还是暂停该应用,都能配。系统提示音、来电、通话这类受保护音频不接管。

录制支持全屏、区域、窗口三种范围,HEVC 或 H.264,24、30、60 三档帧率。系统声音和麦克风分别进两条音轨,后期能单独调。开始前可以选倒计时,控制条浮在屏幕顶部,不会录进画面。中途崩溃或者收尾失败,临时分片会留在磁盘上,能在设置里恢复成可播放的视频。麦克风没授权时自动降级成只录系统声音。

系统维护

清理扫 ~/Library 和 /Library 下二十多个目录,按 Bundle ID 衍生出的前缀和名字变体找残留。东西一律进废纸篓,而且必须你逐项勾上,不会自动全选。开发缓存覆盖二十四款以上工具链,Xcode 的 DerivedData、Archives 和模拟器,Node 的 npm、pnpm、yarn、bun,Python 的 pip、poetry、uv、conda,加上 Rust、Go、Java、Flutter 都在名单里。VS Code 和 Cursor 下工程源码已经删掉的孤立工作区可以单独清。

启动项管理管 launchd 的三处配置,用户自启项、全局代理项、系统守护服务。/System/Library 下的苹果核心项标成只读。五分钟滑窗里连续失败三次判为崩溃循环,主面板会转红,配六十秒去抖,免得反复报。端口透视用 lsof 查当前监听,顺着 PID 能看到命令行和工作目录,Docker 容器名也会带出来。

权限看板把辅助功能、特权助手、屏幕录制、完全磁盘访问四项放在一页,每项写明哪个功能在用。

监控是二乘二四张卡,CPU、内存、网络、磁盘,带阈值告警和菜单栏读数。告警有优先级降级和冷却。内存按二进制口径算,和活动监视器一致,磁盘可用容量算上了可清除空间,和系统设置里的数字一致。这两个值以前对不上,修过。

安装

DMG 是通用包,arm64 和 x86_64 合在一起,九 MB 出头。安装包放在 calmbar.bujic.cc 的下载区,也可以从 GitHub 的 Releases 取。

没有走 Apple 公证,签名是 ad-hoc。macOS Sequoia 往后,文件还在下载目录里就被拦,弹窗里也没有「仍要打开」。先去掉隔离标记再双击。

xattr -dr com.apple.quarantine ~/Downloads/CalmBar-2.6.1.dmg

拖进应用程序之后再执行一遍,路径换成 App 本身。

xattr -dr com.apple.quarantine /Applications/CalmBar.app

装好以后从「通用设置 → 关于 CalmBar → 检查更新」走 Sparkle 更新,不用重新下安装包。网络受限可以在更新设置里配 HTTP 代理。Sparkle 的下载进程读不到 App 内的配置,中间就多了一个只监听本机、带随机 token 的回环转发服务。

几条限制

  • 按应用接管音量要 macOS 14.4 以上,更低版本只有系统级音量。
  • 没有风扇的 MacBook Air 只有温度监控,没有调速。
  • 翻译的端点要自己准备,项目不附带 API Key。

快捷键

  • ⌥⌘K 命令面板
  • ⌥⌘H 菜单栏折叠
  • ⌥⌘T 翻译剪贴板
  • 连按两次 ⌘C 划词翻译
  • ⌥⌘O 屏幕识字
  • ⌥⌘V 剪贴板历史
  • ⌥⌘R 开始或停止录制
  • ⌥⌘F 打开录制文件夹

源码在 github.com/chao-eng/CalmBar,Apache 2.0。功能细节和这里写的对不上时,以仓库里的 doc/release/RELEASE.md 为准。

评论