Sobre o projeto

MacWatcher é um Spoon do Hammerspoon para macOS que executa comandos em resposta a eventos do sistema. Destina-se a utilizadores que já executam o Hammerspoon e querem que scripts shell ou binários sejam acionados automaticamente quando a máquina muda de estado. Acionadores suportados, conforme descrito no README: - Retomar do sono ou desbloquear (whenResume), com um atraso opcional antes de o comando ser executado. - Entrar em sono ou bloquear (whenSuspend), que pode ser executado imediatamente antes do evento. - Mudanças de rede WiFi (onWifiChange); o SSID é acrescentado como argumento ao comando. - Alterações de aparência clara/escura (onThemeChange), incluindo alterações que ocorreram enquanto a máquina estava a dormir; o valor "light" ou "dark" é acrescentado como argumento. - Um hook de desmontagem síncrono (whenStop) que é executado quando stop() é chamado. As opções de configuração incluem um período de cooldown (segundos mínimos entre execuções do hook) e um timeout de tarefa para a execução do comando. Os comandos são executados de forma assíncrona com timeouts, e cada hook aceita um parâmetro de atraso. Caminhos de instalação abordados pelo README: descarregar o zip da release e colocar a pasta MacWatcher.spoon em ~/.hammerspoon/Spoons/, instalar através do SpoonInstall a partir do URL do zip da release, ou clonar o repositório diretamente para o diretório Spoons para desenvolvimento. Após a instalação, o Hammerspoon tem de ser recarregado. A utilização é feita através de configuração Lua: carregar o Spoon com hs.loadSpoon("MacWatcher"), opcionalmente definir cooldown e taskTimeout, registar hooks com os métodos encadeados mostrados acima e, em seguida, chamar start(). A referência completa da API é publicada no GitHub Pages. O projeto tem licença MIT.