맥에서 Caps Lock
을 한/영 전환키로 사용하면서부터 딜레이가 생기거나, 제대로 바뀌지 않는 고질적인 문제가 꾸준히 발생해왔다.
대소문자를 고정하는 Caps Lock
기능과 한/영 전환 기능을 누른 시간에 기반하여 구분하는 과정에서 생긴 문제로 추정되지만, Caps Lock
기능을 해제해도 여전히 문제가 발생한다.
이에 사용자들은 karabiner-elements
등의 편법을 통해 Caps Lock
키를 실제로 사용하지 않는 F18
등의 키로 매핑하여 해결해 왔다.
하지만, Apple Silicon을 탑재한 기기들에서는 다음과 같은 문제가 있다.
karabiner-elements
가 제대로 지원되지 않는 이슈가 있어hammerspoon
등의 차선책을 사용해야한다.- M1 이전까지의 맥과는 다르게 키매핑만으로 문제가 완전히 해결되지 않는다.
이제, Mac에서 공식적으로 지원하는 방법을 통해 karabiner-elements
, hammerspoon
같은 서드파티 앱 없이 이 문제를 해결해보자.
Mac이 부팅될 때 항상 키매핑을 자동으로 실행시켜줄 수 있도록, LaunchAgents
디렉토리에 키매핑 명령어를 담은 파일을 만들어줄 것이다.
(자세한 내용은 How to remapping keys on macOS without thirdparty applications를 참고하자)
먼저, 터미널을 실행하여 ~/Library/LaunchAgents
아래에 com.example.KeyRemapping.plist
라는 스크립트를 생성하자.
$ tee ~/Library/LaunchAgents/com.example.KeyRemapping.plist << END
<!--
Put this file in ~/Library/LaunchAgents/com.example.KeyRemapping.plist to
automatically remap your keys when macOS starts.
-->
<?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": 0x700000039,
"HIDKeyboardModifierMappingDst": 0x70000006D
}
]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
END
이제 재부팅하면 위의 스크립트가 실행되며, Caps Lock
키가 F18
키로 매핑될 것이다.
TIP 재부팅 없이 진행하고 싶다면 아래 커맨드를 한번 더 입력해주자. 위의 스크립트가 실행하는 명령어와 동일한 내용이다. 다만, 재부팅시에 초기화되기 때문에 위의 작업은 반드시 해주어야 한다.
$ hidutil property --set '{"UserKeyMapping":[ { "HIDKeyboardModifierMappingSrc": 0x700000039, "HIDKeyboardModifierMappingDst": 0x70000006D } ]}'
먼저, [시스템 환경설정] - [키보드] - [단축키 탭] - [입력소스] 로 이동하자. 기본값으로 아래와 같은 상태일 것이다.
입력 메뉴에서 다음 소스 선택
항목을 누르고, Caps Lock
키를 누르면 아래처럼 F18
키가 할당될 것이다.
이제 고통받지 말고 마음껏 타이핑하자!👏👏👏
p.s. 오류 혹은 더 좋은 방법은 코멘트로 공유 부탁드리겠습니다!
많은 도움이 되었습니다. 👍