SSD Nodes Learn 🎉 VPS $5.50/월부터
가이드 Matt Connor작성자 Matt Connor · 업데이트됨 2026-08-09

Linux에서 Colemak 키보드 레이아웃 설정 방법

Linux 콘솔, X11, Wayland 환경에서 Colemak 및 Colemak-DH 레이아웃을 적용하는 방법을 설명합니다. SSH 접속 시 레이아웃 설정이 필요 없는 이유와 Vim의 hjkl 단축키 및 Ctrl 키 사용 시 발생하는 변화를 상세히 다룹니다.

Linux에서 Colemak 레이아웃이 적용되는 위치

Linux의 Colemak 설정은 시스템 전체에 단일하게 적용되지 않습니다. 키보드 레이아웃은 해당 시점에 키보드 입력을 처리하는 주체에 의해 결정되므로, 텍스트 콘솔, X11 서버, Wayland 컴포지터 중 한 곳에서 설정해야 합니다. 잘못된 위치에 설정하면 아무런 변화도 일어나지 않습니다.

네 번째 방법은 운영 체제를 완전히 건너뛰는 것입니다. QMK나 VIA를 지원하는 키보드처럼 펌웨어 수준에서 키를 재매핑하는 장치를 사용하면, 원하는 문자의 스캔 코드를 직접 전송합니다. 따라서 서버 콘솔이나 본인 소유가 아닌 컴퓨터를 포함하여, 어떤 기기에 연결하더라도 별도의 설정 없이 Colemak으로 입력됩니다. 단, 노트북 내장 키보드는 여전히 QWERTY로 작동한다는 점이 단점입니다.

이 가이드의 나머지 부분에서는 세 가지 소프트웨어 계층, 원격 서버에서 이 설정들이 거의 필요 없는 이유, 그리고 레이아웃 변경이 Vim과 터미널 단축키에 미치는 영향에 대해 다룹니다.

시스템에 이미 설치된 항목 확인

설정을 변경하기 전에 다음 명령을 실행하십시오. 이 명령들은 현재 설정과 X 키보드 데이터베이스에서 제공하는 Colemak 변형 목록을 출력합니다.

localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemak

마지막 명령은 colemakcolemak_dh을 출력해야 합니다. Colemak은 수년간 xkeyboard-config에 포함되어 왔습니다. Colemak-DH는 버전 2.34부터 추가되었으므로, 아주 오래된 릴리스가 아니라면 누락되지 않았을 것입니다. 2026년 8월 기준으로 Ubuntu 24.04와 Debian 13 모두 해당 버전보다 최신 버전을 제공합니다.

만약 setxkbmap -query가 디스플레이를 열 수 없다고 보고한다면, 현재 Wayland 세션을 사용 중이며 컴포지터가 레이아웃을 제어하고 있는 상태입니다. 해당 경우에는 아래의 별도 섹션을 참조하십시오.

Colemak 또는 Colemak-DH

Colemak은 QWERTY 배열에서 17개의 키 위치를 변경하고 Z, X, C, V를 포함한 10개의 키는 그대로 유지합니다. 따라서 실행 취소, 잘라내기, 복사, 붙여넣기 단축키를 왼손이 기억하는 기존 위치에서 그대로 사용할 수 있습니다. 이러한 호환성이 해당 레이아웃이 현재의 형태를 갖게 된 주된 이유입니다.

Colemak-DH는 Colemak의 수정 버전입니다. 이 배열은 D, B, G의 위치를 재배치하고 H와 M의 자리를 바꿉니다. 일반 Colemak에서는 D와 H를 입력할 때 검지를 키보드 중앙 열로 뻗어야 하기 때문입니다. 공식 수정안은 Colemak에서 사용하던 손가락을 그대로 유지하므로, Colemak 사용자가 DH로 전환할 때 새로운 레이아웃을 배우는 것이 아니라 작은 변화만 익히면 됩니다. XKB 변형은 colemak_dh이며, 왼쪽 Shift 키 옆에 추가 키가 있는 키보드용은 colemak_dh_iso입니다.

