MacSlowCooker 動態 Dock 圖示

MacSlowCooker OSS

macOS Dock 圖示 GPU/溫度/風扇/電力監控工具

🐙
原始碼請至
GitHub

MacSlowCooker 將 Mac 的 GPU 使用率、SoC 溫度、風扇 RPM 與電力,以動態烹飪鍋造型的 Dock 圖示視覺化呈現。鍋子的顏色會跟隨溫度變化(白色 → 紅色),下方的火焰會隨 GPU 負載增大,蒸氣則隨風扇 RPM 上升。持續高負載會觸發沸騰動畫。

採用 Apache License 2.0 授權的開放原始碼軟體。Universal Binary,支援 Apple Silicon 與 Intel Mac(macOS 14 以上)。


功能

動態 Dock 圖示

採用圓筒形陰影、圓頂鍋蓋與粗壯環形把手,繪製出立體鼓形鍋造型。鍋子顏色從白色(涼)漸變為紅橘色(95 °C)。下方火焰隨 GPU 使用率變化;柔和的蒸氣隨風扇 RPM(在無風扇 Mac 上則隨溫度)升起並消散。

浮動儀表板

類似活動監視器「GPU 歷史記錄」風格的視窗,提供 GPU、溫度、風扇與電力的圖表與指標磚。可選擇置頂於其他視窗之上。數值會依風險程度由白色 → 黃色 → 紅色變化。

Apple Silicon 與 Intel

Universal Binary。取樣方式於執行階段依主機 CPU 自動切換,因此即使是在 Rosetta 下執行的 Universal Binary x86_64 切片,也能取得正確資料。無風扇 Mac(MacBook Air M 系列)會自動隱藏風扇 UI,並將蒸氣改為依溫度變化。

支援低耗電模式

啟用低耗電模式時,動畫降至 5 fps、火焰晃動效果停用,並在偏好設定中以狀態列說明此覆寫行為。


為什麼不上架 App Store?

MacSlowCooker 會安裝 root 權限的 LaunchDaemon 輔助程式(透過 SMAppService.daemon)、執行 /usr/bin/powermetrics,並直接讀取 AppleSMCIOHIDEventSystem。這三項都與 App Store 沙盒規則不相容:

  • App Store 應用程式僅能使用 SMAppService.loginItem(使用者層級),不能使用 SMAppService.daemon(root)。
  • 沙盒禁止啟動 powermetrics(其本身需要 root 權限)。
  • IOHIDEventSystem*AppleSMC 的 user-client 屬於私有 API。

這也是 iStat Menus、Stats 與 TG Pro 選擇在 App Store 之外發行的原因。若要在 App Store 上架,將不得不去掉大部分讓這個圖示具有意義的功能,因此 MacSlowCooker 維持開放原始碼形式發行。


安裝

目前尚未提供已簽章的 DMG 版本。請從原始碼建置:

git clone https://github.com/hakaru/MacSlowCooker.git
cd MacSlowCooker

# Set your Apple Developer Team ID (the privileged helper validates it)
bin/set-team-id.sh ABC1234XYZ

# Generate the Xcode project and build
brew install xcodegen
xcodegen generate
xcodebuild -project MacSlowCooker.xcodeproj -scheme MacSlowCooker \
  -configuration Release -derivedDataPath build build \
  CODE_SIGN_STYLE=Automatic DEVELOPMENT_TEAM=ABC1234XYZ \
  ONLY_ACTIVE_ARCH=NO

完整的建置/部署/簽章流程請參見 CONTRIBUTING.md


常見問題

為什麼需要 root 權限?

powermetrics 需要 root 權限才能取樣 GPU 電力與熱狀態。為了讓主應用程式維持非特權,MacSlowCooker 將取樣作業委派給一個小型的 root LaunchDaemon 輔助程式,並透過 XPC 與其通訊。輔助程式會拒絕任何程式碼簽章要求(Team OU)不符的呼叫端。

會不會拖慢我的 Mac?

閒置時 CPU 使用率幾乎為零 — 圖示不需要更新時,動畫計時器會自動停止,且 Dock 圖示更新會透過量化雜湊去除重複。輔助程式內的 powermetrics 行程,與活動監視器內部所使用的是同一個。

我的 Intel Mac/MacBook Air 呢?

兩者皆支援。Intel Mac 使用不同的 powermetrics 結構(gpu_busybusy_ns);解析器同時處理兩種格式。無風扇 Mac(MacBook Air M 系列)會自動隱藏風扇圖表,蒸氣則改為依溫度變化。

我可以參與貢獻嗎?

當然 — 歡迎提交 issue 與 pull request。請參見 CONTRIBUTING.md


聯絡我們

如有疑問或回報錯誤:
GitHub Issues(建議)或 hirose@hakaru.net


連結