Domina la Automatización de macOS con Hammerspoon
Domina la Automatización de macOS con Hammerspoon: Tu Puerta a un Flujo de Trabajo Más Inteligente
Hammerspoon es una herramienta revolucionaria de automatización de escritorio para macOS que conecta las APIs a nivel del sistema con un motor de scripting flexible en Lua. Esto te permite ejercer un control potente sobre tu sistema escribiendo scripts personalizados en Lua. Ya sea que busques simplificar tareas repetitivas, gestionar tus ventanas con precisión o reaccionar a eventos del sistema, Hammerspoon proporciona el marco para construir tu flujo de trabajo ideal.
Primeros Pasos: Tus Primeras Acciones con Hammerspoon
Para comenzar tu viaje con Hammerspoon, descarga la última versión e instálala en tu carpeta de Aplicaciones. Al ejecutar la aplicación por primera vez, se te pedirá que otorgues los permisos de Accesibilidad necesarios. Una vez configurado, puedes acceder a la configuración de Hammerspoon haciendo clic en su icono en la barra de menú y seleccionando 'Open Config'. Para una documentación exhaustiva de la API, explora la documentación oficial de la API de Hammerspoon para descubrir la gran variedad de extensiones y funciones a tu disposición.
El Poder del Scripting en Lua
Lua es un lenguaje de programación ligero, pero potente, perfecto para automatizar tareas complejas. Si eres nuevo en Lua, un tutorial rápido como 'Learn Lua in Y minutes' es un excelente punto de partida.
Funcionalidades Principales y Ejemplos Prácticos:
1. Hola Mundo y Notificaciones:
Comienza con lo básico. Hammerspoon te permite asociar atajos de teclado para activar acciones. Un ejemplo sencillo implica asociar una combinación de teclas para mostrar una notificación de "¡Hola Mundo!" usando hs.alert.show()
o notificaciones nativas de macOS a través de hs.notify.new()
.
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "W", function()
hs.alert.show("¡Hola Mundo!")
end)
2. Spoons: Plugins Pre-hechos: Mejora las capacidades de Hammerspoon con 'Spoons', plugins pre-hechos que extienden su funcionalidad. Por ejemplo, el Spoon 'AClock' se puede instalar y usar para alternar su visualización con un atajo de teclado personalizado.
hs.loadSpoon("AClock")
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "C", function()
spoon.AClock:toggleShow()
end)
3. Gestión de Ventanas:
Toma el control de tus ventanas. Hammerspoon destaca en la manipulación de marcos de ventanas. Mueve ventanas con precisión, redimensiona para que ocupen mitades de tu pantalla o crea diseños complejos de múltiples ventanas usando hs.layout
. Incluso puedes asociar teclas para un movimiento de ventana intuitivo inspirado en Nethack.
-- Mueve la ventana enfocada 10 píxeles a la izquierda
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "H", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x - 10
win:setFrame(f)
end)
-- Mueve la ventana enfocada a la mitad izquierda de la pantalla
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Left", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local screen = win:screen()
local max = screen:frame()
f.x = max.x
f.y = max.y
f.w = max.w / 2
f.h = max.h
win:setFrame(f)
end)
4. Filtros de Ventanas:
Contextualiza tu automatización con hs.window.filter
. Este módulo te permite aplicar reglas basadas en la aplicación, propiedades de la ventana, o incluso predicados personalizados, permitiendo un control preciso sobre cuándo se ejecutan tus scripts. Un caso de uso práctico es limpiar el portapapeles al pegar desde Safari a Mensajes para evitar la expansión no deseada de enlaces.
5. Recarga de Configuración:
Optimiza tu proceso de desarrollo recargando automáticamente tu configuración de Hammerspoon. Puedes asociar un atajo de teclado para recargas manuales (hs.reload()
) o usar hs.pathwatcher
para monitorear tu directorio de configuración en busca de cambios y activar recargas automáticas.
6. Interacción con Menús de Aplicaciones: Automatiza interacciones con los menús de las aplicaciones. Hammerspoon puede encontrar y seleccionar elementos de menú, permitiéndote controlar funciones de la aplicación, como recorrer las cadenas de Agente de Usuario de Safari.
7. Elementos de Barra de Menú y Eventos del Sistema:
Crea elementos personalizados en la barra de menú usando hs.menubar
para mostrar el estado o activar acciones. También puedes reaccionar a eventos del sistema como activaciones de aplicaciones (hs.application.watcher
), cambios en la red Wi-Fi (hs.wifi.watcher
), o conexiones de dispositivos USB (hs.usb.watcher
).
8. Automatización Avanzada: Las capacidades de Hammerspoon se extienden a la elusión del bloqueo de pegado, la ejecución de AppleScript, el control de aplicaciones multimedia como iTunes y Spotify, la posibilidad de dibujar en la pantalla para retroalimentación visual, el envío de iMessages/SMS e incluso la automatización del propio Hammerspoon a través de URL.
Hammerspoon es un testimonio del poder del software de código abierto, ofreciendo una flexibilidad sin precedentes para que los usuarios de Mac personalicen y automaticen sus vidas digitales. Sumérgete, experimenta con los ejemplos y descubre cómo Hammerspoon puede transformar tu experiencia informática diaria.