MacSlowCooker visualizza l'utilizzo della GPU del Mac, la temperatura del SoC, gli RPM della ventola e il consumo come un'icona del Dock animata a forma di pentola da cucina. Il colore della pentola segue il calore (bianco → rosso), la fiamma sotto cresce con il carico della GPU e il vapore si alza con gli RPM della ventola. Un carico sostenuto attiva un'animazione di ebollizione.
Open source con Apache License 2.0. Universal Binary per Mac Apple Silicon e Intel (macOS 14+).
Caratteristiche
Icona del Dock animata
Pentola a forma di tamburo 3D resa con ombreggiatura cilindrica, coperchio a cupola e robuste maniglie ad anello. Il colore della pentola sfuma dal bianco (freddo) al rosso-arancio (95 °C). La fiamma sotto aumenta con l'utilizzo della GPU; il vapore morbido si alza e svanisce con gli RPM della ventola (o con la temperatura sui Mac senza ventola).
Dashboard fluttuante
Finestra in stile "cronologia GPU" di Activity Monitor con grafici e riquadri di metriche per GPU, Temperatura, Ventola e Consumo. Opzione per rimanere sopra le altre finestre. I numeri passano da bianco → giallo → rosso al crescere del rischio.
Apple Silicon e Intel
Universal Binary. La scelta del campionatore avviene in base alla CPU host a runtime, così la slice x86_64 di un Universal Binary in esecuzione sotto Rosetta riceve comunque i dati corretti. I Mac senza ventola (MacBook Air serie M) nascondono automaticamente l'interfaccia della Ventola e fanno tornare il vapore a una rampa basata sulla temperatura.
Rispetta la modalità a basso consumo
L'animazione scende a 5 fps e l'oscillazione della fiamma viene disattivata mentre la modalità a basso consumo è attiva, con una riga di stato nelle Preferenze che spiega l'override.
Perché niente App Store?
MacSlowCooker installa un helper LaunchDaemon di root (tramite SMAppService.daemon), avvia /usr/bin/powermetrics e legge AppleSMC + IOHIDEventSystem direttamente. Tutti e tre sono incompatibili con le regole della Sandbox dell'App Store:
- Le app dell'App Store possono usare solo
SMAppService.loginItem(livello utente), nonSMAppService.daemon(root). - La Sandbox vieta l'avvio di
powermetrics(che a sua volta richiede root). IOHIDEventSystem*e il client utente diAppleSMCsono API private.
È lo stesso motivo per cui iStat Menus, Stats e TG Pro vengono distribuiti al di fuori dell'App Store. Distribuire tramite App Store significherebbe tagliare la maggior parte di ciò che rende l'icona significativa, quindi MacSlowCooker resta open source.
Installazione
Al momento non c'è una release DMG firmata. Compila dal sorgente:
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
Vedi CONTRIBUTING.md per il ciclo completo di build / deploy / firma.
FAQ
Perché serve root?
powermetrics richiede root per campionare il consumo della GPU e lo stato termico. Per mantenere l'app principale senza privilegi, MacSlowCooker delega il campionamento a un piccolo helper LaunchDaemon di root e comunica con lui tramite XPC. L'helper rifiuta qualunque chiamante il cui requisito di firma del codice (Team OU) non corrisponda.
Rallenta il mio Mac?
La CPU a riposo è praticamente zero — il timer dell'animatore si ferma automaticamente quando l'icona non ha bisogno di cambiare e l'aggiornamento dell'icona del Dock è deduplicato tramite un hash quantizzato. Il processo powermetrics dell'helper è lo stesso che Activity Monitor utilizza internamente.
E il mio Mac Intel / MacBook Air?
Entrambi sono supportati. I Mac Intel usano uno schema powermetrics diverso (gpu_busy / busy_ns); il parser gestisce entrambi. I Mac senza ventola (MacBook Air serie M) nascondono automaticamente il grafico della Ventola e il vapore torna a una rampa basata sulla temperatura.
Posso contribuire?
Sì — issue e pull request sono benvenute. Vedi CONTRIBUTING.md.
Contatti
Domande o segnalazioni di bug:
GitHub Issues (preferito) oppure hirose@hakaru.net