Hammerspoon

Overview & General Sentiment

  • Widely seen as “glue for macOS” and often one of the first tools installed.
  • Used as a highly flexible automation and window-management framework, compared frequently to AutoHotkey on Windows.
  • Many say macOS feels “broken” or unusable without it; others have moved on but still consider it inspirational.

Window Management, Tiling & Aerospace

  • Common use: keyboard-driven window management (move/resize, snap to edges, grids, thirds, multi-monitor layouts).
  • Several users fake tiling WMs via Hammerspoon, defining custom geometries and ratios.
  • Aerospace is frequently recommended as a more performant, purpose-built tiling/space manager; some implement Aerospace-like setups in Hammerspoon but find it slower.
  • macOS Spaces manipulation is described as brittle; moving windows between spaces often requires hacky tricks. Aerospace works around this by implementing its own virtual workspaces.

Hotkeys, Keyboards & Input Tricks

  • Heavy use of “hyper key” setups (e.g., Caps Lock → Ctrl+Opt+Cmd or similar) to avoid conflicts and expand shortcut space.
  • Hammerspoon is often combined with QMK, Karabiner Elements, and custom firmware for layers, modals, and app-specific remaps.
  • Examples include app switching, window-specific bindings, Vim-mode everywhere, and gesture-driven window switching.

Automation & Integrations

  • Used to script: dumping browser tabs into Obsidian or other tools, meeting-light integrations via Home Assistant, Zoom UI hiding, Wi‑Fi toggling on USB events, mic mute toggles, calendar polling, and usage tracking.
  • AppleScript/JXA is often called from Hammerspoon when needed; many note Hammerspoon is far easier to work with than AppleScript alone.

Spoons, Ecosystem & Learning

  • Popular spoons mentioned: MicMute, PaperWM.spoon (PaperWM-like behavior), VimMode, SkyRocket, HyperKey, window managers (miro-windows-manager, ShiftIt reimpls), Swipe-based navigation, and modal toolkits like Spacehammer.
  • There are references to tutorial resources and large shared config repos.

Lua vs JavaScript & Future Direction

  • Current Hammerspoon uses Lua; a v2 is being developed around JavaScript.
  • Some welcome JS for familiarity and ecosystem; others are disappointed, having enjoyed Lua (often via Fennel).
  • Motivations and architectural changes for v2 are discussed but not fully detailed; potential for better integration with JXA is raised but remains unclear.