Hammerspoon : Automatisez macOS avec Lua – un outil open‑source puissant

Hammerspoon : Outil d’automatisation macOS piloté par Lua

Les utilisateurs de macOS se retrouvent souvent à répéter les mêmes glisser‑déposer ou clics de menu chaque jour. Que vous soyez développeur, designer ou simplement un utilisateur avancé, automatiser ces habitudes peut vous faire gagner des heures de travail. C’est là qu’intervient Hammerspoon : une application légère et open‑source qui expose l’API macOS au langage de script Lua. Avec Hammerspoon, vous pouvez :

  • Créer des raccourcis clavier pour lancer des applications, organiser les fenêtres ou contrôler les médias.
  • Automatiser l’historique du presse‑papier, les notifications ou la gestion des fichiers.
  • Étendre le système avec des modules personnalisés écrits en Objective‑C ou Swift.
  • Se connecter aux événements matériels (par ex. Bluetooth, LEDs du clavier, boutons Stream Deck).
  • Intégrer des services externes (Dropbox, GitHub, etc.) via les bibliothèques HTTP Lua.

Pour commencer

1. Installer Hammerspoon

# En utilisant Homebrew Cask
brew install --cask hammerspoon

Alternativement, téléchargez la dernière version depuis la page des releases sur GitHub et faites glisser Hammerspoon.app dans Applications.

2. Configurer votre premier script

Lors du premier lancement, Hammerspoon crée un répertoire ~/.hammerspoon/. À l’intérieur, placez un fichier nommé init.lua – c’est le fichier de configuration principal.

-- ~/.hammerspoon/init.lua
hs.loadSpoon("Window")

-- Exemple : basculer la fenêtre Finder avec Cmd‑Shift‑F
hs.hotkey.bind({"cmd", "shift"}, "F", function()
  local f = hs.application.get("Finder")
  if f then
    f:activate()
    f:hide()
  else
    hs.osascript.applescript('tell application "Finder" to activate')
  end
end)

Enregistrez le fichier et appuyez sur Cmd‑Alt‑F (le raccourci par défaut pour recharger). Votre liaison clavier personnalisée devrait maintenant fonctionner.

Étendre avec des hooks et des modules

Hammerspoon est livré avec une bibliothèque d’« extensions » exposant divers services macOS : hs.window, hs.pathmonitor, hs.audiodevice, etc. Des extensions supplémentaires se trouvent dans son dépôt dédié aux extensions ou peuvent être écrites directement en C/Objective‑C et compilées dans votre build de Hammerspoon.

-- Exemple : créer un agencement de fenêtre dynamique
hs.hotkey.bind({"cmd", "shift"}, "W", function()
  local win = hs.window.focusedWindow()
  if win then win:move({x=0, y=0, w=0.5, h=1}) end
end)

Vous pouvez également utiliser des bibliothèques Lua tierces via des gestionnaires de paquets standard (luarocks). Le module hs.http de Hammerspoon est utile pour créer de simples webhooks.

Communauté et ressources

  • Documentation – Le guide officiel « Getting Started » ainsi que la documentation API sont indispensables.
  • Exemples – Parcourez et copiez les configurations init.lua d’exemple situées dans le répertoire samples/ du dépôt.
  • Support – Rejoignez le canal IRC #hammerspoon sur Libera ou le Google Group.
  • Contribution – Forkez le dépôt, lancez make test à la racine et soumettez vos pull‑requests. Le projet utilise un pipeline de linting/CI strict.

Conseils pour les utilisateurs avancés

  1. Recharger efficacement – Appuyez sur Cmd‑Option‑F pour recharger votre configuration sans redémarrer l’application.
  2. Utiliser le support Spoon – hs.loadSpoon("<name>") charge des bibliothèques tierces comme Window ou Desktop.
  3. Déboguer avec la console – hs.debug.disable() peut masquer la sortie de débogage, ou utilisez des print pour tracer la logique.
  4. Automatiser au démarrage – Ajoutez ~/.hammerspoon/init.lua aux éléments de connexion pour que les scripts s’exécutent dès le boot.
  5. Créer des modules réutilisables – Placez les modules Lua dans ~/.hammerspoon/modules/ puis require("module") depuis init.lua.

Étapes suivantes

  • Construisez votre propre boîte à outils d’automatisation : ajoutez un contrôleur médiatique personnalisé, créez un gestionnaire de mosaïque de fenêtres ou automatisez votre flux de travail de codage.
  • Expérimentez avec Stream Deck ou l’intégration de la touch bar grâce aux extensions de Hammerspoon.
  • Explorez la wiki des extensions Hammerspoon pour découvrir des fonctionnalités avancées.

En mariant la simplicité de Lua à la profondeur des APIs macOS, Hammerspoon vous permet de programmer votre bureau en un environnement personnalisé et réactif. Plongez, commencez à programmer et observez votre productivité s’envoler.

Original Article: Voir l’original

Partager cet article