xkb 로 Linux 한영(한글/영어) 한자 전환키 설정


Ubuntu 20.04 LTS 와 fedora 34 를 사용하는데 이제는 Linux desktop 환경이 많이 편해져서 설치후 별다른 설정없이 한글 사용이 큰 불편이 없어졌습니다.


한글 입력기도 기본 설정인 IBus 를 사용하는데 Chrome/Edge, Visual Studio Code, Slack 등 많이 사용하는 프로그램에서도 정상 동작합니다.

facebook 에서는 입력이 제대로 안 되는 문제가 있지만 이정도는 감내할 수 있는 불편이고요.


한 가지 문제는 키보드의 한/영키를 Right Alt로 인식해서 한영 전환이 제대로 안 되는 경우가 있는데 이는 xkb(X keyboard extension) 으로 설정을 변경해 주면 됩니다.

한영, 한자키 설정

xkb 설정 파일인 /usr/share/X11/xkb/keycodes/evdev  를 에디터로 열고 다음과 같이 수정해 줍니다.

$ sudo vim  /usr/share/X11/xkb/keycodes/evdev  

root 권한이 필요합니다.


Alt_R 은 보통 키 코드가 108(0x6c) 인데 이를 Hangul 키로 매핑해야 하므로 기존의 RALT 부분을 주석 처리합니다.

//<RALT> = 108;

한글 키를 130 으로 매핑한 부분도 주석처리하고 다음과 같이 108 을 Hangul 키로 설정해 줍니다.

//<HNGL> = 130; // Hangul Latin toggle
<HNGL> = 108; // Hangul Latin toggle


한자 키가 131 로 매핑되어 있으면 Control_R 인 105(0x69) 로 바꿔줍니다.

//<HJCV> = 131; // Hangul to Hanja conversion
<HJCV> = 105;   // Hangul to Hanja conversion


현재 세션에 바로 반영되게 setxkbmap 명령을 실행합니다.

$ setxkbmap -layout us

한글과 한자를 입력해서 제대로 동작하는지 확인해 봅니다.


매핑 설정

Settings  → "Region & Language" 에 들어갑니다.

Input source  → "Korean(Hangul)" 을 클릭합니다.


Hangul 과 Hanja 전환 키 설정을 확인하고 없으면 Add 를 눌러서 추가해 줍니다.

Ref