나는 APPLE ][에 대한 그리움이 있다.

APPLE][가 나왔던 8비트 마이컴 시대에서 msx와는 다르게 방향키가 따로 존재하지 않았다. GUI가 아니었기 때문에 그리 필요도 없었다. 그런데 게임 같은 것을 할 때는 어떻게 하나?

그래서 APPLE][에서는 IJKM키를 방향키로 매핑을 하였었다. IJKL이나 HJKL이 아니었다.

40여년이 지난 지금 나는 회사에서는 Windows를, 집에서는 macOS를 쓴다. 두 OS다 키보드 커스터마이징을 이제는 지원하여 가급적 단축키는 통일시켜 셋팅을 하는데, 문제는 방향키이다. 빠르게 타이핑을 하기 위해선 가급적 키가 분산되지 않아야 하는데 방향키는 대부분 키보드의 우측 하단 구석에 있어 타이핑을 하다가 방향키를 치려면 좀 불편하다. 그래서 macOS의 karabiner같은 유틸에서 찾아보니 좌측 ctrl + HJKL키 매핑 지원이 있어 이렇게 쓰고 있었다.

windows에서도 HJKL키로 쓰려고 매핑하는데 하나가 걸린다. 바로 ctrl + L 키이다. 이 키는 대부분 브라우저의 URL입력란 포커싱 기능이 있기 때문이다.

windows에서는 그래서 이를 포기해야 하나 하던 차에 생각난게 Apple][ 에서의 방향키였다. L키를 안 쓰기 때문이다.

windows에서 방향키 설정은 : PowerToys–> Keyboard Manager 에서 설정하면 된다.

macOS에서는 karabiner에서 해 줘야 하는데 … 좀 복잡하다.

  1. karabiner의 Setting 에서 Complex Modification -> Add rule 을 클릭한다.
  2. 팝업이 뜨면 import more rules from internet버튼을 클릭한다. 그럼 브라우저가 기동되면서 Complex Modification Rules 화면이 뜰 것이다.
  3. 검색 란에 HJKL을 입력한다.
  4. 검색 결과 중에 Left ctrl + hjkl to arrow keys Vim 을 선택하여 설치한다 (import버튼을 누르면 된다)

다운받은 Rules은 Left ctrl를 누르면 HJKL 키를 방향키로 매핑하는 것이다. 이를 이제 수정을 하려 한다.

  1. karabiner의 Setting에서 misc를 클릭 후 Open config folder(~/.config/karabiner)를 클릭한다
  2. assets폴더 밑의 complex_modification폴더를 연다
  3. 숫자 파일명으로 된 json파일들이 있다. 열어보고 "title": "Left ctrl + hjkl to Arrow Keys Vim", 이 있는 파일을 찾는다.
  4. 이 파일이 hjkl키에 방향키를 매핑시키는 json파일이다 h(left arrow)키 대신에 j키로, l(right arrow)키 대신에 k키로, j(upper arrow)키 대신에 i키로, k(down arrow)키 대신에 j키로 바꿔준다.

참고로 내 json파일은 아래와 같다..

{
  "title": "Left ctrl + ijkm to Arrow Keys Vim",
  "rules": [
    {
      "description": "Left ctrl + ijkm to arrow keys Vim",
      "manipulators": [
        {
          "from": {
            "key_code": "j",
            "modifiers": {
              "mandatory": ["left_control"],
              "optional": ["any"]
            }
          },
          "to": [
            {
              "key_code": "left_arrow"
            }
          ],
          "type": "basic"
        },
        {
          "from": {
            "key_code": "m",
            "modifiers": {
              "mandatory": ["left_control"],
              "optional": ["any"]
            }
          },
          "to": [
            {
              "key_code": "down_arrow"
            }
          ],
          "type": "basic"
        },
        {
          "from": {
            "key_code": "i",
            "modifiers": {
              "mandatory": ["left_control"],
              "optional": ["any"]
            }
          },
          "to": [
            {
              "key_code": "up_arrow"
            }
          ],
          "type": "basic"
        },
        {
          "from": {
            "key_code": "k",
            "modifiers": {
              "mandatory": ["left_control"],
              "optional": ["any"]
            }
          },
          "to": [
            {
              "key_code": "right_arrow"
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

이렇게 저장하고 Setting -> Complex Modification 에서 Add rule 버튼을 클릭하고 Left ctrl + ijkm to Arrow Keys VimEnalble시키면 반영된다.