들어가며: 맥북과 리눅스를 오갈 때 생기는 손가락의 혼란
맥OS 환경에 익숙한 사용자가 리눅스 데스크톱이나 서버 GUI 환경에 접속하면 가장 먼저 겪는 어려움이 한영 전환 위치입니다. 맥북에서는 캡스락(Caps Lock) 위치를 탭하여 한영을 전환하는 방식이 기본이라 손가락 동선이 매우 자연스럽습니다. 반면 리눅스는 기본적으로 우측 알트(Alt)나 컨트롤과 스페이스 조합을 요구합니다. 입력기 설정에서 캡스락을 추가 단축키로 단순 지정할 수도 있지만, 이 경우 글자를 바꿀 때마다 키보드의 대문자 잠금 상태가 함께 켜지거나 꺼지는 심각한 부작용이 따릅니다. 본 글에서는 캡스락 고유의 대문자 고정 기능을 완전히 제거하고, 오직 순수 한영 전환 전용 키로만 동작하도록 데비안 13 웨이랜드 환경에서 구성한 실측 과정을 정리합니다.

핵심 개념: keyd와 리눅스 입력 처리 계층
리눅스 데스크톱의 입력 파이프라인 구조를 이해하면 설정이 명확해집니다.
- evdev는 리눅스 커널이 물리 키보드 하드웨어에서 전달받는 원초적인 입력 이벤트 규격입니다.
- keyd는 이 커널 입력 장치를 가장 앞단에서 가로채 가상 입력 장치(uinput)로 재가공해 주는 백그라운드 데몬입니다.
- Wayland와 X11은 가공된 키 이벤트를 받아 데스크톱 화면과 창 관리자에 전달합니다.
- Fcitx5는 전달받은 키 조합을 감지하여 한글과 영문 입력 상태를 최종 변환합니다.
기존에 널리 쓰이던 xmodmap은 웨이랜드 환경에서 무력화되지만, keyd는 디스플레이 서버보다 아래인 커널 장치 레벨에서 작동하므로 웨이랜드나 엑스일레븐, 가상 콘솔 구분 없이 일관되게 적용됩니다.
준비물
- 데비안 13 또는 우분투 기반 리눅스 시스템
- 루트 권한 (sudo 실행 권한)
- Fcitx5 한글 입력기 환경
- 텍스트 편집기
1단계: keyd 패키지 설치와 데비안 명칭 확인
데비안 13(Trixie) 공식 저장소에 keyd 패키지가 등록되어 있으므로 외부 저장소 추가 없이 즉시 설치합니다.
sudo apt update
sudo apt install -y keyd
설치 직후 실행 파일 명칭을 확인할 필요가 있습니다. 데비안 13에서는 기존 onak 패키지와의 이름 충돌을 피하기 위해 공식 바이너리 명칭이 keyd.rvaiya로 패키징되어 제공됩니다. 다만 백그라운드 서비스 이름은 그대로 keyd를 사용하므로 관리 방식은 동일합니다.
systemctl is-active keyd
이 단계가 끝나면 터미널 출력 결과로 active 상태가 확인되면 성공입니다.
2단계: 키보드 매핑 설정과 시행착오 분석
설정 파일인 /etc/keyd/default.conf를 작성합니다. 이 과정에서 두 가지 중요한 기술적 제약을 실측으로 확인했습니다.
첫 번째는 키 이름 표기법입니다. keyd 내부 키 목록(keyd.rvaiya list-keys)을 확인해 보면 한글 키의 공식 명칭은 hangul이 아니라 알파벳 e가 들어간 hangeul로 정의되어 있습니다. hangul로 지정하면 구문 해석에 실패합니다.
두 번째는 영문 표준 레이아웃과의 호환성입니다. 시스템의 기본 키보드 레이아웃이 미국 표준(us)으로 지정된 경우, 커널에서 hangeul 신호를 발생시켜도 상위 XKB 계층에서 해당 심볼을 인식하지 못하고 버리는 현상이 발생합니다. 반면 Fcitx5 입력기의 전역 활성화 기본 단축키인 컨트롤과 스페이스 조합(C-space)을 발생시키면 키보드 레이아웃 종류에 상관없이 즉시 한영 전환이 발동됩니다.
또한 대문자 고정 기능을 완전히 없애고 순수 한영 전환 키로만 쓰기 위해 단일 매핑을 적용합니다. 터미널에서 다음 명령어를 실행하여 설정을 기록합니다.
sudo tee /etc/keyd/default.conf > /dev/null << 'EOF'
[ids]
*
[main]
# 대문자 고정 기능을 완전히 제거하고 한영 전환 단축키로 1:1 매핑
capslock = C-space
EOF

