macOS에서 한영키 전환 속도 문제나 한영키 위치를 옮기기 위해서 Karabiner를 많이 사용할 것이다. 하지만 이는 macOS를 업데이트 할 때 종종 호환성이 맞지 않아 작동하지 않을 때가 있다. 이 문제를 해결하기 위한 방법은 서드 파티 앱 없이 키보드 매핑을 하는 것이다. 이해를 쉽게하기 위해서 불필요한 설명은 생략하도록 한다.
1. com.example.KeyRemapping.plist
파일 생성
~/Library/LaunchAgents
에 com.example.KeyRemapping.plist
파일을 생성한다. 파일의 내용은 다음과 같다.
<?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.example.KeyRemapping</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": {한영키로 사용할 키 코드},
"HIDKeyboardModifierMappingDst": 0x700000068
},
]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
키 코드 전체 목록을 찾는데 고생을 좀 했는데, UIKit
의 UIKeyboardHIDUsage
에서 구할 수 있었다. 참고로 코드 상에 나와 있는 값은 10진수이므로 16진수로 변환 해서 입력해야된다.
예시) 오른쪽 커맨드 231 -> 0xE7 -> 0x7000000E7
필자의 경우는 오른쪽 커맨드를 F13키로 매핑하기 위해서 다음과 같이 설정해두었다.
<?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.example.KeyRemapping</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": 0x7000000E7,
"HIDKeyboardModifierMappingDst": 0x700000068
},
]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
2. 터미널 실행
터미널을 열어 다음의 명령어를 실행한다.
sudo chown root ~/Library/LaunchAgents/com.example.KeyRemapping.plist
sudo launchctl load ~/Library/LaunchAgents/com.example.KeyRemapping.plist
그리고 재부팅하면 매핑이 완료되어있다.
3. 단축키 설정
시스템 환경설정 > 키보드 > 단축키 > 입력 소스
키는 매핑이 완료된 상태기 때문에, ‘입력 메뉴에서 다음 소스 선택’에 매핑한 키를 클릭해주면 된다.
참고 자료
https://www.nanoant.com/mac/macos-function-key-remapping-with-hidutil
댓글남기기