SSD Nodes Learn Hosting plans →
가이드 Matt Connor작성자 Matt Connor · 업데이트됨 2026-08-26

Linux에서 Colemak 레이아웃 설정하는 방법

Linux 콘솔, X11, Wayland 환경별 Colemak 적용법을 설명합니다. 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

마지막 명령은 colemak와 colemak_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에서 전환한다면 어느 쪽이든 한 번의 재학습 과정이 필요하므로, 편안함을 기준으로 선택하고 거기서 멈추는 것이 좋습니다. 배열을 두 번 바꾸는 것은 첫 번째와 거의 동일한 노력이 듭니다. 재구축해야 하는 대상이 키 위치와 결합된 근육 기억이기 때문입니다. QWERTY를 떠날지 여부가 여전히 고민이라면, 한 달 동안 근육 기억을 재구축하는 시간을 쓰기 전에 Colemak, Dvorak, QWERTY 비교를 통해 결정을 내리십시오.

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

setxkbmap us -variant colemak
setxkbmap -query

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

재부팅 후에도 설정을 유지하려면 다음을 수행하십시오.

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

인자 순서는 레이아웃, 모델, 변형 순입니다. 이제 localectl status를 실행하면 X11 Layout: us 및 X11 Variant: colemak이 표시되어야 합니다. localectl은 --no-convert 옵션을 추가하지 않는 한 선택한 설정을 가장 유사한 콘솔 키맵으로 변환하므로, 많은 시스템에서 이 단일 명령으로 tty까지 설정할 수 있습니다. Debian 및 Ubuntu의 경우, 부팅 시 console-setup이 참조하는 파일이므로 이후에 /etc/default/keyboard을 확인하십시오.

Wayland에서 Colemak 설정하기

Wayland 세션에는 설정할 X 서버가 없습니다. 컴포지터(compositor)가 키맵을 로드하여 각 애플리케이션에 전달하므로, 레이아웃은 컴포지터 설정에 해당합니다. 이것이 Wayland에서 setxkbmap이 제대로 작동하지 않는 이유입니다. 디스플레이를 찾지 못하거나 XWayland에만 변경 사항이 적용되어, 네이티브 Wayland 애플리케이션은 이를 무시하게 됩니다.

GNOME의 경우 설정은 gsettings 키를 사용합니다.

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

로그아웃할 필요 없이 즉시 적용됩니다. 문자열 us+colemak는 레이아웃과 변형을 더하기 기호로 연결한 것입니다.

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이 실제로 수행할 문자로 구성됩니다. 이 설정은 일반 모드에만 적용되므로 입력 모드에서는 Colemak 텍스트를 정상적으로 입력할 수 있습니다. Vim 도움말에는 두 가지 제한 사항이 명시되어 있습니다. langmap는 Ctrl 또는 Alt 조합에는 적용되지 않으며, 기본 키를 기준으로 작성된 플러그인 매핑은 이 옵션 하에서 이상하게 동작할 수 있습니다.

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

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

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

매일 사용하는 네 가지 단축키는 위치가 바뀝니다. 입력을 종료하는 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에 설정된 바인딩은 기능 키가 레이아웃에 의해 재매핑되지 않으므로 원래 위치에 그대로 유지됩니다.

전환에 소요되는 시간

손에 익히는 데 걸리는 시간은 사람마다 다릅니다. 터치 타이핑은 근육 기억에 의존하기 때문입니다. 단순히 글자 위치를 외우는 것이 아니라, 단어를 손가락의 움직임으로 변환하는 반사 신경을 재구축하는 과정이므로, 오직 타이핑에 투자한 시간만이 실력을 향상시킵니다.

통제된 측정은 아니지만 사용자들이 보고하는 연습 기록에 따르면, 첫 주에는 기존 속도의 절반 이하로 떨어지며, 매일 사용할 경우 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 서버나 컴포지터가 스캔 코드를 문자로 변환하여 전달하므로, 애플리케이션은 다른 레이아웃을 직접 요청할 수 없습니다. 애플리케이션은 전달받은 문자를 재매핑하는 것만 가능합니다. 이것이 Vim 수정 사항이 Vim 설정 내에 존재하는 이유이며, 창별로 레이아웃을 전환하는 일반적인 방법이 없는 이유입니다.

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

xinput list
setxkbmap -device 12 -layout us

xinput list에서 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 변형 이름은 colemak과 colemak_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는 시스템 설정의 레이아웃 페이지에서 변경할 수 있습니다.