다양한 애플리케이션을 사용하는 맥 사용자라면 Obsidian, Vim과 같은 에디터부터 웹 브라우저, Finder, iTerm2에 이르기까지 수많은 단축키를 마주하게 됩니다. 하지만 모든 단축키를 암기하는 것은 현실적으로 어렵습니다. 인터넷 검색에 의존하는 방식은 비효율적이므로, 자주 사용하는 단축키는 기억하고, 잊어버린 단축키는 즉시 확인하는 습관을 들이는 것이 중요합니다. 이러한 문제 해결을 위해서는 다음 세 가지 기능이 필요합니다.
- 단축키의 손쉬운 설정
- 단축키 검색
- 단축키를 쉽게 확인
이러한 핵심 기능을 중심으로 다양한 맥 단축키 관리 도구들을 검토하고, 제가 사용하는 최적의 설정을 소개합니다.
맥 단축키 관리 도구 비교 분석
다음은 맥 환경에서 단축키 관리에 활용 가능한 여러 도구들에 대한 분석입니다. 각 도구의 기능과 장단점을 명확히 제시하여 효율적인 선택을 돕고자 합니다.
1. Karabiner-Elements
맥에서 한/영 키 설정 및 이모지/한자 키 설정 등을 위한 가장 널리 사용되는 옵션 중 하나입니다. 윈도우 키보드 사용자에게도 유용하며, 저는 개인적으로도 블루투스 키보드와 함께 사용하고 있습니다. 보다 자세한 설정 정보는 다음 GitHub 레포지토리를 참조하세요.
dotfiles/_karabiner at master · ujinyng/dotfiles · GitHub
2. skhd
텍스트 파일을 이용한 핫키 설정을 지원합니다. 저는 모든 설정을 파일로 관리하는 것을 선호합니다. 하지만, skhd는 제 경우 예상치 못한 동작으로 인해 현재는 다른 앱을 사용하고 있습니다. yabai와의 연동을 위해 설치하기도 했습니다.
3. Raycast
Spotlight의 대안으로 사용 중인 Raycast는 단축키 설정 및 검색 기능을 제공하지만, 관련 확장 프로그램이 없는 경우나 Cmd, Option 키 조합을 사용할 수 없는 제약이 있습니다.
Shortcuts Search
확장 프로그램을 설치하면 현재 앱의 단축키를 검색할 수 있지만, 커스텀 단축키는 확인할 수 없다는 점이 아쉽습니다.4. Hyperkey
Caps Lock 키를 Cmd+Ctrl+Option(+Shift) 조합으로 변환하여 사용하지 않는 키 조합을 단축키로 활용할 수 있도록 합니다. 앱의 기본 단축키와의 충돌을 피하고자 할 때 유용합니다. Karabiner-Elements에서도 유사한 기능을 제공하지만, 이 기능만을 사용하고자 할 때 Hyperkey가 편리할 수 있습니다. 저는 Caps Lock 키를 Esc 키로 사용하고 있기 때문에 Hyperkey는 사용하지 않습니다. Shift만 제외하고 3 수정키 조합으로 설정하면 Caps Lock+Shift도 사용 가능하기때문에 더 많은 키조합이 가능해집니다.
5. CustomShortcuts
앱의 메뉴 항목에 단축키를 추가하거나 변경하는 데 도움을 주는 도구입니다. 시스템 설정의
App Shortcuts
에서도 단축키를 추가할 수 있지만, CustomShortcuts는 메뉴 항목을 더 쉽게 추가할 수 있도록 합니다. CustomShortcuts에서 추가한 단축키는 시스템 설정에도 동기화되는 것으로 보입니다. Karabiner-Elements가 글로벌 단축키에 초점을 맞춘다면, 앱별 기본 기능의 단축키 설정에는 CustomShortcuts가 효과적입니다. 예를 들어, 대부분의 앱에서 사용하는 Cmd+H (숨기기) 단축키를 다른 기능의 키로 변경할 수 있습니다.6. KeyCue
KeyCue의 대안으로 불리는 KeyClu는 지정한 액션 키를 통해 단축키 치트 시트를 표시합니다. 앱 전환 시 해당 앱의 단축키 창을 화면에 표시하는 기능도 제공합니다. 앱 기능의 실행 여부는 Pause 버튼의 상태를 확인하여 판단할 수 있습니다(Pause 버튼으로 바뀌어 있으면 실행 중). 메뉴 항목의 단축키만 가져오는 것이 아니라 커스텀 키 추가를 지원하며, CustomShortcuts 및 skhd와 연동이 가능합니다. 메뉴 항목의 단축키를 변경하려면
Customize
버튼을 클릭하여 CustomShortcuts로 이동하면 됩니다.단축키 입력 시 해당 키가 하이라이트되어 중복 확인이 용이하고, 비활성화된 키, 시스템 설정 키, 사용자 정의 숨김 키(커스텀)의 표시 여부를 설정할 수 있습니다. 모든 키를 추가하면 단축키 목록이 많아져 확인이 어려울 수 있으며, 상단에 표시되는 북마크 기능을 활용하여 필요한 단축키만 우선적으로 확인하는 것을 추천합니다.메뉴 목록에 없는 커스텀 키 추가 방법은 다음 Wiki를 참조하세요.
저는 옵시디언의 단축키를 반영하고자
.obsidian/hotkeys.json
파일을 참고하여 obsidian.keyclu
파일을 생성하고 KeyClu에 import했습니다. 설정이 잘 되어서 다행이지만 Key Code 확인을 위해 Key Codes 앱을 설치했으며, 수정 과정이 다소 번거로웠습니다. 또한 Quick Add에서 설정한 Choice의 단축키는 Choice 이름이 아닌 Choice로만 표시되어 이름을 수정해야 했습니다.7. 기타 유료 도구들
Better Touch Tool, KeyCue, Alfred, Keyboard Maestro 등 오랫동안 사용되어 온 유료 단축 앱들이 있습니다. Better Touch Tool과 Keyboard Maestro는 긍정적인 평가가 많아 특히 궁금하지만, 유료라는 점 때문에 아직 사용해 보지 못했습니다. Raycast와 ScriptKit 조합, 심지어 Raycast와 Alfred를 함께 사용할수도 있지만, 추후 검토해 볼 예정입니다.
현재 사용 중인 설정
현재 저는 Karabiner-Elements, KeyClu, CustomShortcuts, 그리고 Raycast를 조합하여 사용하고 있습니다. 모든 도구는 Homebrew를 통해 설치할 수 있습니다.
brew install keyclu customshortcuts raycast karabiner-elements
이제, Obsidian의 글로벌 단축키 플러그인을 적용하고, 단축키 충돌을 확인한 후 다시 목록을 정리해야 할 것 같습니다. 다음 글에 이어 적겠습니다.