Sobre el proyecto

MacWatcher es un Spoon de Hammerspoon para macOS que ejecuta comandos en respuesta a eventos del sistema. Está dirigido a usuarios que ya ejecutan Hammerspoon y quieren que scripts de shell o binarios se disparen automáticamente cuando la máquina cambia de estado. Disparadores compatibles, según lo descrito en el README: - Reanudación desde suspensión o desbloqueo (whenResume), con un retraso opcional antes de que se ejecute el comando. - Entrada en suspensión o bloqueo (whenSuspend), que puede ejecutarse inmediatamente antes del evento. - Cambios de red WiFi (onWifiChange); el SSID se añade como argumento al comando. - Cambios de apariencia clara/oscura (onThemeChange), incluidos los cambios que ocurrieron mientras la máquina estaba suspendida; el valor "light" o "dark" se añade como argumento. - Un hook de desmontaje síncrono (whenStop) que se ejecuta cuando se llama a stop(). Las opciones de configuración incluyen un período de enfriamiento (segundos mínimos entre ejecuciones de hooks) y un tiempo de espera de tarea para la ejecución de comandos. Los comandos se ejecutan de forma asíncrona con tiempos de espera, y cada hook acepta un parámetro de retraso. Rutas de instalación cubiertas por el README: descargar el zip de la release y colocar la carpeta MacWatcher.spoon en ~/.hammerspoon/Spoons/, instalar mediante SpoonInstall desde la URL del zip de la release, o clonar el repositorio directamente en el directorio Spoons para desarrollo. Después de la instalación, se debe recargar Hammerspoon. El uso es a través de la configuración de Lua: cargar el Spoon con hs.loadSpoon("MacWatcher"), opcionalmente establecer cooldown y taskTimeout, registrar hooks con los métodos encadenados mostrados anteriormente, y luego llamar a start(). La referencia completa de la API se publica en GitHub Pages. El proyecto tiene licencia MIT.