Windows에서는 Win + 숫자키
를 누르면 작업표시줄에 있는 앱을 제어할 수 있습니다.
Mac에서 같은 기능을 찾으려고 많은 무료/유료 앱을 사용해봤지만 3번 기능을 지원하는 앱이 없었습니다.
그러던 중 Hammerspoon 을 알게되어 직접 구현해서 사용하고 있습니다.
Mac에서 사용할 수 있고, Lua 라는 언어로 다양한 API를 제공합니다.
키보드, 앱, 창, 마우스, 볼륨, Alert 등을 컨트롤 할 수 있습니다.
해머스푼 API로 필요한 기능은 다음과 같습니다.
다행히 위 기능이 모두 있습니다.
hs api 사용해서 키 입력에 대한 이벤트 함수를 바인딩합니다.
local function register(key, appName, launchName)
local function initOrNext()
controller.initOrNext(appName, launchName)
end
hs.hotkey.bind({ 'option' }, key, initOrNext, nil, initOrNext)
end
컨트롤러를 작성해줍니다.
function initOrNext(appName, launchName)
local tabName = getTabName(appName)
local currentTabName = tabAlert.getTabName()
if tabName == currentTabName then
tabAlert.nextTab()
return ;
end
local windowList = getSortedWindows(appName)
if windowList == nil or #windowList == 0 then
hs.application.launchOrFocus(launchName or appName)
return ;
end
local title = appName
tabAlert.startTab(tabName, title, windowList, 1)
end
github : https://github.com/jys9962/my-hammerspoon/tree/main/libs/optionKey
위와 같이 만들어서 사용한지 이제 반년정도 된 것 같습니다.
가끔 앱을 추가로 등록하거나 수정하면서 쓰고 있습니다.
IDE, 웹브라우저, AI, DB Tool, iterms, notion, 카톡, 메모, 캡처 등 자주 쓰는 앱은 모두 등록해서 사용중입니다.
참고한 블로그: https://johngrib.github.io/wiki/hammerspoon/
공식문서: https://www.hammerspoon.org/docs/index.html