kanata/kmonad 를 사용해서 맥북 air 키보드 자유롭게 바꾸기

Posted on May 3, 2025 by 주형
Tags:

miryoku kmonad layout

최근에 맥 키보드에서 위 이미지에서 밝은 색의 키만 사용해보고 있어요. 큰 기대를 안하고 시작했습니다. 그런데 잠깐 써보고 놀랐습니다. 생각보다 훨씬 마음에 들었어요.

제 취미 중 하나가 키보드의 키를 재배치하는 거에요. 프로그래머로 일을 하다 보면 다양한 특수문자도 입력해야하고, 프로그램의 여러 단축키를 사용해요. 하지만 일반적인 키보드는 이런 다양한 입력을 잘 하기위해 설계되지 않았어요. ctrl,alt,shift 등의 키를 누르려면 손목이 많이 움직여야하고 어색하게 꺾일 때가 많아요. 숫자와 특수문자도 불편한 위치에 있습니다. 자주 사용하는 키들이 편한 위치에 있으면 좋을텐데 그렇지 않아요. 키보드의 배열을 만든 사람과 쓰는 사람이 너무 멀리 떨어져 있어요.

더 편하게 사용하기 위해서 쓸 수 있는 방법 중 하나가 엄지손가락으로 여러 키를 누르게 하는 거에요.

아래 이미지는 model 100 이라는 키보드에요. 이 키보드는 손바닥으로 누르는 키가 양쪽에 하나씩, 그리고 엄지손가락으로 누르는 키가 양쪽에 4개씩 있어요. 이 키들에 ctrl/alt/shift 등을 할당하거나 enter/tab/esc/backspace 등 개발에서 자주 사용하는 키들을 할당해서 쓸 수 있어요.

model 100

이런 키보드를 쓰면 좋지만 가끔 거추장스러울 때가 있어요. 잠깐 가볍게 까페에서 일하고 싶을 때 들고다니기에는 부담이 돼요. 집에서 본격적으로 일할 때가 아니라 가볍게 뭘 볼 때 쓰기 불편하기도 하구요. 저도 집과 회사에 엄지키가 따로 있는 키보드들이 있어요. 집중해서 일하는 경우 잘 사용하고 있습니다. 하지만 가끔 가벼운 마음에 노트북을 할 때에나 카페에 가서 쓰기에는 부담이 되는 경우가 있어요. 그럴 때 일반 키보드를 사용하게 되면 엄지손가락이 바보가 되어버려서 많이 아쉽습니다.

그러다가 발견한 게 miryoku 라는 keyboard layout 의 kmonad 라는 프로그램 설정이었어요. kmonad 는 키보드의 키 배열을 마음대로 바꿀 수 있는 프로그램입니다. miryoku 는 아래 이미지처럼 36개의 키를 가지고 조합해서 full size keyboard 의 108개를 다 입력할 수 있게 해주는 keyboard layout이에요. 보시다시피 엄지손가락에 한쪽당 3개의 키를 할당해야 쓸 수 있는 키보드 레이아웃이에요.

miryoku layout

저는 당연히 이런 엄지키 레이아웃을 일반 키보드로는 못 쓸거라고 생각하고 있었어요. 그런데 miryoku kmonad에서 아래처럼 혁명적인 키 재배열을 통해서 평범한 키보드에서도 엄지키를 할당하고 있더라구요. 세상에 이렇게 똑똑할수가.

miryoku kmonad layout

하지만 뛰어난 아이들이 으레 그러듯이 실용성은 없을 거라고 생각했어요. 그런데 제 맥북 air에 설정해서 써보니까 와 정말 좋더라구요. 오랜만에 새로운 키보드를 산 것 처럼 행복해졌습니다. 밑에는 이번에 kmonad/kanata를 설정하면서 알게된 정보들을 살짝 정리해보려고해요.

kmonad vs kanata

kmonad 와 kanata는 거의 비슷한 일을 하는 도구에요. kmonad 가 먼저 있었고, kanata 는 kmonad 를 바탕으로 기능을 추가한 새로운 도구입니다. 저도 kmonad 로 시작했다가, kanata가 제공하는 마우스키를 사용하고 싶어서 kanata로 이동했어요. 둘이 거의 비슷한 문법의 설정파일을 지원하고 있어서 양쪽 변환은 쉬운 편이에요. kanata가 나중에 나온 것 답게 기능이 좀 더 많습니다.

nkro

한 컴퓨터에서 한 키보드로 두명이 대전게임을 해보신 적 있으신가요? 펑범한 키보드를 썼다면 상대방이 키를 누르고 있을 때 기술이 잘 시전 안되신 경험이 있으실 거에요. 일반적인 키보드는 2-3 키 이상의 키를 동시에 누르는 경우 잘 동작하지 않아요. 아쉽게도 맥북 air의 기본 키보드도 그러더라구요. 왼손 새끼손가락으로 ctrl을, 왼손 엄지로 command를 오른손 엄지로 쉬프트를 누르고 오른쪽 화살표를 입력했는데 동작을 안하더라구요. 물론 원래 키보드의 ctrl/alt/shift 등의 키는 키보드 제조사가 특별히 신경쓴 키라소 여럿을 입력해도 잘 동작해요. 하지만 저는 엄지키 할당을 위해서 일반적이지 않은 키를 누르다보니 여러 키 입력이 동시에 안되더라구요. 대체로 두 개의 키 조합은 다 동작했어요. 하지만 3개의 키를 조합하는 건 50% 이상의 확률도 동작을 안할 때가 많더라구요. 임의의 키의 갯수를 동시에 눌러도 잘 동작하는 키보드를 nkro 를 지원한다고 말해요. air는 전혀 아니더라구요.

kmonad/kanata 에서 레이어를 상당히 많이 만들 수 있더라구요. 레이어는 하나의 키를 상황에 따라 다른 키로 동작하게 하는 기능이에요. 작은 키보드의 fn 키를 생각하시면 이해할 수 있어요. kmonad/kanata는 자기 자신만의 fn키를 만들어서 쓸 수 있어요. nkro 가 불가능하니 레이어를 많이 많들어서 가능한 두개의 키의 조합으로 원하는 명령어를 입력할수 있게 설정해보고 있어요.

키보드만 사용해서 화면에 보이는 버튼 클릭하기

이번에 kanata 로 마우스 키를 세팅하면서 관련된 정보를 찾다가 재밌는 프로그램을 찾았어요. homerow 라는 앱입니다. 화면에 있는 버튼을 키보드만으로 쉽게 클릭할 수 있어요. 특수한 단축키를 입력하면 화면 안의 모든 버튼에 이름이 주어져요. 이 이름을 입력하면 해당 버튼이 클릭이 됩니다. 어떻게 되는지 엄청 신기했는데 접근성 기능을 쓴다고 하더라구요. 장애인을 위한 엘리베이터가 비장애인에게도 도움되는 것처럼 accessibility 기능이 비장애인에게도 도움이 되는 기술을 보니 감동적이었어요.

제 kanata 설정

제가 사용하고 있는 레이아웃도 남겨둡니다. https://github.com/majecty/dotconfig/blob/main/computers/air/kmonad/upper-default.kbd