AWS EC2 Ubuntu 인스턴스에 NICE DCV로 접속해서 개발하는 환경에서, 한글 입력기(kime)를 설치했는데 한 글자만 입력되고 바로 영어 모드로 돌아가는 문제를 겪었습니다.

환경

  • Ubuntu (GNOME, X11)
  • NICE DCV 2025.0 (웹 클라이언트)
  • kime 3.1.1

증상

kime 설치 후 Shift+SpaceHangul 키로 한글 모드 전환은 되지만, 한 글자만 입력되고 즉시 영어 모드로 돌아감. 예를 들어 “안녕하세요"를 치려고 하면 “ㅇ"만 나오고 나머지는 영문으로 입력됨.

원인 분석

1. kime 설정 파일 문법 오류

시스템 설정 /etc/xdg/kime/config.yaml에서 Shift-Space라고 적혀 있었는데, kime 3.x에서는 S-Space가 올바른 문법입니다.

kime-check
# Config file ... Fail (Can't parse config.yaml: engine.global_hotkeys:
#   invalid value: string "Shift-Space", expected Key)

2. GNOME ibus hangul 충돌

GNOME 입력 소스에 ('ibus', 'hangul')이 설정되어 있으면 kime와 충돌합니다.

3. 핵심 원인: DCV 키보드 이벤트 가로채기

위 두 가지를 고쳐도 여전히 한 글자만 입력되는 증상이 계속되었습니다. kime 데몬 로그를 trace 레벨로 켜 봤더니, 한글 모드로 전환된 적이 없었습니다 — 인디케이터는 계속 “Latin"만 표시.

DCV가 키보드 이벤트를 클라이언트 쪽에서 해석한 뒤 서버로 전달하기 때문에, 서버에서 돌아가는 kime가 제대로 키 이벤트를 받지 못하는 것이 근본 원인이었습니다.

해결 방법

1. kime 사용자 설정 생성

/etc/xdg/kime/config.yaml의 문법 오류를 우회하기 위해 ~/.config/kime/config.yaml을 생성합니다.

daemon:
  modules:
  - Xim
  - Wayland
  - Indicator
indicator:
  icon_color: Black
engine:
  default_category: Latin
  global_category_state: true
  global_hotkeys:
    S-Space:
      behavior: !Toggle
      - Hangul
      - Latin
      result: Consume
    AltR:
      behavior: !Toggle
      - Hangul
      - Latin
      result: Consume
    Hangul:
      behavior: !Toggle
      - Hangul
      - Latin
      result: Consume
    Esc:
      behavior: !Switch Latin
      result: Bypass
  latin:
    layout: Qwerty
    preferred_direct: true
  hangul:
    layout: dubeolsik
    word_commit: false
    preedit_johab: Needed

핵심 변경: Shift-SpaceS-Space, global_category_state: true

2. GNOME 입력 소스 정리

# ibus hangul 제거, 순수 US 키보드만
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"

# im-config를 kime로 설정
im-config -n kime

3. DCV 서버 사이드 키보드 설정 (핵심!)

/etc/dcv/dcv.conf에 다음을 추가합니다:

[input]
use-server-keyboard-layout='always-on'

이 설정으로 DCV가 키보드 이벤트를 클라이언트에서 해석하지 않고 서버로 그대로 전달합니다.

4. 시스템 환경변수 등록

DCV 세션이 kime 환경변수를 인식하도록 /etc/environment에 추가합니다:

GTK_IM_MODULE=kime
QT_IM_MODULE=kime
XMODIFIERS=@im=kime

5. 적용

sudo systemctl restart dcvserver

DCV 클라이언트에서 재접속하면 한글 입력이 정상 동작합니다.

결과

  • Right Alt 키로 한/영 전환: 정상 동작
  • Shift+Space: DCV 웹 클라이언트가 여전히 가로채서 동작하지 않음
  • Hangul: 키보드에 따라 다름

DCV 환경에서는 Right Alt가 가장 안정적인 한/영 전환 키입니다.

정리

설정 파일변경 내용
~/.config/kime/config.yaml사용자 설정 생성 (문법 수정 + global_category_state)
/etc/dcv/dcv.confuse-server-keyboard-layout='always-on'
/etc/environmentkime 환경변수 3개 추가
GNOME input sources('xkb', 'us') 단일 설정

DCV에서 한글 입력이 안 되면, 높은 확률로 DCV가 키 이벤트를 가로채고 있는 것이 원인입니다. use-server-keyboard-layout='always-on'이 핵심 해결책입니다.