QWERTY에서 전환하는 경우 어느 쪽이든 한 번의 재학습 과정이 필요하므로, 편안함을 기준으로 선택하고 그 상태를 유지하십시오. 레이아웃을 다시 바꾸는 것은 처음 바꿀 때와 비슷한 노력이 듭니다. 이는 키 위치와 결합된 근육 기억을 다시 구축하는 과정이기 때문입니다.

setxkbmap과 localectl을 사용하여 X11에서 Colemak 설정하기

setxkbmap us -variant colemak
setxkbmap -query

이제 setxkbmap -queryvariant: colemak을 출력해야 하며, 모든 창에서 타이핑 시 Colemak 레이아웃이 적용됩니다. 이 변경 사항은 X 세션이 유지되는 동안만 지속되며 디스크에 아무것도 기록하지 않으므로, 한 시간 정도 레이아웃을 시험해 보기에 안전한 방법입니다.

재부팅 후에도 설정을 유지하려면 다음을 수행합니다.

sudo localectl set-x11-keymap us pc105 colemak
localectl status

인자 순서는 레이아웃, 모델, 변형 순입니다. 이제 localectl statusX11 Layout: usX11 Variant: colemak을 보여주어야 합니다. --no-convert를 추가하지 않으면 localectl이 선택한 설정을 가장 유사한 콘솔 키맵으로 변환하므로, 많은 시스템에서 이 단일 명령어로 tty까지 설정할 수 있습니다. Debian과 Ubuntu에서는 이후 /etc/default/keyboard을 확인하십시오. 해당 파일이 부팅 시 console-setup이 읽어 들이는 설정이기 때문입니다.

Wayland에서 Colemak 설정하기

Wayland 세션에는 설정할 X 서버가 존재하지 않습니다. 컴포지터(compositor)가 키맵을 로드하여 각 애플리케이션에 전달하므로, 레이아웃은 컴포지터 설정에 따라 결정됩니다. 이것이 Wayland에서 setxkbmap 명령이 제대로 작동하지 않는 이유입니다. 이 명령은 디스플레이를 찾지 못하거나 XWayland에만 영향을 주어, 네이티브 Wayland 애플리케이션에는 적용되지 않습니다.

GNOME의 경우 설정은 gsettings 키를 통해 관리합니다.

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"

이 설정은 로그아웃 없이 즉시 적용됩니다. us+colemak 문자열은 레이아웃과 변형(variant)을 더하기 기호로 연결한 값입니다.

sway의 경우 ~/.config/sway/config 파일에 다음을 추가합니다.

input type:keyboard {
    xkb_layout us
    xkb_variant colemak_dh
}

swaymsg reload 명령으로 설정을 다시 로드합니다. swaymsg -t get_inputs 명령은 각 입력 장치가 사용하는 레이아웃을 나열하므로, 특정 키보드만 설정이 잘못되었을 때 확인 용도로 사용합니다.

KDE Plasma의 경우 시스템 설정(System Settings)에서 키보드(Keyboard), 레이아웃(Layouts) 순으로 이동한 뒤, English (US)를 추가하고 Colemak 변형을 선택합니다.

텍스트 콘솔에서 Colemak 설정하기

콘솔은 Ctrl+Alt+F3으로 접근하는 일반 텍스트 tty이며, 자체 키맵을 사용합니다. X11이나 컴포지터에서 설정한 내용은 콘솔에 적용되지 않으므로, 베어 가상 콘솔의 터미널 작업대에서 작업할 때 이 점을 유의해야 합니다.

Debian 및 Ubuntu에서는 /etc/default/keyboard 파일을 편집합니다.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""

그런 다음 설정을 적용합니다.

sudo setupcon

콘솔에 타이핑하여 설정을 확인합니다. console-setup은 ckbcomp를 사용하여 해당 XKB 설명을 콘솔 키맵으로 변환하므로, 이 시스템들에서는 콘솔과 X가 하나의 설명을 공유합니다.

kbd 키맵을 직접 사용하는 배포판에서는 먼저 이름을 확인해야 합니다.

localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9

kbd 패키지는 Colemak 콘솔 맵을 i386/colemak/en-latin9으로 제공하므로, 일반적으로 colemak가 아닌 en-latin9이라는 이름을 사용합니다. 목록에 나타나는 이름을 입력하십시오. 존재하지 않는 이름을 입력하면 거부됩니다.

sudo loadkeys en-latin9은 현재 콘솔 설정을 즉시 변경하며, sudo loadkeys us는 설정을 되돌립니다. loadkeys는 설정 파일이 아닌 테스트 용도로 사용하십시오. 이 설정은 재부팅 전까지만 유지되며, Debian 및 Ubuntu에서는 부팅 시 실행되는 setupcon이 /etc/default/keyboard에 정의된 내용을 복원합니다.

헤드리스 VPS에 Colemak 레이아웃이 필요한가요?

거의 필요하지 않으며, 그 이유를 이해하는 것이 중요합니다. SSH는 키 위치가 아닌 문자를 전송합니다. 터미널 에뮬레이터가 키 입력을 받으면 로컬 레이아웃이 이를 문자로 변환하고, 그 문자만이 연결을 통해 전달됩니다. 서버는 n을 수신할 뿐, 어떤 물리적 키가 이를 생성했는지 알 방법이 없습니다. 따라서 노트북에 설정한 레이아웃이 모든 SSH 세션, tmux, 그리고 원격에서 실행하는 모든 편집기에 그대로 적용되므로, 원격 머신에는 키보드 설정이 전혀 필요하지 않습니다.

운영 서버에서 키보드 파일을 수정하기 전에 이 점을 명심하십시오. 여러 대의 Linux 서버를 관리한다면, 레이아웃은 서버가 아닌 사용자 앞의 머신에 귀속되는 것이므로 프로비저닝 과정에 포함할 이유가 없습니다. 새로운 VPS를 설정하는 첫 10분 동안에는 이보다 더 유용한 작업이 많습니다.

두 가지 예외 상황은 고려할 가치가 있습니다. 첫 번째는 머신에 직접 연결된 콘솔입니다. 제공업체 패널의 브라우저 콘솔은 일반적으로 가상 머신에 키보드로 인식되므로 키 입력이 스캔 코드로 전달되며, 서버 자체의 콘솔 키맵이 어떤 문자를 출력할지 결정합니다. 이곳이 서버에 설정한 레이아웃이 적용되는 유일한 장소이며, SSH가 작동하지 않을 때의 복구 경로이기도 하므로, 콘솔 키맵을 어설프게 설정하면 위험할 수 있습니다.

시리얼 콘솔은 문자를 전달하고 로컬 레이아웃이 적용되므로 다르게 동작합니다. 두 번째 예외는 공유 머신입니다. 콘솔 키맵은 시스템 전체에 적용되므로, 다른 사용자가 로그인하는 서버에 Colemak을 설정하면 그들에게도 영향을 미치며, 그들은 이유를 짐작조차 할 수 없을 것입니다.

Vim의 hjkl 키는 어떻게 되는가

Colemak 배열에서 h은 움직이지 않습니다. 나머지 세 키는 작동합니다. j는 QWERTY의 Y 위치에, k은 QWERTY의 N 위치에, l은 QWERTY의 U 위치에 자리 잡고 있습니다. 따라서 커서 키가 네 손가락 아래에 모여 있지 않고 세 줄에 걸쳐 흩어지게 됩니다.

실제로 사용자들이 선택하는 두 가지 해결책이 있습니다.

기본 설정을 유지하고 위치를 다시 익히는 방법입니다. 이 경우 설정의 다른 부분은 깨지지 않으며, 모든 플러그인이 정상 작동하고, 다른 사람이 작성한 모든 Vim 팁을 그대로 적용할 수 있습니다.

또는 오른손 아래에 있는 네 개의 키를 hjkl이 있던 위치로 다시 매핑하는 방법입니다. Colemak 배열에서 해당 키들은 h, n, e, i를 입력합니다. Colemak-DH 배열에서는 H와 M이 바뀌었으므로 동일한 물리적 키가 m, n, e, i를 입력하게 됩니다.

