MacSlowCooker visualiza el uso de GPU, la temperatura del SoC, las RPM del ventilador y el consumo de energía del Mac como un icono animado de olla de cocina en el Dock. El color de la olla refleja el calor (blanco → rojo), la llama debajo crece con la carga de la GPU y el vapor sube con las RPM del ventilador. Una carga sostenida activa una animación de hervido.
Código abierto bajo Apache License 2.0. Universal Binary para Macs Apple Silicon e Intel (macOS 14+).
Características
Icono del Dock animado
Olla con forma de tambor 3D renderizada con sombreado cilíndrico, tapa con domo y asas robustas en bucle. El color de la olla se mezcla de blanco (frío) a rojo-naranja (95 °C). La llama debajo aumenta con el uso de la GPU; suaves bocanadas de vapor suben y se desvanecen con las RPM del ventilador (o con la temperatura en Macs sin ventilador).
Panel flotante
Ventana al estilo del "historial de GPU" del Monitor de Actividad con gráficos y mosaicos de métricas para GPU, Temperatura, Ventilador y Energía. Opción de flotar sobre otras ventanas. Los números cambian de blanco → amarillo → rojo según el riesgo.
Apple Silicon e Intel
Universal Binary. La elección del sampler depende de la CPU del host en tiempo de ejecución, por lo que el segmento x86_64 de un Universal Binary ejecutándose bajo Rosetta sigue obteniendo los datos correctos. Los Macs sin ventilador (MacBook Air serie M) ocultan automáticamente la interfaz del ventilador y el vapor pasa a depender de la temperatura.
Respeta el Modo de Bajo Consumo
La animación baja a 5 fps y la oscilación de la llama se desactiva mientras el Modo de Bajo Consumo está activo, con una fila de estado en Preferencias que explica la anulación.
¿Por qué no está en la App Store?
MacSlowCooker instala un asistente LaunchDaemon con privilegios de root (mediante SMAppService.daemon), lanza /usr/bin/powermetrics y lee AppleSMC + IOHIDEventSystem directamente. Las tres cosas son incompatibles con las reglas del Sandbox de la App Store:
- Las apps de la App Store solo pueden usar
SMAppService.loginItem(a nivel de usuario), noSMAppService.daemon(root). - El Sandbox prohíbe lanzar
powermetrics(que a su vez requiere root). IOHIDEventSystem*y el cliente de usuario deAppleSMCson APIs privadas.
Esta es la misma razón por la que iStat Menus, Stats y TG Pro se distribuyen fuera de la App Store. Distribuir en la App Store significaría recortar la mayor parte de lo que hace que el icono tenga sentido, así que MacSlowCooker se queda como código abierto.
Instalación
Por el momento no hay un DMG firmado para descargar. Compila desde el código fuente:
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
Consulta CONTRIBUTING.md para el ciclo completo de compilación / despliegue / firma.
Preguntas frecuentes
¿Por qué necesita permisos de root?
powermetrics requiere root para muestrear la energía de la GPU y el estado térmico. Para mantener la app principal sin privilegios, MacSlowCooker delega el muestreo en un pequeño asistente LaunchDaemon con privilegios de root y se comunica con él mediante XPC. El asistente rechaza cualquier llamador cuyo requisito de firma de código (Team OU) no coincida.
¿Ralentiza mi Mac?
El uso de CPU en reposo es prácticamente nulo: el temporizador del animador se detiene automáticamente cuando el icono no necesita cambiar, y la actualización del icono del Dock se deduplica mediante un hash cuantizado. El proceso de powermetrics del asistente es el mismo que usa internamente el Monitor de Actividad.
¿Y mi Mac Intel / MacBook Air?
Ambos compatibles. Los Macs Intel usan un esquema de powermetrics distinto (gpu_busy / busy_ns); el parser maneja ambos. Los Macs sin ventilador (MacBook Air serie M) ocultan automáticamente el gráfico del ventilador y el vapor pasa a depender de la temperatura.
¿Puedo contribuir?
Sí: las issues y pull requests son bienvenidas. Consulta CONTRIBUTING.md.
Contacto
Preguntas o reportes de errores:
GitHub Issues (preferido) o hirose@hakaru.net