Ícone animado do Dock do MacSlowCooker

MacSlowCooker OSS

Monitor de GPU / temperatura / ventilador / energia no ícone do Dock do macOS

🐙
Veja o código-fonte no
GitHub

O MacSlowCooker visualiza o uso da GPU do Mac, a temperatura do SoC, o RPM do ventilador e a energia como um ícone animado de panela de cozinha no Dock. A cor da panela acompanha o calor (branco → vermelho), a chama abaixo cresce com a carga da GPU, e o vapor sobe conforme o RPM do ventilador. Carga sustentada aciona uma animação de fervura.

Código aberto sob Apache License 2.0. Universal Binary para Macs com Apple Silicon e Intel (macOS 14+).


Recursos

Ícone animado no Dock

Panela em formato de tambor 3D renderizada com sombreamento cilíndrico, tampa em cúpula e alças robustas em laço. A cor da panela mistura de branco (frio) a vermelho-alaranjado (95 °C). A chama embaixo aumenta com o uso da GPU; o vapor em sopros suaves sobe e desaparece com o RPM do ventilador (ou com a temperatura em Macs sem ventilador).

Painel flutuante

Janela no estilo "histórico de GPU" do Activity Monitor com gráficos e blocos de métricas para GPU, Temperatura, Ventilador e Energia. Opção de flutuar acima de outras janelas. Os números mudam de branco → amarelo → vermelho conforme o risco.

Apple Silicon e Intel

Universal Binary. A escolha do amostrador é determinada pela CPU do host em tempo de execução, então a fatia x86_64 de um Universal Binary executando sob Rosetta ainda obtém os dados corretos. Macs sem ventilador (MacBook Air série M) ocultam automaticamente a interface do ventilador e fazem o vapor recuar para uma rampa de temperatura.

Respeita o Modo de Baixo Consumo

A animação cai para 5 fps e a oscilação da chama é desativada quando o Modo de Baixo Consumo está ativo, com uma linha de status nas Preferências explicando a substituição.


Por que não na App Store?

O MacSlowCooker instala um auxiliar LaunchDaemon como root (via SMAppService.daemon), inicia /usr/bin/powermetrics e lê AppleSMC + IOHIDEventSystem diretamente. Os três são incompatíveis com as regras do Sandbox da App Store:

  • Apps da App Store podem usar apenas SMAppService.loginItem (nível de usuário), não SMAppService.daemon (root).
  • O Sandbox proíbe iniciar powermetrics (que por si só requer root).
  • IOHIDEventSystem* e o cliente de usuário AppleSMC são APIs privadas.

Esse é o mesmo motivo pelo qual iStat Menus, Stats e TG Pro são distribuídos fora da App Store. A distribuição pela App Store significaria cortar a maior parte do que torna o ícone significativo, então o MacSlowCooker permanece como código aberto.


Instalação

No momento não há um lançamento DMG assinado. Compile a partir do código-fonte:

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

Veja CONTRIBUTING.md para o ciclo completo de build / deploy / assinatura.


Perguntas frequentes

Por que precisa de root?

O powermetrics requer root para amostrar a energia da GPU e o estado térmico. Para manter o app principal sem privilégios, o MacSlowCooker delega a amostragem a um pequeno auxiliar LaunchDaemon root e se comunica com ele via XPC. O auxiliar rejeita qualquer chamador cujo requisito de assinatura de código (Team OU) não corresponda.

Deixa meu Mac mais lento?

O uso de CPU em ocioso é praticamente zero — o timer do animador para automaticamente quando o ícone não precisa mudar, e a atualização do ícone do Dock é deduplicada via um hash quantizado. O processo powermetrics do auxiliar é o mesmo que o Activity Monitor usa internamente.

E quanto ao meu Mac Intel / MacBook Air?

Ambos suportados. Macs Intel usam um esquema diferente de powermetrics (gpu_busy / busy_ns); o parser lida com os dois. Macs sem ventilador (MacBook Air série M) ocultam automaticamente o gráfico do ventilador e o vapor recua para uma rampa de temperatura.

Posso contribuir?

Sim — issues e pull requests são bem-vindos. Veja CONTRIBUTING.md.


Contato

Dúvidas ou relatórios de bugs:
GitHub Issues (preferencial) ou hirose@hakaru.net


Links