# M1 맥북에서 한영키 전환 딜레이 해결하기 맥에서 `Caps Lock`을 한/영 전환키로 사용하면서부터 **딜레이가 생기거나**, **제대로 바뀌지 않는** 고질적인 문제가 꾸준히 발생해왔다. 대소문자를 고정하는 `Caps Lock`기능과 한/영 전환 기능을 **누른 시간**에 기반하여 구분하는 과정에서 생긴 문제로 추정되지만, `Caps Lock`기능을 해제해도 여전히 문제가 발생한다. 이에 사용자들은 `karabiner-elements`등의 편법을 통해 `Caps Lock`키를 실제로 사용하지 않는 `F18`등의 키로 매핑하여 해결해 왔다. 하지만, Apple Silicon을 탑재한 기기들에서는 다음과 같은 문제가 있다. - `karabiner-elements`가 제대로 지원되지 않는 이슈가 있어 `hammerspoon`등의 차선책을 사용해야한다. - M1 이전까지의 맥과는 다르게 키매핑만으로 문제가 완전히 해결되지 않는다. 이제, Mac에서 공식적으로 지원하는 방법을 통해 `karabiner-elements`, `hammerspoon`같은 서드파티 앱 없이 이 문제를 해결해보자. ## 1. hidutil을 통해 우선 `Caps Lock`키를 다른키로 매핑하자 Mac이 부팅될 때 항상 키매핑을 자동으로 실행시켜줄 수 있도록, `LaunchAgents` 디렉토리에 키매핑 명령어를 담은 파일을 만들어줄 것이다. (자세한 내용은 [How to remapping keys on macOS without thirdparty applications](https://gist.github.com/bennlee/0f5bc8dc15a53b2cc1c81cd92363bf18)를 참고하자) 먼저, 터미널을 실행하여 `~/Library/LaunchAgents` 아래에 `com.example.KeyRemapping.plist` 라는 스크립트를 생성하자. ```bash $ 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 > 재부팅 없이 진행하고 싶다면 아래 커맨드를 한번 더 입력해주자. > 위의 스크립트가 실행하는 명령어와 동일한 내용이다. 다만, 재부팅시에 초기화되기 때문에 위의 작업은 반드시 해주어야 한다. > ```bash > $ hidutil property --set '{"UserKeyMapping":[ > { > "HIDKeyboardModifierMappingSrc": 0x700000039, > "HIDKeyboardModifierMappingDst": 0x70000006D > } > ]}' > ``` ## 2. 키보드 환경설정에서 `입력 메뉴에서 다음 소스 선택` 항목을 매핑한 `F18`키로 바꾸자. 먼저, [시스템 환경설정] - [키보드] - [단축키 탭] - [입력소스] 로 이동하자. 기본값으로 아래와 같은 상태일 것이다. <img width="626" alt="before" src="https://user-images.githubusercontent.com/35001304/160125903-b6610a1a-f4c7-4397-9b16-ba24a5174ae0.png"> `입력 메뉴에서 다음 소스 선택` 항목을 누르고, `Caps Lock`키를 누르면 아래처럼 `F18`키가 할당될 것이다. <img width="629" alt="after" src="https://user-images.githubusercontent.com/35001304/160125921-b494bdb1-7be9-4dd2-b263-2e618e269887.png"> 이제 고통받지 말고 마음껏 타이핑하자!👏👏👏 p.s. 오류 혹은 더 좋은 방법은 코멘트로 공유 부탁드리겠습니다!