noremap n j
noremap e k
noremap i l
noremap l i
noremap k n

이제 n는 아래로, e은 위로, i는 오른쪽으로 이동하며, h는 이미 왼쪽 이동 키였습니다. 마지막 두 줄은 밀려난 명령어를 다시 할당합니다. l은 입력 모드를 시작하고, k은 마지막 검색을 반복합니다. 대문자 키에도 동일하게 적용하십시오. 그렇지 않으면 Shift와 커서 키를 조합할 때 예상치 못한 결과가 발생할 수 있습니다.

Vim의 langmap 옵션을 사용하면 더 적은 줄로 비슷한 작업을 수행할 수 있습니다.

set langmap=nj,ek,il,li,kn

각 쌍은 입력한 문자 뒤에 Vim이 수행할 동작 문자가 오는 방식으로 읽힙니다. 이 설정은 일반 모드(normal mode)에만 적용되므로 입력 모드에서는 Colemak 배열대로 정상적으로 타이핑할 수 있습니다. Vim 도움말에는 두 가지 제한 사항이 명시되어 있습니다. langmap는 Ctrl이나 Alt 조합에는 적용되지 않으며, 기본 키를 기준으로 작성된 플러그인 매핑은 이 설정 하에서 이상하게 동작할 수 있습니다.

어떤 방법을 선택하든 하나만 정하십시오. 한 달 사용하다 포기한 재매핑은 다시 한 달의 적응 시간을 앗아갑니다.

터미널 단축키는 어떻게 됩니까

터미널 제어 코드는 물리적인 키가 아니라 문자에서 생성되므로, 모든 Ctrl 단축키는 레이아웃을 따라 이동합니다. Colemak은 Z, X, C, V를 QWERTY와 동일한 위치에 두었기 때문에 Ctrl+C, Ctrl+Z, Ctrl+X, Ctrl+V는 기존 위치를 유지합니다.

매일 사용하는 네 가지 단축키는 위치가 바뀝니다. 입력을 종료하는 Ctrl+D는 이제 QWERTY의 G 위치에 있습니다. 히스토리 검색인 Ctrl+R은 QWERTY의 S 위치에 있습니다. 줄 끝으로 이동하는 Ctrl+E는 QWERTY의 K 위치에 있습니다. 줄을 지우는 Ctrl+U는 QWERTY의 I 위치에 있습니다.

tmux는 기본 접두사(prefix)를 그대로 유지하는데, 이는 Colemak에서 B의 위치가 변하지 않기 때문입니다. Colemak-DH를 사용하면 B가 윗줄로 이동하며 접두사도 함께 이동합니다. 이는 VPS에서 장기간 실행 중인 tmux 세션을 유지할 때 가장 먼저 체감하게 될 부분입니다. 접두사를 원하는 키로 다시 바인딩하는 것은 한 줄만 수정하면 되는 간단한 작업이며, 동일한 반사 신경을 두 번 다시 훈련하는 것보다 훨씬 쉽습니다.

데스크톱 단축키도 같은 규칙을 따릅니다. Super+E에 설정된 바인딩은 문자를 기준으로 정의되므로 레이아웃을 따라 이동합니다. 반면 Super+F1에 설정된 바인딩은 고정된 상태로 유지되는데, 이는 기능 키(function key)가 레이아웃에 의해 재매핑되지 않기 때문입니다.

전환에 소요되는 시간

타이핑 속도에 대해 누구도 확답을 줄 수는 없습니다. 터치 타이핑은 근육 기억에 의존하기 때문입니다. 단순히 글자 위치를 익히는 것이 아니라, 단어를 손가락의 움직임으로 변환하는 반사 신경을 재구축하는 과정이므로 오직 타이핑에 투자한 시간만이 도움이 됩니다.

통제된 측정이 아닌 사용자들의 연습 기록에 따르면, 첫 주에는 기존 속도의 절반에도 미치지 못하며, 매일 사용할 경우 1개월에서 3개월 사이에 원래 속도를 회복한다고 합니다. 개인차가 크므로 이 수치는 일정표가 아닌 대략적인 경향으로 이해해야 합니다.

