TL;DR

  • Hammerspoon은 macOS와 Lua 스크립팅 엔진을 연결하고 시스템 기능을 노출하는 확장 기능을 제공하는 자동화 도구임.
  • 애플리케이션, 윈도우, 마우스, 파일 시스템, 오디오, 배터리, 화면, 키보드·마우스 이벤트, 클립보드, 위치 서비스, 와이파이 등의 macOS API와 상호작용함.
  • Lua 설정 파일에서 이벤트와 동작을 연결해 단축키, 와이파이 연결, 배터리 잔량, 위치 변화에 따른 자동화를 구성함.
  • 설치는 최신 릴리스를 내려받아 애플리케이션을 /Applications/로 옮기는 방식이며, 사용하려면 ~/.hammerspoon/init.lua에 Lua 스크립트를 작성해야 함.
  • 추가 확장 기능은 Lua 스크립트나 Objective-C 확장으로 만들 수 있으며, 기여와 지원은 GitHub 및 Discord를 통해 이뤄짐.

Hammerspoon이란?

  • Hammerspoon은 macOS를 강력하게 자동화하는 도구임.
  • 핵심 구성은 운영체제와 Lua 스크립팅 엔진 사이의 연결 다리이며, 시스템 기능의 특정 부분을 사용자에게 노출하는 확장 기능이 Hammerspoon의 기능을 확장함.

무엇을 할 수 있나?

  • macOS API를 사용하는 Lua 코드를 작성해 애플리케이션, 윈도우, 마우스 포인터, 파일 시스템 객체, 오디오 기기, 배터리, 화면, 저수준 키보드·마우스 이벤트, 클립보드, 위치 서비스, 와이파이 등과 상호작용함.
  • 제공 기능은 [시작 안내서](Getting Started Guide), 전체 API 문서, 미리 만들어진 플러그인인 Spoons에서 확인 가능함.
  • 일반적으로 이벤트와 동작을 연결하는 Lua 설정 파일을 작성함.
  • 키보드 단축키에 여러 윈도우 조작이나 AppleScript를 연결하거나, 와이파이 인터페이스가 집 네트워크에 연결될 때 명령을 실행하거나, 배터리가 특정 비율 아래로 떨어질 때 알림을 표시하는 자동화가 가능함.
  • Mac이 파리에 있다고 감지할 때 iTunes가 자동으로 재생을 시작하게 하는 자동화도 예시로 제시됨.

어떻게 설치하나?

  • 최신 릴리스를 내려받은 뒤 애플리케이션을 /Applications/로 옮기는 방식임.
  • 최신 macOS를 실행하지 않는 구형 Mac에서는 시스템과 호환되는 버전을 [릴리스 노트](Release Notes)에서 확인해야 함.

어떻게 사용하나?

  • 기본 설치 상태의 Hammerspoon은 아무 동작도 하지 않으며, API와 표준 Lua API를 사용하는 스크립트를 ~/.hammerspoon/init.lua에 작성해야 함.
  • 처음 사용하는 경우 전체 API 문서를 참고하며 [시작 안내서](Getting Started Guide)를 읽는 방식임.
  • Lua 스크립팅 언어에 관한 정보는 lua.org에서 확인 가능함.

어떻게 기여하나?

  • 추가 확장 기능은 Hammerspoon에 큰 도움이 됨.
  • 유용한 보조 기능을 제공하는 순수 Lua 스크립트를 작성하거나, 사용자에게 새로운 시스템 기능을 노출하는 Objective-C 확장 기능을 작성할 수 있음.
  • 자세한 내용은 GitHub의 [기여 안내](contribution guidelines on GitHub)에서 확인 가능함.
  • http://www.hammerspoon.org/ 에서 발견한 버그는 GitHub에 보고할 수 있음.

어디서 도움을 받을 수 있나?

  • Hammerspoon에 관해 이야기할 수 있는 Discord 서버가 있으며, [여기를 클릭해 참여](Click here to join)할 수 있음.
  • 버그를 발견하거나 제안 사항이 있으면 [이슈 트래커](issue tracker)에 이슈를 등록할 수 있음.

누가 만들었나?

  • 여러 사람이 제작했으며, 참여자는 [기여자 페이지](Contributors page)에서 확인 가능함.