Linux(Ubuntu系)で日本語入力環境を設定する

Linux(Ubuntu系)で日本語入力環境を設定する Linux
Linux(Ubuntu系)で日本語入力環境を設定する

はじめに

Lubuntuを入れてみて最初に困ったのが、日本語入力ができないことでした。軽量Linuxの多くは常駐を減らすために日本語環境(他の言語の変換環境も同様です)がデフォルトでは入っていません。

Linuxの日本語入力はいくつかの部品が組み合わさって動いているので「一つのソフトを入れれば終わり」という話ではないことや、選択肢がいろいろあったりするので、すこし初心者泣かせなところがあります。

この記事では、実際にLubuntuでの日本語入力環境構築手順をまとめようと思います。内容はLubuntuですが、基本的な部分は同じなのでUbuntu系Linuxの参考になると思います。

Linuxでの日本語入力環境の概要

Linuxの日本語入力は、大きく分けて次の3層構造になっています。

1. 入力メソッドフレームワーク(IMF: Input Method Framework)

まず必要な物としてIMFがあります。

IMFは「Input Method Framework」の略で、入力全体を管理する仕組みのことです。

キーボード入力を受け取り、どの変換エンジンを使うかを管理する「司令塔」です。今回使ったのは Fcitx5 です。

役割としては次のようなものがあります。

  • キーボード入力の監視
  • 日本語入力モード/英数入力モードの切り替え管理
  • 変換エンジンへの入力受け渡し
  • 変換候補ウィンドウの表示
  • アプリへ確定文字列を渡す

基本的に常駐して動いているのはこのFcitx5です。後述しますが、もちろんIMFもいくつかの選択肢があります。

2. 日本語変換エンジン(IME: Input Method Editor)

次に必要になるのがIMEです。

IMEは「Input Method Editor」の略で、実際に文字変換を行う部分です。

ローマ字をかなや漢字に変換する「頭脳部分」です。今回は Mozc を使いました。

Mozcは単体ではアプリに直接入力できません。Fcitx5の中に組み込まれる形で動きます。

3. アプリ側の受け口(環境変数)

どの入力メソッドを使うかを決める設定が必要です。

それを行うのがim-configです。

例えば次のような環境変数があります。

  • GTK_IM_MODULE
  • QT_IM_MODULE
  • XMODIFIERS

これらは、アプリに対して「どの入力メソッドを使うか」を伝えるための変数です。

  • GTK_IM_MODULE はGTKベースのアプリ(Firefoxなど)向け
  • QT_IM_MODULE はQtベースのアプリ(LXQt系など)向け
  • XMODIFIERS はX11経由の入力処理向け

これらがfcitxを指していないと、Fcitx5が起動していてもアプリ側がそれを使わず、日本語入力が効かないという状態になります。

im-configはどのIMEを使うか設定する役割があります。

実際にやった環境構築の手順

ここではUbuntu系(Lubuntu)で実際にやった手順を書きます。

Localeの前提

日本語入力の設定を進める前に、ロケールも一応確認しておきます。

デスクトップ用途であれば多く人は日本語ロケールでインストールしているとは思います。

IME(fcitx5やmozc)は変換を担当しますが、ロケールはOS全体の言語・文字コードの土台なので、ここがUTF-8になっていないと文字化けの原因になります。

ターミナルで

locale

と入力すれば現在の設定が確認でき、

LANG=ja_JP.UTF-8

LANG=en_US.UTF-8

になっていれば問題ありません。

日本語変換環境を設定するからといって日本語ロケールになっていないといけないという訳ではありません。en_US.UTF-8でも日本語変換は行えますが、ただアルファベット表示想定になるので、アプリケーションの表示などに不具合が出る可能性は否定できません

もしUTF-8になっていない場合は、Ubuntu系なら

sudo dpkg-reconfigure locales

を実行して ja_JP.UTF-8 を有効化・選択し、ログアウトし直せば反映されます。

IMEを入れても挙動がおかしいときは、まずこの土台を疑うと整理しやすいです。

1. 必要パッケージのインストール

まずは必要なパッケージを入れます。

sudo apt update
sudo apt install -y im-config fcitx5 fcitx5-mozc fcitx5-config-qt

フォントは環境によっては追加で入れたほうが良い場合もありますが、必須ではありません。

Lubuntuでもいくつかの日本語フォントは最初から入っているので、もしそれで足りないようなら、別途インストールしてください。下記はnotoフォントのインストールです。

sudo apt install fonts-noto-cjk

2. 入力メソッドの指定

Ubuntu系では、どの入力メソッドを使うかを im-config で指定します。

im-config -n fcitx5

