[Mac OS] 해피해킹 키보드 매핑하기 - Karabiner

Carvin·2023년 8월 3일
1
post-thumbnail

최근에 굉장히 오랜 고심끝에 해피해킹 하이브리드 type-s 를 구매하게 되었습니다. 비싼 가격 때문에 고민하고 터무니없는 배열로 걱정했지만 생각보다 잘 적응하게 되어서 동일한 배열인 키크론 q60 까지 구매하게 되었습니다.

쨋든 본론으로 돌아와서, 해피해킹 배열의 키보드가 가지는 가장 높은 진입장벽은 아마 방향키가 없다는 것입니다. 다행히도 방향키 기능을 Fn + [;/' (←↑↓→) 로 사용할 수는 있습니다.

기존 해피해킹 방향키

그런데 개인적으로는 이러한 기본 배열이 생각보다 새끼손가락에 무리가 많이 있었고 위 방향키와 우측 방향키를 같이 눌러야하는 상황에서 손가락의 위치를 어떻게 잡아야할지 감이 잡히지 않았습니다. 다른 분들께서 사용하고 있는 방향키를 참고하 제가 직접 눌러보면서 편한 키를 아래 그림과 같이 찾을 수 있었습니다. 방향키는 凸 처럼 기존 형태를 유지하되, 편한 Command 키를 활용하고자 했습니다.

새로 바꾸려는 해피해킹 방향키

다행히도 이러저러한 이유로 많은 사람들이 키보드 매핑 어플리케이션이 이미 많이 사용하고 계셨고, 저는 그 중에서 가장 예시가 많았던 karabiner - elements 를 사용하게 되었습니다.

사실 karabiner 와 같은 키 매핑 도구는 보통 반응속도, window와의 호환, 한영키 전환에서 더 많이 사용되기 때문에 다른 분들의 글을 참고하면 더 다양한 기능을 사용할 수 있습니다.

karabiner 설치

karabiner - elements 에서 직접 파일을 다운로드 받아 설치할 수 있지만 저는 homebrew 를 통해서 설치하였습니다.
다음 간단한 명령어를 입력하고 중간에 컴퓨터 비밀번호만 입력해주면 정말 빠르게 설치할 수 있습니다.

brew install karabiner-elements

설치는 완료되었지만 바로 karabiner 를 사용할 수 없습니다. 아마 키 입력이라는 기본적인 기능에 접근하다보니 보안쪽 문제를 해결해줘야하는 것 같습니다.

설정 > 개인정보 보호 및 보안(Security & Privacy) > 입력 모니터링 에서 추가된 karabiner 관련 기능을 확인할 수 있고 해당 기능들을 모두 on 상태로 켜줍니다.

지금까지 잘 따라오셨다면 이제 karabiner 를 설치를 완료하여 사용할 수 있게 되었습니다!

karabiner 방향키 매핑

karabiner 을 실행하면 다음과 같은 화면이 나오게 됩니다. 오늘 키보드 매핑은 2개 이상의 키로 이뤄진 기능이기 때문에 Complex Modifications 메뉴를 사용할 예정입니다. capsLock -> Tab 와 같은 간단한 키 기능의 변경은 Simple Modifications 에서도 가능합니다.

Complex Modifications 으로 이동하면 Add rule 이라는 기능을 볼 수 있는데, 여기에 바로 본인이 원하는 특정 rule 을 추가하는 것으로 이해할 수 있습니다.

원래는 Add rule > Import more rule from the internet(open a web browser) 이동해서 다른 사용자분들께서 올린 rule 을 import 하여 쉽게 사용할 수 있지만 제가 원하는 키 매핑은 찾을 수 없었습니다..🥲 예를 들어 방향키 관련 규칙은 이렇게 여러개 찾아볼 수 있었습니다.

그렇다면 원하는 키 매핑을 어떻게 할 수 있을까요?!
바로 직접 rule 을 만들면 됩니다!

rule 생성

karabiner 의 Complex Modifications 의 rule 은 바로 다음 경로의 파일에 저장됩니다.

~/.config/karabiner/karabiner.json

위 경로를 직접 찾아가보려고 합니다. 보통은 사용자 > 컴퓨터 계정 > 에 .config 라는 폴더가 있지만 숨김처리 되어있기 때문에 Finder 에서 바로 볼 수는 없습니다. 2가지 방법이 있습니다.

  • 터미널로 접근하기
cd ~/.config
cd karabiner
  • Finder 에서 접근하기
    • 컴퓨터 계정 폴더에서 Shift + Command + . 를 누름
    • .config > karabiner 폴더로 이동

이제는 karabiner.json 이라는 파일을 만들어야하는데, json 파일을 처음부터 직접 만들기에는 구조가 어떻게 생겼는지 모르기 때문에 예시 rule 을 하나 추가한 뒤에 수정하도록 하겠습니다.

Complex Modifications > Add rule 에서 2번째 기능이 오늘 적용할 방향키 기능과 동일해보입니다. 사실 다른 예시 기능들을 Enable 해도 되지만 동일한 기능으로 추가하여 수정하게 된다면 수정할 부분이 적다고 생각했기 때문입니다.

그럼 이제 ~/.config/karabiner/karabiner.json 파일이 생긴 것을 확인할 수 있습니다. 파일 내용을 보면 익숙하신 분들도, 그렇지 않은 분들도 있지만 가장 중요한 부분은 바로 rule 에 해당하는 영역의 코드를 수정하는 것입니다.

아래 코드를 rule 영역에 그대로 복사하여 붙여넣기 해도 되지만 기존 json 의 rule 과 추가하려는 새로운 rule 이 어떻게 다른지 보면서 수정하면 다른 기능을 추가할 때도 훨씬 수월하게 할 수 있을 것입니다. 자세히 보면 descriptionkey_code 만 다른 것을 확인할 수 있고 right_command + lp;'left_command + lp;', 즉, 2개의 동일한 구조의 룰이 추가된 것을 볼 수 있습니다.

"rules": [
    {
        "description": "Change right_command+lp;' to arrow keys",
        "manipulators": [
            {
                "from": {
                    "key_code": "l",
                    "modifiers": {
                        "mandatory": [
                            "right_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "left_arrow"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "key_code": "semicolon",
                    "modifiers": {
                        "mandatory": [
                            "right_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "down_arrow"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "key_code": "p",
                    "modifiers": {
                        "mandatory": [
                            "right_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "up_arrow"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "key_code": "quote",
                    "modifiers": {
                        "mandatory": [
                            "right_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "right_arrow"
                    }
                ],
                "type": "basic"
            }
        ]
    },
    {
        "description": "Change left_command+lp;' to arrow keys",
        "manipulators": [
            {
                "from": {
                    "key_code": "l",
                    "modifiers": {
                        "mandatory": [
                            "left_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "left_arrow"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "key_code": "semicolon",
                    "modifiers": {
                        "mandatory": [
                            "left_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "down_arrow"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "key_code": "p",
                    "modifiers": {
                        "mandatory": [
                            "left_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "up_arrow"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "key_code": "quote",
                    "modifiers": {
                        "mandatory": [
                            "left_command"
                        ],
                        "optional": [
                            "any"
                        ]
                    }
                },
                "to": [
                    {
                        "key_code": "right_arrow"
                    }
                ],
                "type": "basic"
            }
        ]
    }
]



이렇게 Karabiner 를 통해서 회사 키보드와 집 키보드 모두 방향키를 바꾸게 되니 해키해킹 배열에 훨씬 더 빠르게 적응할 수 있었습니다.😀

중고나라나 당근마켓을 보면 해피해킹 배열에 적응하지 못한 분들이 꽤 많은 것을 볼 수 있는데요, 이렇게 키 매핑을 통해서 보다 적응할 수 있도록 시도해보는 것도 좋은 방법이 될 수 있을 것 같습니다. 또 방향키 뿐만 아니라 다른 여러 키를 본인의 스타일에 맞게 변경할 수 있으니 꼭 도움이 되기를 바랍니다!

참고자료

2개의 댓글

comment-user-thumbnail
2023년 8월 3일

잘 읽었습니다. 좋은 정보 감사드립니다.

1개의 답글