두 가지 습관이 전환을 더디게 만듭니다. 하루 동안 QWERTY와 Colemak을 번갈아 사용하면 두 반사 신경 모두 약해지므로, 전환을 완료한 대부분의 사용자는 주력 기기에서 완전히 하나만 사용합니다. 업무가 바쁜 주간에 전환을 시작하면 시간 압박 속에서 서툴게 타이핑하게 되며, 이는 키보드를 내려다보는 습관을 길러줍니다.

필요하기 전에 미리 되돌아갈 방법을 마련해 두어야 합니다. QWERTY가 다시 필요해지는 순간은 무언가 고장 났고 누군가 기다리고 있는 긴박한 상황이기 때문입니다.

QWERTY로 빠르게 전환하는 방법

X11 환경에서는 setxkbmap us을 실행하면 즉시 QWERTY로 복구됩니다. 콘솔에서는 sudo loadkeys us을 사용합니다. 영구적인 설정을 되돌리려면 sudo localectl set-x11-keymap us를 실행하십시오.

아직 입력할 수 없는 레이아웃으로 명령어를 입력하는 것보다 토글을 사용하는 것이 더 효율적입니다.

setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggle

이 설정은 Colemak을 첫 번째 레이아웃으로, 일반 US 레이아웃을 두 번째 레이아웃으로 로드하며 Super+Space 키를 눌러 전환할 수 있게 합니다. colemak,의 마지막 쉼표는 오타가 아닙니다. 첫 번째 레이아웃에 colemak 변형을 적용하고 두 번째 레이아웃에는 아무것도 적용하지 않기 위한 설정입니다. GNOME 환경에서는 설정 메뉴에서 두 입력 소스를 모두 추가하면 Super+Space 키로 즉시 전환할 수 있습니다.

두 가지 비밀번호 입력 창은 데스크톱 세션 외부에서 작동하므로 별도의 주의가 필요합니다. 로그인 화면은 세션 설정이 적용되기 전에 시작되므로, 설정을 맹신하기보다 로그아웃을 통해 직접 테스트하십시오. 디스크가 암호화된 경우, 비밀번호 입력 프롬프트는 initramfs에서 실행되며 이는 자체적인 키맵 복사본을 사용합니다. Debian 및 Ubuntu에서는 /etc/default/keyboard를 변경한 후 sudo update-initramfs -u를 사용하여 initramfs를 다시 빌드하십시오. 이후 시스템에 접근할 수 있는 다른 수단이 있을 때 재부팅하여 설정을 확인하십시오.

특정 프로그램만 QWERTY로 유지할 수 있습니까?

키보드 레이아웃은 애플리케이션이 키 입력을 받기 전에 적용됩니다. X server나 컴포지터가 스캔 코드를 문자로 변환하여 전달하므로, 애플리케이션은 다른 레이아웃을 직접 요청할 수 없습니다. 애플리케이션은 전달받은 문자를 다시 매핑하는 것만 가능합니다. 이것이 Vim 수정 사항이 Vim 설정 파일에 존재하는 이유이며, 창별로 레이아웃을 전환하는 일반적인 방법이 없는 이유입니다.

두 가지 접근 방식이 효과적입니다. 첫 번째는 장치별 설정입니다. QWERTY 타이핑을 별도의 키보드에서 수행한다면, 시스템 전체가 아닌 해당 장치에만 레이아웃을 설정하십시오.

xinput list
setxkbmap -device 12 -layout us

xinput list에서 ID를 확인하고, 각 키보드를 차례로 입력하여 해당 ID가 맞는지 확인하십시오. sway는 swaymsg -t get_inputs의 입력 식별자별 설정을 동일하게 수용하며, 더 구체적인 선택자가 type:keyboard보다 우선합니다.

