본문 바로가기
공부/기타

[Mac] 한영전환을 키맵핑으로 해결하는 방법(hidutil을 사용한 방법. 삭제 포함)

by 초코팅촉 2024. 3. 30.
728x90

hidutil이라는 맥 내장 앱을 이용한 방법입니다.

hidutil은 단순 키맵핑을 하기 위한 앱입니다.

 

이 방법을 쓸 경우 다른 프로그램을 설치하지 않으면서 심지어 한영전환의 딜레이도 해결하고,

프로그램 추가설치 없이 해결하는 것을 원하시는 분들께 도움이 될 것 같습니다.(저같이 말이죠)

 

저는 이미 키보드와 마우스를 로지텍 제품을 사용하고 있었기에

카라비너를 사용할 필요를 크게 못느끼고 있었는데요, 이 때문에 단 한 개만 키맵핑을 하기 위해서

또 새로 뭔가 깔아서 쓰기엔 좀 그래서 이 방법을 아주아주매우매우 애용합니다.

 

이 방법만의 단점이라기보단 이 방법을 포함해 카라비너등 각종 키맵핑을 이용한 방법의 단점이라면

affinity designer같은 특정 앱에서 f19가 입력되는 것으로 간주해서

한영전환이 안되어 control + space로 한영전환을 해야됩니다.

 

순서로는

1. 키맵핑 코드 생성

2. 코드 적용

3. 시작 프로그램으로 적용입니다.

 

1. 키맵핑 코드 생성

우선 아래 사이트를 들어갑니다.

https://hidutil-generator.netlify.app

상단에 from key와 to key가 있죠?

각각 caps lock과 f19나 f18을 골라줍니다.

아래는 귀찮으신 분들을 위해 제공해 드리는 코드입니다. 맵핑은 caps lock -> f19입니다.

<?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>

 

2. 코드 적용

아래 코드로 터미널로 ~/Library/LaunchAgents/까지 들어가서 `com.local.KeyRemapping.plist`를 생성합니다.

vi ~/Library/LaunchAgents/com.local.KeyRemapping.plist

 

vi편집기로 파일을 생성 및 열기 한것이기 때문에 우선

i입력 -> cmd+v -> esc -> :wq 순으로 입력합니다.

그럼 아마 바로 적용 될겁니다.

그리고 설정 -> 키보드 -> 키보드 단축키... -> 입력 소스 -> 입력 메뉴에서 다음 소스 선택을 눌러 f19로 맵핑 해주면 끝입니다. 

하지만 마지막 관문이 남아있죠.

 

3. 시작 프로그램으로 적용.

이것도 일단은 앱을 사용하는 것이기에 시작시에 같이 켜져야 매번 부팅시에도 적용이 됩니다. 아래의 명령어를 입력하세요.

launchctl load ~/Library/LaunchAgents/com.local.KeyRemapping.plist

 

 

만약 쓰다가 뭔가 좀 찝찝하고 이상한것같다 싶으시면 아래의 명령어로 바로 지울수 있습니다.

launchctl remove com.local.KeyRemapping

 

 

아래의 글을 참고했습니다.

https://www.clien.net/service/board/cm_mac/16867753