Icône Dock animée de MacSlowCooker

MacSlowCooker OSS

Moniteur d'icône Dock macOS pour GPU / température / ventilateur / consommation

🐙
Voir le code source sur
GitHub

MacSlowCooker visualise l'utilisation du GPU, la température du SoC, la vitesse des ventilateurs et la consommation de votre Mac sous la forme d'une icône Dock animée représentant une marmite. La couleur de la marmite reflète la chaleur (du blanc au rouge), la flamme en dessous grandit avec la charge GPU, et la vapeur monte au rythme des ventilateurs. Une charge soutenue déclenche une animation d'ébullition.

Open source sous Apache License 2.0. Universal Binary pour Mac Apple Silicon et Intel (macOS 14+).


Fonctionnalités

Icône Dock animée

Marmite 3D en forme de tambour rendue avec un ombrage cylindrique, un couvercle en dôme et de grosses anses bouclées. La couleur de la marmite passe progressivement du blanc (froid) au rouge-orangé (95 °C). La flamme en dessous croît avec l'utilisation du GPU ; de douces bouffées de vapeur s'élèvent et s'estompent au rythme des ventilateurs (ou de la température sur les Mac sans ventilateur).

Tableau de bord flottant

Fenêtre de style « historique GPU » du Moniteur d'activité, avec graphiques et tuiles de mesure pour le GPU, la Température, le Ventilateur et la Consommation. Option pour rester au-dessus des autres fenêtres. Les chiffres passent du blanc au jaune puis au rouge selon le niveau de risque.

Apple Silicon et Intel

Universal Binary. Le choix de l'échantillonneur dépend du processeur hôte au moment de l'exécution, de sorte que la tranche x86_64 d'un Universal Binary fonctionnant sous Rosetta obtienne aussi les bonnes données. Les Mac sans ventilateur (MacBook Air série M) masquent automatiquement l'interface Ventilateur, et la vapeur retombe sur une rampe basée sur la température.

Respecte le mode économie d'énergie

Lorsque le mode économie d'énergie est actif, l'animation tombe à 5 fps et l'oscillation de la flamme est désactivée ; une ligne d'état dans les Préférences explique cette modification.


Pourquoi pas l'App Store ?

MacSlowCooker installe un assistant LaunchDaemon root (via SMAppService.daemon), lance /usr/bin/powermetrics, et lit directement AppleSMC et IOHIDEventSystem. Ces trois éléments sont incompatibles avec les règles du Sandbox de l'App Store :

  • Les apps de l'App Store ne peuvent utiliser que SMAppService.loginItem (au niveau utilisateur), pas SMAppService.daemon (root).
  • Le Sandbox interdit le lancement de powermetrics (qui nécessite lui-même les privilèges root).
  • IOHIDEventSystem* et le user-client AppleSMC sont des API privées.

C'est pour la même raison qu'iStat Menus, Stats et TG Pro sont distribués en dehors de l'App Store. Une distribution via l'App Store impliquerait de couper la majeure partie de ce qui rend cette icône intéressante, donc MacSlowCooker reste open source.


Installation

Aucune version DMG signée n'est disponible pour le moment. Compilez depuis les sources :

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

Voir CONTRIBUTING.md pour le cycle complet de compilation / déploiement / signature.


FAQ

Pourquoi a-t-il besoin des privilèges root ?

powermetrics nécessite les droits root pour échantillonner la consommation et l'état thermique du GPU. Pour que l'application principale reste sans privilèges, MacSlowCooker délègue l'échantillonnage à un petit assistant LaunchDaemon root et communique avec lui via XPC. L'assistant rejette tout appelant dont l'exigence de signature de code (Team OU) ne correspond pas.

Cela ralentit-il mon Mac ?

L'utilisation CPU au repos est essentiellement nulle — le minuteur d'animation s'arrête automatiquement quand l'icône n'a pas besoin de changer, et la mise à jour de l'icône Dock est dédupliquée via un hachage quantifié. Le processus powermetrics de l'assistant est le même que celui utilisé en interne par le Moniteur d'activité.

Et pour mon Mac Intel / MacBook Air ?

Les deux sont pris en charge. Les Mac Intel utilisent un schéma powermetrics différent (gpu_busy / busy_ns) ; le parseur gère les deux. Les Mac sans ventilateur (MacBook Air série M) masquent automatiquement le graphique Ventilateur et la vapeur retombe sur une rampe basée sur la température.

Puis-je contribuer ?

Oui — les issues et pull requests sont les bienvenues. Voir CONTRIBUTING.md.


Contact

Questions ou rapports de bug :
GitHub Issues (de préférence) ou hirose@hakaru.net


Liens