이 단계가 끝나면 /etc/keyd/default.conf 파일 내용에 capslock = C-space 항목이 정확히 저장되어 있으면 성공입니다.
3단계: 데몬 재시작과 최종 동작 검증
작성한 설정 파일을 적용하기 위해 keyd 데몬을 재시작합니다.
sudo systemctl restart keyd
설정이 완료된 즉시 캡스락 키를 눌러 입력 상태를 테스트합니다. 글자를 입력하면서 캡스락 키를 여러 번 눌러 봅니다.
- 한글 상태와 영문 상태가 지연 시간 없이 즉각 교체되는지 확인합니다.
- 캡스락 키를 길게 누르거나 연타해도 키보드의 대문자 락 LED 불빛이 들어오지 않는지 확인합니다.
- 영문 입력 상태에서 대문자가 필요할 때는 쉬프트(Shift) 키를 누르고 정상적으로 대문자가 입력되는지 확인합니다.
이 단계가 끝나면 메모장이나 터미널 창에서 캡스락 키 하나만으로 대문자 걸림 없이 한영 전환이 자유롭게 이루어지면 성공입니다.
보안 및 주의사항
- 시스템 설정 파일 수정과 패키지 설치에는 반드시 관리자(sudo) 권한이 필요합니다.
- 다중 사용자 환경이거나 특수 키보드 동글을 사용하는 경우 모든 장치에 일괄 적용되므로 특정 장치만 지정하려면
[ids]섹션에 장치 하드웨어 고유 번호를 지정해야 합니다. - 원격 데스크톱(RDP, VNC)을 사용하는 경우 클라이언트 측 운영체제의 키 입력 가로채기 동작과 충돌할 수 있으므로 콘솔 직접 연결 상태에서 우선 점검하는 것을 권장합니다.
트러블슈팅
- 캡스락을 눌러도 한영 전환이 반응하지 않는 경우: Fcitx5 환경 설정에서 전역 트리거 단축키 목록에
Control+space가 등록되어 있는지 확인합니다.~/.config/fcitx5/config파일의[Hotkey/TriggerKeys]항목에0=Control+space가 포함되어 있어야 합니다. - 서비스 재시작 시 구문 에러가 발생하는 경우:
sudo journalctl -u keyd -n 20명령어로 오류 로그를 확인합니다. 키 이름 오타나 알 수 없는 수식어가 포함되었는지 점검합니다. - 캡스락 LED가 여전히 켜지는 하드웨어의 경우: 펌웨어 자체에서 LED를 제어하는 특수 키보드의 경우 데스크톱 환경의 키보드 고급 설정(XKB 옵션)에서 Caps Lock 동작을 비활성화(caps:none) 항목으로 함께 지정해 줍니다.
마무리: 항상 소문자 기본 환경이 주는 생산성
기존 캡스락 키는 실수로 눌렸을 때 의도치 않게 대문자가 연속 입력되어 비밀번호를 틀리거나 코드를 망치는 원인이 되곤 했습니다. 대문자 고정 기능을 완전히 끄고 한영 전환 전용 키로 지정함으로써 타건 실수를 원천 차단하고 맥북과 동일한 자연스러운 타이핑 흐름을 구축했습니다. 리눅스와 맥OS를 함께 운영하는 작업자에게 최적의 환경 구성입니다.
0 댓글