Linuxにおける日本語入力方式

Linux101

Ryo Nakagami

2026年02月16日

日本語入力方式の比較

  • 日本語入力方式の比較

  • 各方式の解説

日本語入力システムの種類

record1:
  入力方式: FEP<br>(Front End Processor)
  概要:
    - キーボード割込みを直接処理する端末常駐型
    - アプリ非依存・画面バッファ直接書換
    - 単一プロセス制御
  どこで処理?:
    - OS / TTY レベル
  tool例:
    - canna + canuum
    - wnn + uum

record2:
  入力方式: XIM<br>(X Input Method)
  概要:
    - X11標準IMプロトコル
    - クライアント⇄IMサーバ通信型
  どこで処理?:
    - X11レイヤ
  tool例:
    - kinput2
    - wnn + Xwnmo

record3:
  入力方式: X11 Framework型<br>(IBus / Fcitx5)
  概要:
    - XIMプロトコルに代わりD-Busで IM 通信
    - GTK/Qt IM Moduleで透過的にアプリ統合
  どこで処理?:
    - D-Bus + X11レイヤ
  tool例:
    - fcitx5 + mozc
    - ibus + mozc

record4:
  入力方式: Wayland IM
  概要:
    - compositor主導のIMプロトコル
    - 厳格な入力フォーカス管理
    - セキュア分離モデル
  どこで処理?:
    - Wayland compositor
  tool例:
    - fcitx5 + mozc

record5:
  入力方式: 組み込み型
  概要:
    - アプリ内部に入力処理を実装
    - 外部IMサーバ不要
    - アプリごとに独立実装
  どこで処理?:
    - アプリケーション内部
  tool例:
    - Emacs

各方式の解説

  • 日本語入力方式の比較

  • 各方式の解説

FEP(Front-End Processor)

Front-End Processor

  • OS やターミナルのレベルでキー入力を横取りし,変換結果を画面に直接書き込む方式
  • アプリケーション側は日本語入力の存在を意識しない
  • GUI 環境の普及とともに役割を終えた
user
FEP
日本語変換
サーバー
Application
1
2
3
4
  • FEPは単なる仲介者ではなく,サーバーへのリクエスト(②)レスポンス(③)を制御する中心核として機能
  • アプリケーションへの最終配送(④)までを一気通貫で管理する独立したプロトコル・スタックを形成している

XIM(X Input Method)

X Input Method

  • X Window System の標準プロトコルとして定義された入力方式
  • アプリケーションが Xlib を通じて IM サーバーと通信し,入力をフィルタリングする
  • 同期通信によるパフォーマンス低下や,UI 描画の柔軟性の欠如が課題
user
X Server
Application (Xlib)
XIM Server
日本語変換
サーバー
1
2
3
4
5
6

X11 Framework型(Fcitx5 / IBus)

X11 Framework Model

  • D-Bus による疎結合化: XIMプロトコルに代わり,D-Bus で IM 通信を行うことで疎結合を実現
  • IM Module の活用: アプリ側のツールキット(GTK/Qt)専用モジュールが D-Bus 通信を隠蔽する
  • 柔軟な描画: 候補ウィンドウを IM 側が独立した X11 ウィンドウとして表示するため,自由な UI 設計が可能
user
D-Bus
(Message Bus)
Application (GTK / Qt IM Module)
IM Framework
(Fcitx5 / IBus)
日本語変換エンジン
(Mozc)
1
2
3
4
5
6

Wayland Input Method

Wayland Input Method

  • text-input-v3 / input-method-v2 プロトコルで標準化された入力方式
  • Wayland compositor が入力を一元管理し,IM は compositor 経由でアプリと連携
  • フォーカス管理とプロセス分離を前提としたセキュア設計
user
Wayland
Compositor
Application
IM Service
(Fcitx5 / IBus)
日本語変換エンジン
(Mozc)
1
2
3
4
5
6

組み込み型(Emacs 内蔵 IM)

Embedded Input Method Model

  • 自己完結型設計: アプリケーション(Emacs等)内部に Lisp などで実装された IM ライブラリを直接持つ
  • 外部依存ゼロ: コンポジタや IM フレームワークを介さず、OS からの未加工イベントを直接処理
  • シームレスな統合: エディタのバッファ管理と IM 状態が直結しており、高度なカスタマイズが可能
user
Application (e.g., Emacs)
Internal IM
(Leim / SKK)
Text Buffer /
Core Logic
Dictionary File
(.pwn / .jisyo)
1
2
3
4