맥OS 한영전환 빠르게 하기
hidutil 한입?
서론
키보드 왼쪽 중앙에는 사용 빈도와 필요성에 비해 지나치게 좋은 위치
를 차지하고 있는 Caps Lock
키가 있다. 그래서인지 키보드 입력 언어(Input Source)를 여러 개 사용할 경우, 맥OS에서는 기본적으로 이 Caps Lock
키를 통해 언어 전환이 가능하도록 설정되어 있다.

문제는 이 Caps Lock
을 통한 키보드 언어 전환이 꽤 불편하다. 전환에 약간의 딜레이가 있을 뿐 아니라, 심지어는 한번씩 입력이 씹혀서 전환이 안될 때도 있다.
해결 방법
키보드의 Caps Lock
에 일반적으로 사용되지 않는 키(F18, F19, ...)를 매핑해두고, 설정의 키보드 단축키에서 Select next source in Input Menu
에 대한 단축키를 해당 키로 바꿔주면 된다.
Caps Lock 키에 매핑을 변경하기 위해 karabiner
라는 프로그램을 활용하는 방법도 있지만, 개인적으로 키 하나 때문에 별도의 프로그램을 설치하고 싶지는 않아서 맥OS 내장 프로그램인 hidutil
을 사용하고 있다.
언젠가 한번쯤은 "그때 그거 어떻게 했더라?" 싶을 때가 생길 것 같아서, 적용 과정을 기록해두려 한다:
- 먼저
Caps Lock
키에F19
를 매핑시키기 위한 스크립트를 작성해야 한다.
아래 코드를 그대로 복사해서 사용해도 되고, hidutil generator 사이트에서 원하는 키를 선택해 스크립트를 생성해도 된다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.KeyRemapping</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": 0x700000039,
"HIDKeyboardModifierMappingDst": 0x70000006E
}
]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
com.local.KeyRemapping.plist 파일로 저장
com.local.KeyRemapping.plist
파일을~/Library/LaunchAgents
경로로 옮긴다.
처음부터 해당 경로에 파일을 생성해도 무방하다.- 재부팅 없이 변경사항을 바로 적용해주기 위해 터미널에서
launchctl load ~/Library/LaunchAgents/com.local.KeyRemapping.plist
를 실행한다. - 마지막으로 설정 -> 키보드 단축키 ->
Input Sources
에 가서Select next source in Input Menu
의 기본 단축키인control + option + space
를 더블클릭한 다음 Caps Lock 키를 입력하면, 단축키가F19
로 변경되는 것을 확인할 수 있다.


Select the previous input source는 약간의 딜레이가 있기 때문에,
아래쪽에 있는Select next source in Input menu
사용!
요약
com.local.KeyRemapping.plist
파일 만들기
~/Library/LaunchAgents
경로에 저장하기 (재부팅 시에도 적용될 수 있도록)launchctl load ~/Library/LaunchAgents/com.local.KeyRemapping.plist
실행하기
(로그인 아이템 등록)
로그인 아이템 등록을 해제하려면:launchctl unload ~/Library/LaunchAgents/com.local.KeyRemapping.plist
마무리
키씹힘 없이, 한영전환 아주 빠르게 잘 된다!
aㅁaㅁaㅁaㅁaㅁaㅁaㅁaㅁaㅁaㅁ