これを実行してからログアウトする必要があります。IMEはログイン時に読み込まれるため、一度ログアウトすることで環境変数が正しく反映されます。設定中に不具合にならないようにする予防策でもあります。

3. Fcitx5でMozcを有効化(GUI)

fcitx5-configtool

このコマンドは fcitx5-config-qt パッケージをインストールすることで利用できる設定ツールです。QtベースのGUI設定画面を起動します。

設定画面を開き、右側から「Mozc」を選び、左側の有効な入力メソッドに追加します。

並びは次のようにしました。

  • キーボード – 日本語
  • Mozc

その後、Ctrl + Space で切り替えると「あ」になるようになりました。

4. CLIから設定する方法

fcitx5-configtoolによるGUIを使わなくても、fcitx5-remote や設定ファイルの編集で制御できます。

現在の状態確認は次のようにできます。

fcitx5-remote

設定ファイルは通常、以下にあります。

~/.config/fcitx5/profile

この中に有効な入力メソッドが記述されており、Mozcを追記することで有効化できます。GUIはこのファイルを書き換えているだけです。

各項目の詳しい説明

im-configとは何か

Ubuntu系独自の「入力メソッド選択ツール」です。

複数の入力メソッド(IBusやFcitxなど)が存在するため、どれを使うかをユーザー単位で決めます。内部的にはログイン時に読み込まれる環境変数を設定しています。

Fcitx5の役割

Fcitx5は入力管理の中枢です。

常駐プロセスとして動き、キーボード入力を受け取り、必要に応じてMozcに渡し、変換候補を表示し、確定文字列をアプリに返します。

「Mozcを左に追加する」という操作は、Fcitx5に対して「この変換エンジンを使う」と登録する作業でした。

もともとは中国語変換のIMEとして開発された経緯があります。

Mozcの役割

MozcはGoogle日本語入力と同系統の変換エンジンです。Googleによってメンテナンスされています。

やっていることは次のようなものです。

  • ローマ字からかなへの変換
  • 漢字変換候補の生成
  • 変換履歴の学習

入力モードの管理はFcitx5が行い、変換の中身はMozcが担当します。fcitx5-mozcをインストールしましたが、それが実際のMozcになります。

環境変数の意味

先ほど以下の環境変数について少し説明しましたが、これらの環境変数がどのIMEを使うかを伝える役目になっています。

  • GTK_IM_MODULE
  • QT_IM_MODULE
  • XMODIFIERS

設定後、実際に確認した環境変数は次のような値でした。

echo $GTK_IM_MODULE $QT_IM_MODULE $XMODIFIERS
fcitx fcitx @im=fcitx

これはGTKアプリ、Qtアプリ、X11アプリに対して「入力はfcitxを使え」と伝えています。

ログイン時にシェルやセッション初期化スクリプトを通じて設定され、アプリ起動時に参照されます。

他のLinuxディストロや入力方法について

Linuxではディストロやデスクトップ環境によって標準の入力メソッドが異なります。

IBus

Ubuntu(GNOME系)ではIBusが標準です。

  • GNOMEとの統合が強い
  • 設定がデスクトップ設定に統合されている
  • Wayland環境との相性が比較的良い

Fcitxと役割はほぼ同じですが、UI統合の仕方や内部構成が少し異なります。

今回Fcitx5を選んだ理由は、LubuntuはLXQt環境での利用を前提としていたためです。軽量デスクトップ環境ではFcitx系が使われることが多く、設定の自由度も高い印象があります。

一方で、GNOMEを使っている場合はIBusのほうが自然に統合されます。特にWayland環境ではIBusが前提になっていることも多く、無理にFcitxへ切り替えないほうが安定するケースもあります。

つまり「どちらが優れているか」というよりも、「どのデスクトップ環境を使っているか」で選ぶのが現実的だと感じました。

Fcitx(旧バージョン)

Fcitx4という旧世代もあります。現在はFcitx5が主流です。

Arch LinuxやFedoraの場合

Archではユーザーが自分でIMFを選びます。FedoraではIBusが標準です。

どのディストロでも基本構造は同じで、「IMF + IME + 環境変数」の組み合わせになっています。

まとめ

Linuxの日本語入力は、

  • 入力管理(Fcitx5など)
  • 変換エンジン(Mozcなど)
  • アプリとの接続(環境変数)

という複数の部品で構成されています。

最初は「あ」が出ないだけで混乱しましたが、構造を理解するとトラブルの切り分けがしやすくなります。

単に「日本語入力を入れる」というよりも、「入力の仕組みを理解しながら組み立てる」という感覚でした。

Linuxを勉強している立場としては、この分解された構造そのものが面白いところだなと感じています。

コメント

タイトルとURLをコピーしました