Linux の日本語入力設定手順
お伝えしたいこと
Linux では、デスクトップ環境をインストールした後もデフォルトでは日本語入力ができません。
入力できるのはアルファベットのみです。
本記事では、Linuxデスクトップ環境で日本語入力を設定する方法をお伝えします。
筆者環境の都合で、 Fedora に iBus + Mozc を導入するケースを紹介します。
ただ、基本的な考えはディストリビューションに依らず、共通していると思います。
Input Method やMozcといった用語を知りたい方は、先に(参考) Input Method とはを参照してください。
Fedora以外のディストリビューションを使っていて、ibus-mozc以外のIMEも検討したい方は、先に(参考) その他の日本語入力の選択肢をご覧ください。
- お伝えしたいこと
- 日本語入力の設定手順
- (参考) Input Method とは
- (参考) その他の日本語入力の選択肢
- (参考) Mozcがクラッシュしたときは
- (参考) デフォルトIMEの変遷
- まとめ
- Linux PC構築関連リンク集
日本語入力の設定手順
Input Method のインストール
今回は、デフォルトのibus-anthy (iBus + anthy) ではなく、ibus-mozc (iBus + Mozc) を使用します。
理由は以下の通りです。
- Mozc は元Windows使いにとって最も違和感の少ない選択肢
- #(参考) デフォルトIMEの変遷に記載の通り、ibus-mozcは今後FedoraのデフォルトIMEとして採用される可能性があるかもしれない... (あくまで想像です)
Mozcを使う場合は、ibus-mozc以外にもfcitx-mozcという選択肢もあります。
fcitxの方が慣れていて好ましいという方は、そちらもご検討ください。
特にこだわりがなければ、本記事に合わせてibus-mozcを選択する方が調査の手間を省けると思います。
さて、必要パッケージをインストールします。
以下のコマンドを実行してください。
sudo dnf install ibus-mozc langpacks-ja
langpacks-ja
は、日本語入力という意味では本来必要ではありません。
実際、このパッケージがなくても日本語入力の設定は問題なくできます (従ってディスクリソースが非常に限られた使い捨てサーバなどの環境では省略しても問題ありません)。
ただ、このパッケージに依存関係でついてくる langpacks-core-font-ja
や google-noto-serif-cjk-ttc-fonts
といったフォントが環境次第では日本語環境の文字化けを解消することもあるので、ついでに入れてしまうのが推奨です。
langpacks-ja
は、本来 localectl
コマンドで日本語環境を設定するために必要なメニュー日本語翻訳情報などを含むメタ情報パッケージです。
依存関係でmanの翻訳情報も一緒についてきます (man-pages-ja
)。
langpacks に関する詳細情報が知りたい方は、RedHat社のマニュアルを参考にしてみてください。
Input Method の選択
Input Method Framework として iBus を使うように設定します。
Cinnamon デスクトップ環境をモデルに説明しますが、他のデスクトップ環境でもほぼ同様の手順で対応できると思います。
Menu
から input method
で検索し、Input Method Selector
を起動します。
im-chooser
コマンドを実行することでも同じ画面を起動できます。
↑ iBus
を選択します。
必要に応じて再ログインして設定反映します。
iBus の隣にある Preferences
から iBus の設定画面に移動します。
ibus-setup
コマンドを実行することでも同じ画面を起動できます。
iBusの設定
先程のiBus の設定画面で、 Input Method
のタブを開きます。
既存のMozc 以外のInput Method が登録されていた場合は、 Remove
で除外します。
そして Add
> Japanese
> Mozc
と選択し、Mozc をIMEとして追加します。
Preferences
を選択し、Mozc の設定画面を開きます。
/usr/libexec/mozc/mozc_tool --mode=config_dialog
コマンドを実行することでも同じ画面を起動できます。
(任意) キー配置のカスタマイズ (Mozc の設定変更)
基本的には変更不要ですが、私の好みで一部キー配置をカスタマイズします。
Windows でも同様のことを行っていたのですが、以下のように設定します。
- 未入力の状態で
変換
を押すと、IMEオン
にする (デフォルトは再変換) - 未入力の状態で
無変換
を押すと、IMEオフ
にする (デフォルトは入力形式をひらがな
、全角カタカナ
、半角カタカナ
の順に切り替える)
半角/全角
キーで切り替えていると、今IMEオンなのかオフなのかわからなくなることが多いのですよね。
なので、上記のようにMac風なカスタマイズを入れることで、日本語入力の前は変換
、英語入力の前は無変換
を押してからタイプすれば問題ない状態を作っています。
上記のようにカスタマイズしたい方は、以下のように設定変更してください。
下記Mozcの設定画面で、Keymap (キー設定)
> Keymap Style (キー設定の選択)
> Customize (編集)
を選択します。
すると、 Mozc keymap editor
が開きます。
ここで上図赤枠のような設定となるように、以下の設定を入れます。
※設定箇所を見つけやすくするため、一番上の Key
の部分をクリックしてソートしておくと良いです
Mode (モード) | Key (入力キー) | Command (コマンド) |
---|---|---|
Direct input (直接入力) | Henkan (変換) | Activate IME (IMEを有効化) |
Precomposition (入力文字なし) | Henkan (変換) | Activate IME (IMEを有効化) |
Precomposition (入力文字なし) | Muhenkan (無変換) | Deactivate IME (IMEを無効化) |
入力キーの設定は、下記サイトを参考にさせていただきました。
こちらのサイトには、変換中に変換キーや無変換キーを押した場合もIMEオン/オフを切り替えるような設定になっていました (更にMac寄り?)。
こちらでiBus、Mozc の設定は完了です。
関連するウィンドウは OK
などで設定を反映しつつ閉じて大丈夫です。
キーボードレイアウトの不具合回避
ibus-mozc の不具合と思われるのですが、2020/9 現在、iBusにMozc を追加した直後はGUIのキーボードアプリで日本語キー配置を選択しているのに英語キー配置になってしまう という事象があります。
以下に、この事象の回避方法を記載します。
3パターン紹介しますが、回避方法1 が一番お勧めです。
他の方法は、回避方法1 でうまく行かなかった場合のために念のため記載しています。
※英語キーボードレイアウトを使っている方はそもそも問題ないので、スキップで問題ありません
回避方法1. ibus-mozc の設定ファイルからキーボードレイアウトの指定を変更する (推奨)
こちらは根本原因に対するアプローチです。
私もこの方法を使っています。
システム全体に影響を与えることになりますが、回避方法2 と組み合わせることでユーザーごとにキーボードレイアウトを指定できます。
以下サイトを参考にさせていただきました。
ありがとうございます。
以下のコマンドで mozc.xml
を開き、ファイルに直書きされたキーボードレイアウトの値を書き換えます。
以下のコマンドで設定ファイルを開きます。
sudo vi /usr/share/ibus/component/mozc.xml
<layout>default</layout>
と書かれている部分を以下のように書き換えます。
<layout>jp</layout>
設定反映のためにデスクトップ環境への再ログイン、またはOS再起動します。
回避方法2. キーボードレイアウトの再登録 (非推奨)
Cinnamon デスクトップ環境の場合、キーボード設定から日本語キーボードレイアウトの再追加を行うことでも不具合を回避できました。
恐らく、他のデスクトップ環境でもできると思います。
英語キーボードと日本語キーボードを使うユーザーが混在しているときには役に立つかなと思います。
ただ、この方法を使った場合はiBusの設定画面からMozcをIMEとして追加するたびに不具合が再発するので、都度同じ手順で回避する必要が出てきます。
IMEの追加・削除を実施する頻度は低いので、それほど困らないとは思いますが...。
具体的には以下の手順です。
- Menu から
Keyboard
で検索し、キーボードの設定画面を開く Layout
タブを開き、以下の設定を行う+
アイコンからEnglish (US)
を追加−
アイコンからJapanese
を削除+
アイコンからJapanese
を再追加−
アイコンからEnglish (US)
を削除
回避方法3. iBus 設定において、「システムのキーボードレイアウトを使う」に設定する (非推奨)
回避方法1 と比較してあまり綺麗なやり方ではないのでオススメはしませんが、参考までに書いておきます。
iBus単体の機能でキーボードレイアウトを指定する方法です。
こちらの方法も回避方法1 と同様、システム全体に影響します。
具体的な手順は、以下の2ステップです。
ibus-setup
コマンドなどでiBusの設定画面を開き、Advanced
タブに移動するUse system default keyboad layout
にチェックを入れる
回避方法3の前提として、localeの設定で使いたいキーボードレイアウト (今回は日本語) になっている必要があります。
localectl
コマンドを実行し、 X11 Layout
がjpになっていれば、デスクトップ環境におけるキーボードレイアウトがjpとシステムレベルで設定されていることになります。
[stopendy@pc ~]$ localectl System Locale: LANG=en_US.UTF-8 VC Keymap: jp X11 Layout: jp [stopendy@pc ~]$
X11 Layout
を変更したい場合は、sudo localectl set-x11-keymap jp
といったコマンドを実行します。
(参考) Input Method とは
iBusとかMozc といった用語が複数出てきてもやもやしている方向けに、補足説明を用意しました。
気になる方のみ読んでください。
Input Method とは、キーボードから入力されたアルファベットから各言語の文字 (平仮名など) に置き換えたり、変換機能を与えるソフトウェア群のことです。
Linux における Input Method は、Input Method Framework と Input Method Editor (IME) の2つで構成されています。
Input Method Framework
Input Method Framework とは、IME (後述) を動作させるための共通フレームワークです。
IMEの切り替えなどの機能を持ちます (直接入力、IME1、IME2、...)。
日本語入力をサポートするフレームワークとして、以下があるようです。
これら4つには目立った機能差分はないようです。
日本語のブログを調べると、iBusかfcitxのどちらかを使っているという話をよく聞きます。
Fedoraにおいても、ibus-mozc
かfcitx-mozc
のいずれかを選択できます (※)。
(※) dnf list *-mozc
と実行すると、 ibus-mozc
とfcitx-mozc
が表示されるため。
以前はibus-mozc
しか存在しなかったが、いつからかfcitx-mozc
も追加されていた
Input Method Editor (IME)
IME を Input Method Framework と組み合わせることで、本来英字しか入力できないキーボードで多言語の入力をサポートできるようになります。
日本語のIMEは主に以下の機能を提供します。
具体的なIMEソフトを挙げると、例えば以下のようなものがあります。
- Windows:Microsoft IME, Google日本語入力など
- Mac:日本語入力プログラム (Mac OS標準)、Google日本語入力など
- Linux:Mozc, anthy, kkc など
Mozc と kkc を実際に使ってみたので比較します。
Mozc
- Arch Wiki のMozc紹介ページ
- Google 日本語入力から派生したオープンソースプロジェクト
- Microsoft IME や Google 日本語入力に慣れている人は違和感なく使える
- テキスト入力できるところをクリックするごとに通知領域のアイコンがチカチカ切り替わる部分が少し気になるけどすぐ慣れる
- GitHubを見たところ、更新頻度も申し分ない
kkc
- kkc公式GitHub
- 設定画面を見たところ、基本機能は揃っている印象
- Fedora にはデフォルトでibus-kkc がインストールされている
- Microsoft IME や Google日本語入力に慣れていると、少し癖を感じるかも
(参考) その他の日本語入力の選択肢
下記ページにまとまっているので、興味のある方はご覧ください。
あくまでArch Linux 向けの情報なので、実際にFedora が対応しているかどうかは以下のコマンドなどで確認します。
dnf list *-anthy *-kkc *-mozc *-skk # Installed Packages # ibus-kkc.x86_64 1.5.22-13.fc32 @fedora # ibus-mozc.x86_64 2.23.2815.102-9.fc32 @fedora # Available Packages # fcitx-anthy.x86_64 0.2.3-1.fc32 updates # fcitx-kkc.x86_64 0.1.0-17.fc32 fedora # fcitx-skk.x86_64 0.1.0-15.fc32 fedora # fcitx5-skk.x86_64 0-0.2.20200822git02fb41d.fc32 updates # gcin-anthy.x86_64 2.8.9-4.fc32 updates # ibus-anthy.i686 1.5.11-6.fc32 fedora # ibus-anthy.x86_64 1.5.11-6.fc32 fedora # ibus-skk.x86_64 1.4.3-6.fc32 fedora # m17n-lib-anthy.x86_64 1.8.0-7.fc32 fedora # scim-anthy.x86_64 1.2.7-26.fc32 fedora # uim-anthy.x86_64 1.8.8-6.20200828git0c2fbfa6.fc32 updates # uim-skk.x86_64 1.8.8-6.20200828git0c2fbfa6.fc32 updates
(参考) Mozcがクラッシュしたときは
時折Mozcがクラッシュして日本語入力できなくなることがあります。
その際は、iBusごと再起動することで復旧できます。
以下の画像はCinnamon デスクトップのサンプルですが、隅っこの通知領域にiBusのアイコンがあります。
このアイコンを右クリックし (1)、Restart を選択することでiBusを再起動できます (2)。
(参考) デフォルトIMEの変遷
以下のように変遷してきました。
時期 | デフォルトIME | 補足 |
---|---|---|
〜Fedora18 | ibus-anthy | ※最初からずっとibus-anthyなのか、途中からなのかは不明 |
Fedora19〜33 | ibus-kkc | anthyのメンテが滞り、kkcの方が活発だったので乗り換え |
Fedora34〜 | ibus-anthy | kkcのメンテが滞り、anthyの開発が再開されたので乗り換え |
ibus-mozcもデフォルトIMEの候補として意識はされているようです1。
まとめ
Linux (特にFedora) のための日本語入力の設定方法を書きました。
fcitx, iBus, Mozc, kkc など様々な用語が飛び交ってわかりづらい部分もありますが、本記事でもやもやが解消されて正しく設定する手助けになれば幸いです。
もし指摘・補足・質問などあればコメントお願いします。