Hammerspoon은 내 Mac을 하나로 묶는 접착제 같은 존재임
Safari 탭을 Obsidian 문서로 덤프하거나, Hyper 키 조합(Ctrl+Opt+Cmd) 으로 Safari, Finder, Terminal, VS Code, Notes 등 주요 앱을 새 창으로 띄움
AeroSpace와 연동해 창을 다른 모니터로 옮기거나, 두 창을 나란히 배치하고, 교체하거나, 모든 창을 한 워크스페이스로 모으는 등 다양한 자동화를 설정해둠
또한 백그라운드 앱이 죽으면 자동으로 재시작하고, 디스크 이미지가 휴지통으로 가면 언마운트하도록 프롬프트를 띄움
Skim과 연동해 Markdown 링크로 PDF의 특정 섹션으로 점프하는 기능도 있음
나는 두 가지 용도로만 씀 — Teams 창 목록을 확인해 회의 중이면 HomeAssistant에 웹훅을 보내 조명 프리셋을 바꾸고, ical 캘린더를 내려받아 15분 내 회의가 있으면 “pending” 프리셋으로 전환함
원래 Outlook 공유 링크를 썼지만 인증이 필요해져서 Apple Calendar를 경유함. 다만 일정의 40%만 동기화되는 건 여전히 미스터리임
Safari 탭을 Obsidian으로 덤프하는 방법이 궁금함. 간단한 기능인지, 아니면 공유할 만한 스크립트가 있는지 알고 싶음
정말 인상적인 ‘spooning’ 임. 나는 창 관리용으로만 쓰지만, 그 덕분에 macOS가 훨씬 쓸 만해졌음
설정 파일을 공유해줄 수 있는지 궁금함
예시 덕분에 나도 어떻게 활용할지 아이디어가 생겼음
예전엔 tiling window manager를 좋아했지만, Mac에서는 시각적으로 복잡한 앱을 많이 써서 화면 배치가 더 중요해졌음
메일, IDE, 브라우저, 터미널, 채팅 앱 각각에 맞는 창 크기 프리셋을 만들어 Hammerspoon 단축키로 전환함
IDE가 빌드 중일 때 브라우저를 띄워도 하단 로그를 볼 수 있고, 모달 단축키로 앱 전환도 빠름
다단계 모달 개념이 흥미로움
Hammerspoon의 메인테이너로서, 현재 Lua에서 JavaScript로 전환하는 v2를 개발 중임
Lua를 좋아해서 Hammerspoon이 Lua를 쓸 수 있는 거의 유일한 이유였는데, JS로 바뀌면 아쉽지만 현실적인 선택이라 생각함
오랫동안 써온 사용자로서 Lua 전환 이유가 궁금하지만, 어쨌든 훌륭한 앱이라 감사함
“18일 후 출시인가요?”라며 농담 섞인 기대를 표현함
v2의 비전과 아키텍처 변경 이유, JS 선택 배경이 궁금함
AppleScript의 JavaScript 지원과 시너지가 생길지도 궁금함
내 프로젝트 Spacehammer는 Spacemacs/Doom에서 영감을 받은 Hammerspoon 모달 툴킷임
“alt+spc a b”로 브라우저를 열거나, “alt+spc m j/k”로 볼륨 조절, 혹은 어떤 앱의 텍스트든 Emacs에서 편집 가능함
Fennel로 작성되어 REPL을 통해 실시간 개발 가능하고, Yabai 같은 윈도우 매니저와도 잘 연동됨
“볼륨 조절 키가 키보드에 있는데…”라며 농담을 던짐. 다만 Touch Bar Mac 사용자라면 이해함
나는 Hammerspoon으로 가짜 타일링 윈도우 매니저를 구현함
창을 화면 비율로 재배치하고, 단축키로 모니터 간 이동도 가능함
Hacker News 의견들
Hammerspoon은 내 Mac을 하나로 묶는 접착제 같은 존재임
Safari 탭을 Obsidian 문서로 덤프하거나, Hyper 키 조합(Ctrl+Opt+Cmd) 으로 Safari, Finder, Terminal, VS Code, Notes 등 주요 앱을 새 창으로 띄움
AeroSpace와 연동해 창을 다른 모니터로 옮기거나, 두 창을 나란히 배치하고, 교체하거나, 모든 창을 한 워크스페이스로 모으는 등 다양한 자동화를 설정해둠
또한 백그라운드 앱이 죽으면 자동으로 재시작하고, 디스크 이미지가 휴지통으로 가면 언마운트하도록 프롬프트를 띄움
Skim과 연동해 Markdown 링크로 PDF의 특정 섹션으로 점프하는 기능도 있음
원래 Outlook 공유 링크를 썼지만 인증이 필요해져서 Apple Calendar를 경유함. 다만 일정의 40%만 동기화되는 건 여전히 미스터리임
예전엔 tiling window manager를 좋아했지만, Mac에서는 시각적으로 복잡한 앱을 많이 써서 화면 배치가 더 중요해졌음
메일, IDE, 브라우저, 터미널, 채팅 앱 각각에 맞는 창 크기 프리셋을 만들어 Hammerspoon 단축키로 전환함
IDE가 빌드 중일 때 브라우저를 띄워도 하단 로그를 볼 수 있고, 모달 단축키로 앱 전환도 빠름
다단계 모달 개념이 흥미로움
Hammerspoon의 메인테이너로서, 현재 Lua에서 JavaScript로 전환하는 v2를 개발 중임
내 프로젝트 Spacehammer는 Spacemacs/Doom에서 영감을 받은 Hammerspoon 모달 툴킷임
“alt+spc a b”로 브라우저를 열거나, “alt+spc m j/k”로 볼륨 조절, 혹은 어떤 앱의 텍스트든 Emacs에서 편집 가능함
Fennel로 작성되어 REPL을 통해 실시간 개발 가능하고, Yabai 같은 윈도우 매니저와도 잘 연동됨
나는 Hammerspoon으로 가짜 타일링 윈도우 매니저를 구현함
창을 화면 비율로 재배치하고, 단축키로 모니터 간 이동도 가능함
최근 처음으로 Hammerspoon을 써봤는데, 메뉴바 앱의 옵션에 단축키를 직접 바인딩하려고 ChatGPT가 AppleScript로 스크립트를 짜줬음
정말 멋지고, 앞으로 더 많은 자동화를 시도해볼 생각임
Zoom의 화면 공유 컨트롤을 숨기는 스크립트를 만들어서, ESC를 눌러도 다시 나타나지 않게 함
내 전체 설정은 단 한 줄임
ctrl + D로 그리드 인터페이스를 띄워 창을 원하는 위치로 조정함다른 윈도우 매니저보다 단순하고 직관적임
hs.grid.setGrid('4x4')로 그리드 크기를 바꾸거나,hs.grid.ui.textSize로 글자 크기를 조정할 수도 있음Ctrl+D와 충돌하지 않는지 궁금함나도 Hammerspoon 덕분에 창 전환 스트레스에서 해방됨
Cmd+1~9로 Chrome 창을 전환하고, Cmd+0으로 선택 다이얼로그를 띄움
내 설정 파일을 참고하면 창 이름을 기억하고 재시작 후에도 유지됨
Hammerspoon은 Mac의 Automator보다 강력함
Automator가 이제 JavaScriptCore를 지원하듯, Hammerspoon도 Lua 대신 JS를 쓴다면 Node 패키지를 그대로 활용할 수 있을 것임
Lua로 다시 작성해야 한다면 꽤 고생할 듯함