Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Hammerspoon – Comment automatiser macOS avec des scripts Lua

Si vous êtes sous macOS et que votre passion dans la vie c’est d’automatiser des trucs, voici un outil qui modestement risque bien de changer votre vie.

Hammerspoon est un logiciel qui se loge dans la barre de notification de macOS et qui permet d’agir sur les APIs de macOS à partir de simples scripts écrits en Lua (ça se prononce LOU-ah.

Pour ceux qui ne connaitraient pas Lua, il s’agit d’un langage de programmation scripté très simple à comprendre. Hammerspoon agit donc comme un bridge entre vos scripts Lua et votre système d’exploitation Apple.

Une fois Hammerspoon installé, vous devriez voir son icône dans la barre de notifs. Cliquez dessus, choisissez « Preferences » et donnez-lui accès aux options d’accessibilité.

Capture d'écran de la page d'accueil de Hammerspoon

Puis cliquez sur « Open Config ». Cela va ouvrir le fichier init.lua dans votre éditeur de code / texte par défaut. Et à partir de là, vous allez pouvoir coder des choses.

Capture d'écran de l'interface de Hammerspoon montrant un script Lua en cours d'édition

Pour commencer, je vous propose un Hello World. Collez le code suivant dans init.lua, sauvegardez, puis dans Hammerspoon, cliquez sur « Reload Config »

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "W", function()
  hs.alert.show("Hello World!")
end)

Ensuite, en appuyant sur CMD + ALT + CTRL + W, vous verrez une alerte afficher « Hello World! ».

Voilà en gros le principe. Mais évidemment, vous pouvez aller beaucoup plus loin que cela. Il est possible par exemple de déclencher certaines actions lorsque vous lancez une application précise ou lorsque vous vous connectez à un réseau wifi particulier. Par exemple, il est possible d’envoyer un SMS / iMessage à quelqu’un lorsque vous déboulez sur un réseau wifi précis.

Capture d'écran de la documentation en ligne de Hammerspoon

Bref, vous comprenez le principe.

Il n’y a pas mal d’exemples dans la documentation et le détail de l’API est ici. Cela va vous permettre d’automatiser plein de trucs, de l’envoi de message, au redimensionnement de fenêtres, de la génération de mot de passe, de la traduction (appel de l’API DeepL) et j’en passe…

Et si vous cherchez de l’inspiration ou des scripts sympas à installer, il y a plein de « spoons » proposés par la communauté, que vous pouvez télécharger ici.


Les articles du moment