AWS EC2 UbuntuインスタンスにNICE DCVで接続して開発している環境で、韓国語IME(kime)をインストールしたところ、一文字だけ入力されてすぐ英語モードに戻る問題に遭遇しました。

環境

  • Ubuntu(GNOME、X11)
  • NICE DCV 2025.0(Webクライアント)
  • kime 3.1.1

症状

Shift+SpaceHangulキーで韓国語モードに切り替えた後、一文字だけ入力されて即座に英語モードに戻る。例えば「안녕하세요」と入力しようとすると「ㅇ」だけが出力され、残りは英語で入力される。

原因分析

1. kime設定ファイルの文法エラー

システム設定/etc/xdg/kime/config.yamlShift-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によるキーボードイベントの横取り

上記2つを修正しても一文字だけ入力される症状が続いた。kimeデーモンのログをtraceレベルで確認したところ、韓国語モードへの切り替えが一度も記録されていなかった — インジケーターは常に「Latin」のみを表示。

DCVはキーボードイベントをクライアント側で解釈してからサーバーに転送するため、サーバーで動作しているkimeが正しくキーイベントを受け取れないことが根本原因だった。

解決方法

1. kimeユーザー設定の作成

~/.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-Spaceglobal_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入力ソース('xkb', 'us')のみ

DCVで韓国語入力ができない場合、高い確率でDCVがキーイベントを横取りしていることが原因。use-server-keyboard-layout='always-on'が核心的な解決策。