두 번째 접근 방식은 Vim의 langmap처럼 애플리케이션 내부에서 다시 매핑하는 것입니다. 게임은 거의 항상 키 바인딩 화면을 제공하며, 외부에서 레이아웃과 씨름하는 것보다 게임 내에서 이동 키를 다시 설정하는 것이 더 빠릅니다. 두 방법 모두 불가능한 경우에는 앞서 설명한 레이아웃 전환 키를 설정하고 프로그램을 실행하기 전에 해당 키를 누르십시오.

FAQ

VPS에 Colemak을 설정해야 합니까?

SSH로 접속한다면 설정할 필요가 없습니다. SSH는 문자를 그대로 전달하므로, 사용자의 노트북에서 키보드 레이아웃이 먼저 해석된 뒤 서버는 QWERTY 사용자가 입력하는 것과 동일한 바이트를 수신합니다. 예외적으로 클라우드 제공업체 패널의 브라우저 콘솔은 가상 머신에 직접 키보드로 연결되며 서버 자체의 콘솔 키맵을 사용합니다. 해당 콘솔은 SSH 접속이 실패했을 때 사용하는 복구 경로이므로, 확실한 경우에만 변경하고 SSH 접속이 가능한 상태에서 먼저 테스트하십시오.

Colemak과 Colemak-DH 중 무엇을 배워야 합니까?

둘 다 QWERTY에서 전환하려면 새로 학습해야 하므로, 마이그레이션 비용보다는 편의성을 기준으로 선택하십시오. Colemak-DH는 D, B, G의 위치를 옮기고 H와 M을 서로 바꿉니다. 일반 Colemak은 D와 H를 입력할 때 검지를 가운데 열로 뻗어야 하기 때문입니다. XKB 변형 이름은 colemakcolemak_dh이며, 왼쪽 Shift 옆에 추가 키가 있는 키보드라면 colemak_dh_iso를 사용합니다. 시스템에서 제공하는 레이아웃을 확인하려면 localectl list-x11-keymap-variants us | grep colemak을 실행하십시오.

Colemak에서 Vim의 hjkl 키는 어떻게 됩니까?

h는 그대로 유지됩니다. j는 QWERTY의 Y 아래로, k은 QWERTY의 N 아래로, l은 QWERTY의 U 아래로 이동하므로 커서 키가 세 줄에 걸쳐 흩어지게 됩니다. 변경된 위치에 그대로 적응하면 모든 플러그인과 튜토리얼을 그대로 사용할 수 있습니다. 아니면 오른손 아래에 있는 네 개의 키(Colemak의 경우 h, n, e, i, Colemak-DH의 경우 m, n, e, i)로 매핑을 변경할 수도 있습니다. Vim의 langmap 옵션도 일반 모드에서 동일한 역할을 하지만, Ctrl 조합에는 적용되지 않으며 플러그인 매핑과 충돌할 수 있습니다.

예전 타이핑 속도로 돌아오려면 얼마나 걸립니까?

며칠이 아니라 몇 주를 예상해야 합니다. 이는 근육 기억의 문제이며 오직 연습만이 유일한 방법이기 때문입니다. 연습 기록을 보면 보통 첫 주에는 예전 속도의 절반에도 미치지 못하며, 매일 연습할 경우 1개월에서 3개월 사이에 예전 속도를 회복합니다. 매일 QWERTY와 Colemak을 번갈아 사용하면 반사 신경이 정착되지 않아 기간이 더 길어집니다.

데스크톱에서 setxkbmap을 실행해도 아무런 변화가 없는 이유는 무엇입니까?

거의 확실히 세션이 Wayland이기 때문입니다. Wayland 환경에서는 컴포지터가 키맵을 관리하고 각 애플리케이션에 전달합니다. 따라서 setxkbmap은 디스플레이를 찾지 못하거나 XWayland에만 영향을 주며, 네이티브 애플리케이션은 이를 무시합니다. 대신 컴포지터에서 레이아웃을 설정하십시오. GNOME은 org.gnome.desktop.input-sources gsettings 키, sway는 xkb_variant 설정 파일, KDE Plasma는 시스템 설정의 레이아웃 페이지에서 변경할 수 있습니다.