MacSlowCooker 애니메이션 Dock 아이콘

MacSlowCooker OSS

macOS Dock 아이콘 GPU / 온도 / 팬 / 전력 모니터

🐙
소스 보기
GitHub

MacSlowCooker는 Mac의 GPU 사용률, SoC 온도, 팬 RPM, 전력을 애니메이션 냄비 모양 Dock 아이콘으로 시각화합니다. 냄비 색상은 열에 따라 변하고(흰색 → 빨간색), 아래의 불꽃은 GPU 부하에 따라 커지며, 김은 팬 RPM과 함께 피어오릅니다. 지속적인 부하는 끓는 애니메이션을 발동시킵니다.

Apache License 2.0 기반 오픈 소스. Apple Silicon 및 Intel Mac용 Universal Binary (macOS 14 이상).


기능

애니메이션 Dock 아이콘

원통형 셰이딩, 돔형 뚜껑, 두꺼운 고리 손잡이로 렌더링한 3D 드럼형 냄비입니다. 냄비 색상은 흰색(차가움)에서 주황빛 빨간색(95 °C)으로 블렌딩됩니다. 아래의 불꽃은 GPU 사용률에 따라 커지고, 부드러운 김 입자가 팬 RPM(또는 팬리스 Mac의 경우 온도)에 따라 피어오르고 사라집니다.

플로팅 대시보드

활성 상태 보기의 "GPU 기록" 스타일 창에 GPU, 온도, 팬, 전력에 대한 차트와 메트릭 타일을 표시합니다. 다른 창 위에 띄우기 옵션 제공. 위험도에 따라 숫자가 흰색 → 노란색 → 빨간색으로 바뀝니다.

Apple Silicon 및 Intel

Universal Binary. 샘플러 선택은 런타임에 호스트 CPU에 따라 결정되므로, Rosetta에서 실행되는 Universal Binary의 x86_64 슬라이스도 올바른 데이터를 받습니다. 팬리스 Mac (MacBook Air M 시리즈)은 팬 UI를 자동으로 숨기고 김 효과가 온도 램프로 대체됩니다.

저전력 모드 준수

저전력 모드가 켜져 있으면 애니메이션이 5fps로 떨어지고 불꽃 흔들림이 비활성화되며, 환경 설정에 해당 오버라이드를 설명하는 상태 행이 표시됩니다.


왜 App Store에 없나요?

MacSlowCooker는 root LaunchDaemon 헬퍼를 설치하고(SMAppService.daemon 사용), /usr/bin/powermetrics를 spawn하며, AppleSMCIOHIDEventSystem을 직접 읽습니다. 이 셋 모두 App Store 샌드박스 규칙과 호환되지 않습니다:

  • App Store 앱은 SMAppService.loginItem(사용자 수준)만 사용할 수 있고 SMAppService.daemon(root)은 사용할 수 없습니다.
  • 샌드박스는 powermetrics(자체적으로 root가 필요)의 spawn을 금지합니다.
  • IOHIDEventSystem*AppleSMC 사용자 클라이언트는 비공개 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는 GPU 전력과 온도 상태를 샘플링하기 위해 root 권한이 필요합니다. 메인 앱을 비특권으로 유지하기 위해 MacSlowCooker는 샘플링을 작은 root LaunchDaemon 헬퍼에 위임하고 XPC를 통해 통신합니다. 헬퍼는 코드 서명 요구 사항(Team OU)이 일치하지 않는 호출자를 거부합니다.

Mac이 느려지나요?

유휴 시 CPU 사용량은 사실상 0입니다. 아이콘이 변경될 필요가 없을 때 애니메이터 타이머가 자동으로 중지되며, Dock 아이콘 업데이트는 양자화된 해시를 통해 중복 제거됩니다. 헬퍼의 powermetrics 프로세스는 활성 상태 보기가 내부적으로 사용하는 것과 동일합니다.

Intel Mac / MacBook Air에서는 어떤가요?

둘 다 지원됩니다. Intel Mac은 다른 powermetrics 스키마(gpu_busy / busy_ns)를 사용하며, 파서가 양쪽을 모두 처리합니다. 팬리스 Mac (MacBook Air M 시리즈)은 팬 차트를 자동으로 숨기고 김 효과가 온도 램프로 대체됩니다.

기여할 수 있나요?

네 — 이슈와 풀 리퀘스트를 환영합니다. CONTRIBUTING.md를 참고하세요.


문의

질문이나 버그 리포트:
GitHub Issues (권장) 또는 hirose@hakaru.net


링크