Hammerspoon으로 삽질하기

iOSDevWeekly를 통해서 Hammerspoon이라는 오픈소스 앱을 알게 되었습니다. 이름이 재미난 이 앱은 맥에서 항상 돌아가면서 여러 이벤트나 키보드 단축키에 반응하여 Lua 코드로 작성된 기능들을 실행합니다. 설치하면 멋진 아이콘과 함께 맥 자동화의 방대한 가능성이 열리고 너무나 할 수 있는 것이 많아서 어디서부터 시작해야 하나 막막해집니다. 그 때 생각난 것이

AirPods. iOS와는 잘 붙고 잘 떨어지는데 어째서인지 맥과의 연결이 매끄럽지 못합니다. Toothfairy라는 앱을 써보았지만 별로 도움이 되지 않습니다. 가장 신뢰성 있게 맥과 에어팓을 연결하는 방법은 메뉴바 > 블루투스 아이콘 > AirPods > connect인데, 이거 차라리 유선 이어폰을 꼽고 말지, 라는 생각이 들어서 괴로워집니다. 블루투스는 사람들에게 고통을 주기 위해서 악마가 만들어낸 표준이 아닐까요?

Hammerspoon과 BluetoothConnector로 괴로움을 조금 줄일 수 있습니다. 단축키 하나에 hs.execute()로 BluetoothConnector가 동작하도록 지정해 두는 것이죠.

casc = {"cmd", "alt", "shift", "ctrl"}
hs.hotkey.bind(casc, "A", function()
	hs.execute("swift <path to BluetoothConnector.swift> <AirPods Address>")
end)

casc라는 괴상한 키조합은 Ergodox키보드의 Hyper키를 이용합니다. 이 정도 시점에서 Keyboard Maestro 같은 것을 이용해서 클릭과 메뉴선택을 자동화하면 되는거 아냐? 라는 생각이 슬며시 들지만, 스위프트 스크립트를 돌리는 쪽이 어쩐지 멋지지요.