일반적으로 클립보드 히스토리Clipboard History를 지원하는 앱은 최근 클립보드에 저장된 기록이 상단에 보여지고 최근 사용한 내용을 기준으로 단축키가 할당되는 방식입니다. 하지만 필자의 경우 스니펫Snipet 등 클립보드 활용이 상당히 많기 때문에 실질적으로 고정으로 사용해야하는 클립보드는 금방 뒤로 밀려 다시 사용하려면 한참 찾아야 하거나 완전히 찾을 수 없게 되어버립니다.
이 경우 저장할 내용을 시스템 클립보드가 아닌 직접 지정한 변수에 할당해두면 Command + C 로 저장되는 시스템 클립보드가 아닌 새로운 임시 공간에 저장되고 이렇게 할당 된 변수에 단축키를 지정해두면 시스템을 재실행하지 않는 한 언제든지 다시 불러와 사용할 수 있습니다.
필자의 경우 하이퍼 키 조합으로 사용중인 Command + Shift + Option 과 숫자 8 을 누르면 임시 변수에 텍스트를 복사해서 저장하고 Option + 8 키 조합으로 저장된 텍스트를 언제든지 불러와서 입력할 수 있게 해 두었고 8 부터 0까지 총 세 개의 단축키를 등록해서 활용1하고 있습니다. 이런 식으로 클립보드를 변수에 할당하는 방식은 다양하게 존재하지만 필자의 경우 해머스푼Hammerspoon이 익숙해 이 방식을 주로 사용하고 있으며 기본적인 설정 과정은 다음과 같습니다.
튜토리얼 환경: macOS Ventura 13.0 (M1), 해머스푼 v0.9.97 (6267)
해머스푼 설치
이번 설명에서는 해머스푼을 이용하는 것이기 때문에 기본적으로 해머스푼을 설치해야 합니다. 해머스푼을 설치하고 세팅하는 기본적인 과정은 해머스푼의 기본적인 사용 방법을 확인하세요.
클립보드 변수 할당 스크립트
해머스푼을 설치한 뒤 init.lua 파일을 열고 변수를 할당하는 스크립트를 추가 후 다시 로드하면 지정한 단축키로 클립보드를 변수에 할당하고 할당 된 변수를 다시 단축키로 붙여넣기 할 수 있습니다.
- 해머스푼이 실행 된 상태에서 상단 메뉴 막대의 Open Config 메뉴를 통해 init.lua 파일을 열어줍니다.
- 아래 스크립트를 Lua 파일에 추가한 뒤 저장합니다. 각 함수 설명은 주석으로 대체하며 키 조합은 필요시 원하는 값으로 수정할 수 있습니다. 그리고 아래 스크립트를 복사해서 하단에 추가하면 변수인 save[1] 값을 save[2], save[3] 와 같이 변경 하면 클립보드가 저장될 변수를 더 등록해서 사용할 수 있습니다. 물론 변수명 자체를 다르게 변경해 사용할 수도 있습니다.
local pasteboard = require("hs.pasteboard")
local save = {}
-- 주석: shift + cmd + option + 8 입력시 복사한 내용을 save[1] 변수에 할당
hs.hotkey.bind({'shift','cmd','option'}, '8', function()
hs.eventtap.keyStroke({'cmd'}, 'c')
hs.timer.doAfter(0.1, function()
save[1] = pasteboard.getContents()
end)
end)
-- 주석: Option + 8 입력시 save[1] 변수에 저장된 내용을 클립보드로 가져와 cmd + v 키로 붙여넣기
hs.hotkey.bind({'Option'}, '8', function()
if save[1] then
pasteboard.setContents(save[1])
hs.eventtap.keyStroke({'cmd'}, 'v')
end
end)
- 저장 후 Reload 메뉴를 이용해 다시 실행하면 재부팅 과정없이 시스템에 바로 적용됩니다.
이제 원하는 텍스트를 지정한 단축키로 복사해 두면 복사 이후 추가된 클립보드 데이터와 무관하게 시스템을 재부팅하거나 다른 값으로 덮어씌워지기 전까지는 언제든지 재 사용할 수 있습니다.
마치며
이번 포스트에서는 맥에서 해머스푼을 활용해 특정 클립보드 히스토리를 변수에 할당해 단축키로 빠르게 적용하는 방법에 대해 알아보았습니다. 맥이 아닌 윈도우Windows에서는 오토핫키AutoHotKey라는 도구를 활용하면 위와 흡사한 방식으로 특정 클립보드를 변수에 할당해서 재 사용할 수 있습니다.
필자와 같이 시스템 클립보드가 자주 갱신되는 상황이 아니라면 Pasty, Maccy, PasteBot 또는 Clipy 와 같이 기본적으로 제공하는 기능으로 충분히 사용할 수 있지만 그렇지 않은 경우 꽤나 불편할 수 있습니다. 이렇게, 맥에서 특정 텍스트를 시스템 클립보드가 아닌 별도의 변수에 저장해 재사용 하고싶다면 해머스품에 위 스크립트를 추가해서 적용해 보시길 바랍니다.