Kali에 보안 프로젝트 환경을 만들면서 한글 입력이 안 되는 게 계속 거슬렸다. 처음엔 단순하게 생각했다. Settings에서 Region & Language 들어가 한국어만 추가하면 끝나는 줄 알았다. 추가는 됐는데 한영 전환 자체가 안 먹었다. 게다가 어떤 시스템 다이얼로그에서는 한글이 두부(□□□)로 깨져 보였다. 두 가지 문제가 겹쳐 있었던 거다.
한참 찾아보고 나서야 헷갈렸던 지점을 알았다. GNOME Settings의 입력 소스에 한국어를 추가하는 건 그냥 키보드 레이아웃을 추가하는 거였다. 자판 배치만 한국식으로 바뀔 뿐, 한글 조합을 해주는 게 아니었다.
한글 입력에는 IME(Input Method Engine)가 따로 필요하다. ㅎ + ㅏ를 눌러서 "하"로 조합하는 처리는 키보드 레이아웃이 하는 일이 아니다. 자모를 받아서 음절로 묶어주는 별도 프로그램이 있어야 하고, 그 역할을 fcitx5나 ibus 같은 IME 프레임워크가 담당한다.
sudo apt update
sudo apt install -y fcitx5 fcitx5-hangul fcitx5-configtool im-config
각각 하는 일은 이렇다.
fcitx5 — 입력기 프레임워크 본체fcitx5-hangul — 한글 조합 엔진(libhangul 기반)fcitx5-configtool — GUI 설정 도구im-config — 시스템 기본 입력기 지정 유틸기본 입력기를 fcitx5로 지정하는 건 한 줄이면 된다.
im-config -n fcitx5
이러면 다음 로그인부터 시스템이 fcitx5를 입력기로 띄운다.
여기가 진짜 놓치기 쉬운 부분이었다. GTK 앱과 Qt 앱이 어떤 입력기를 쓸지는 환경 변수로 결정된다. /etc/environment에 다음을 추가했다.
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
/etc/environment에 박으면 시스템 전체에 적용돼서 X 세션이든 Wayland든 다 잡힌다. 사용자 단위로만 적용하고 싶으면 ~/.profile이나 ~/.xprofile에 export로 넣어도 된다. 여기서 한 번 재로그인해야 한다.
fcitx5-configtool
설정창을 열면 왼쪽에 "현재 입력기", 오른쪽에 "사용 가능한 입력기"가 뜬다. 한국어가 목록에 안 보이면 "현재 언어만 표시" 체크를 해제하면 된다. 이거 모르고 한참 헤맸다. Hangul을 찾아서 왼쪽으로 옮기고 Apply를 누르면 된다.
문제는 그다음이었다. 한국 키보드는 오른쪽 Alt 옆에 한/영 키가 따로 있는데, 일반 PC 키보드에는 그 키가 없다. 그러니 어떤 키를 한영 전환에 쓸지 직접 지정해야 한다.
방법은 두 가지다. 하나는 fcitx5 설정에서 단축키로 지정하는 방법으로, Global Options 탭의 Trigger Input Method 항목에서 원하는 키를 추가하면 된다. 나는 Hangul 키와 Shift+Space를 같이 등록했다.
다른 방법은 오른쪽 Alt를 한글 키로 리매핑하는 것이다(X11 환경 한정).
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'keycode 108 = Hangul'
xmodmap -e 'remove control = Control_R'
xmodmap -e 'keycode 105 = Hangul_Hanja'
오른쪽 Alt를 한글 키로, 오른쪽 Ctrl을 한자 키로 바꾸는 방식이다. ~/.xprofile에 넣어두면 로그인할 때마다 자동 적용된다. 다만 Wayland에서는 xmodmap이 먹지 않아서, 그 환경에서는 keyd 같은 걸 따로 써야 한다.
리매핑이 잘 됐는지는 xev를 띄워두고 키를 눌러보면 확인할 수 있다. 콘솔에 keysym 0xff31, Hangul 같은 게 뜨면 성공이다.
한글이 □□□로 보이는 건 단순히 한글 글꼴이 안 깔려서였다.
sudo apt install -y fonts-nanum fonts-nanum-coding fonts-noto-cjk
설치하고 재로그인하니 깨짐이 사라졌다.
결국 순서를 정리하면, fcitx5와 fcitx5-hangul을 깔고, im-config로 기본 입력기를 지정하고, 환경 변수를 등록한 다음, 한영 전환 키까지 매핑하고, 마지막에 한글 폰트를 깔아야 완성된다. 이 중 하나만 빠져도 한글 입력이 제대로 안 된다.
참고한 자료:
한글이 안 써질 때 키보드 레이아웃만 바꾸다 보면 계속 제자리다. XKB는 물리 키와 키 심볼 매핑을 담당하고, fcitx5는 조합 중인 글자를 애플리케이션에 전달한다. 한영 키 이벤트가 들어오는지, fcitx5가 세션에 떠 있는지, GTK/Qt 애플리케이션이 입력기 모듈을 보고 있는지를 따로 확인해야 한다.
fcitx5-diagnose
ps aux | grep fcitx5
xev
xev에서 키 이벤트는 보이는데 전환이 안 되면 fcitx5 단축키 설정을 보고, 특정 앱에서만 입력이 안 되면 그 앱의 GTK/Qt/Wayland 실행 환경을 본다. 이 순서로 나누니 설정 파일을 무작정 여러 번 덮어쓰는 일을 줄일 수 있었다.
| Parsec으로 맥→윈도우 원격접속할 때 Cmd+W 누르면 파섹이 꺼지는 문제 (0) | 2026.07.26 |
|---|---|
| iTerm2에서 SSH로 Linux 접속할 때 한글 깨짐 + zsh/Powerline 테마 잡기 (0) | 2026.07.22 |
| 새 PC에 Windows + Ubuntu 듀얼부팅 처음 깔아보기 (Rufus, BIOS, 미할당 256GB) (0) | 2026.07.22 |
| Ubuntu 24.04에 카카오톡 설치하다 결국 포기한 이유 (Bottles + Wine + fcitx5) (0) | 2026.07.22 |
| Kali Linux VMware에서 마우스 커서 사라지고 165Hz도 안 잡힐 때 (0) | 2026.07.22 |