Key Remapping

Posted by Dongho's DevLog on April 2, 2025

Arch Linux에서 Caps Lock을 Left Ctrl로 바꾸자 (udev + hwdb 방식)

Caps Lock 키, 자꾸 잘못 눌러서 짜증날 때 많지? 😅
우리 이 기회에 아예 Caps Lock을 Left Ctrl로 바꿔주자!

게다가 이건 커널 레벨에서 설정하는 방식이라 X11이든 Wayland든 항상 적용돼.
즉, tty에서도 잘 작동하는 깔끔한 설정이야.


🔍 먼저, 키보드 장치를 알아보자

터미널에서 아래 명령어로 내 키보드가 어떤 건지 확인해보자:

1
sudo libinput list-devices

이런 식으로 나올 거야:

1
2
Device:                  AT Translated Set 2 keyboard
Kernel:                  /dev/input/event4

또는 evtest로 눌러보면서 알아볼 수도 있어:

1
sudo evtest

event4 같은 키보드 장치를 선택하고, Caps Lock을 눌러보자.
그러면 KEY_CAPSLOCK이라는 이벤트가 나올 거야. 이제 이걸 바꿔주자!


⚙️ udev + hwdb 설정으로 remap해보자

1. 설정 파일을 만들어주자

아래 명령어로 설정 파일을 만들어주자:

1
sudo nano /etc/udev/hwdb.d/99-custom-keyboard.hwdb

그리고 아래 내용을 넣어주자:

1
2
3
4
# Caps Lock → Left Ctrl로 바꾸기
evdev:input:b0011v0001p0001*
 NAME=="AT Translated Set 2 keyboard"
 KEYBOARD_KEY_3a=leftctrl

🔎 참고:

  • b0011v0001p0001*는 키보드의 버스/벤더/제품 ID야.
  • KEYBOARD_KEY_3a는 Caps Lock의 스캔 코드 (0x3A)

2. 설정을 반영해보자

이제 이 설정을 적용하자:

1
2
sudo systemd-hwdb update
sudo udevadm trigger /dev/input/event4

또는 전체 장치에 적용하고 싶다면:

1
sudo udevadm trigger /dev/input/event*

3. 잘 적용됐는지 확인해보자

다시 evtest로 확인해보자:

1
sudo evtest

Caps Lock을 눌렀을 때 아래처럼 나오면 성공!

1
Event: time ..., type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1

📌 참고 자료

```