맥에서 단축키로 일본어 입력 전환 — Karabiner 규칙을 GUI로 만드는 빌더를 공개합니다
손쉽게 입력언어 순서를 단축키로 만들어서 사용하자.
한국어·일본어·영어를 오가며 타이핑할 때 ⌃⌥Space를 연타하며 순환하는 게 늘 불편했습니다. 그래서 "이 키를 누르면 무조건 이 언어"가 되는 Karabiner 규칙 생성기를 만들었습니다.
왜 만들었나
macOS는 기본적으로 입력 소스 순환(⌃⌥Space)만 제공하고, 언어별 직접 전환 단축키는 지원하지 않습니다. Karabiner-Elements의 select_input_source나 macism 같은 도구로 직접 전환을 만들 수는 있는데, 여기에 함정이 하나 있습니다. 한국어·일본어·중국어(CJK) 입력 소스에는 오래된 macOS API 버그가 있어서, 메뉴바 표시는 바뀌는데 실제 타이핑은 이전 언어로 입력되는 현상이 생깁니다.
이 빌더는 검증된 우회 방식으로 규칙(JSON)을 생성해 그 버그를 피합니다. 설치가 필요 없는 단일 HTML 파일이고, 브라우저에서 바로 동작합니다.
동작 원리
select_input_source로 직접 전환 — 버그 없음항상 앵커에서 출발하기 때문에, 지금 어떤 언어에 있든 단축키 1번으로 목표 언어에 도착합니다. 우회 아이디어는 lawrence-lo/input-source-change를 참고했고, 저는 순서 기반 자동 계산과 GUI를 얹었습니다.
사용법
- STEP 1 — 입력 소스 등록: 시스템 설정에 등록된 입력 소스를 메뉴바 표시 순서 그대로 전부 추가합니다. ⌃⌥Space 이동 횟수를 이 순서로 계산하므로 순서가 정확해야 합니다.
- STEP 2 — 규칙 작성: 단축키를 실제로 눌러 캡처하고(F13~F20, 오른쪽⌘ 단독 등은 직접 선택 가능), 전환할 소스를 고릅니다. 규칙마다 실행 계획이 미리 표시됩니다.
- JSON 변환 → 복사하거나
input-sources.json으로 다운로드합니다. - Karabiner에 추가합니다. 기존 설정은 건드리지 않습니다.
mv ~/Downloads/input-sources.json ~/.config/karabiner/assets/complex_modifications/
이후 Karabiner-Elements 설정 → Complex Modifications → Add predefined rule → Enable 하면 끝입니다.
전제조건 두 가지
- 시스템 설정 → 키보드 → 키보드 단축키 → 입력 소스에서 "입력 메뉴에서 다음 소스 선택 (⌃⌥Space)"이 켜져 있어야 합니다.
- 앵커가 될 일반 레이아웃(영어 등)이 입력 소스 목록에 최소 1개 필요합니다.
세부 옵션
연속 전환(⌃⌥Space 2회 이상)이 중간 언어에서 멈추는 환경이라면 "⌃⌥Space 처리 간격 늘리기"를 체크하고 간격(50~200ms)을 선택하세요. 각 전환 키 이벤트에 hold_down_milliseconds가 부여됩니다.
입력 소스 ID가 궁금할 때는 터미널에서 defaults read com.apple.HIToolbox AppleEnabledInputSources를 실행하거나, Karabiner-EventViewer의 Variables 탭에서 input_source 항목을 확인하면 됩니다.
주의사항
규칙은 등록 시점의 입력 소스 순서에 의존합니다. 시스템 설정에서 소스를 추가·삭제해 순서가 바뀌면 빌더에서 다시 생성해야 합니다. CJK 직접 전환 실패 자체는 macOS 이슈로, Karabiner 공식 문서에도 명시되어 있습니다.
언어를 세 개 오가는 사람에게 "순환"은 매번 룰렛이었습니다. 이제는 키 하나가 곧 언어 하나입니다.
OPEN SOURCE
빌더 소스와 자세한 설명 보기
단일 HTML 파일이라 클론해서 바로 열어도 되고, GitHub Pages로 배포해 쓸 수도 있습니다. MIT 라이선스입니다.
GitHub 저장소 열기 →비슷하게 다국어 타이핑으로 고생 중이시라면, 어떤 조합(언어·단축키)으로 쓰시는지 댓글로 알려주세요. 규칙 예시를 추가해 두겠습니다.