[コメント欄に最新版向け記事あり] KDE neon 6 で fcitx5-mozc による日本語入力環境をセットアップする

KDE neon 6 をクリーンインストールし、最初から fcitx5 と mozc をセットアップしましたので、手順を共有します。

fcitx の公式ドキュメントと、以下の @ryam さんの投稿を参考にしました。

今のところパッケージの依存関係が少しおかしく、新しい Wayland 環境にあっていないようで、若干トリッキーなやり方をしています。
私の方でも、そのうち時間を作って、どうにか修正できないか KDE neon のメンテナーの人に連絡を取ってみたいと思っています。

IME のインストール手順

:warning: クリーンインストールされた環境を前提とした手順ですので、既存の KDE Plasma 5 からアップグレードした環境の場合、一部当てはまらない可能性があります。

1. パッケージのインストールとファイルベースの設定

まず以下のコマンドを実行しました。

sudo apt install fcitx5-mozc kde-config-fcitx5 # (1)
sudo apt remove --purge im-config # (2)
echo "XMODIFIERS=@im=fcitx" | sudo tee /etc/environment.d/fcitx5-xmodifiers.conf # (3)

まず、KDE 5 の頃と同じように fcitx5-mozc をインストールします。(1)

しかし、これにより連鎖的に im-config がインストールされてしまいます。
(fcit5-mozc > fcitx5 > im-config という連鎖依存)
im-config がインストールされていると、インストール時に /etc/X11/Xsession.d/70im-config_launch というファイルが作成され、どうやらこのファイルを経由して GTK_IM_MODULEQT_IM_MODULE の両変数が OS 起動時かログイン時かに設定されてしまうようです。
上記の @ryam さんの記事にある通り GTK_IM_MODULEQT_IM_MODULE は Wayland 環境では設定しない方が良いようですので、これは回避したいです。

幸い im-configfcitx5Recommends (推奨パッケージ) として指定されているようですので、fcitx5 を維持したまま im-config の削除が可能です。(2)
apt remove コマンドに --purge オプションを付けないと /etc/X11/Xsession.d/70im-config_launch は残ってしまうので注意して下さい。

(3) については、Wayland ネイティブで対応していないアプリケーションのために、

export XMODIFIERS=@im=fcitx

だけ設定しておく必要があるようですので、/etc/environment.d/ の中にファイルを作成しています。
/etc/environment.d/ 以下に書く代わりに、/home/YOUR_USER_NAME/.bash_profile などに書いても OK だと思います。

尚、(1) で kde-config-fcitx5 もインストールしていますが、これは KDE の設定画面に fcitx などの IME 設定を統合するパッケージです。(設定画面 > Input Method)
今回は利用しませんので、お好みでインストールしなくても構いません。

この他、クリーンインストール環境では必要ないようなのですが、KDE 5 から Discover や pkcon によるアップグレードを経て KDE 6 となった環境では、GTK アプリケーションでも fcitx を正常に動作させるため、GTK 側の設定が必要なようです。

~/.config/gtk-3.0/settings.ini 及び ~/.config/gtk-4.0/settings.ini には、[Settings] セクションの下に gtk-im-module=fcitx を、~/.gtkrc-2.0 には適当なところ (ファイルの一番下など) に gtk-im-module="fcitx" を追加して下さい。

※ 初心者向け補足: ~ はホームディレクトリー (/home/ユーザー名/) を示します。

~/.config/gtk-4.0/settings.ini の例

[Settings]
gtk-application-prefer-dark-theme=false
gtk-cursor-theme-name=breeze_cursors
# ...
gtk-im-module=fcitx

~/.gtkrc-2.0 の例

gtk-sound-theme-name="ocean"
gtk-theme-name="Breeze"
# ...
gtk-im-module="fcitx"

2. OS 再起動 (※)

設定ファイル含め削除が終わったら、OS を再起動した後、ターミナルで

echo $GTK_IM_MODULE
echo $QT_IM_MODULE

を実行し、両変数の中身が空になっていることを確認して下さい。
空になっていれば成功です。

(※) 再ログインだけでも良いような気もしますが、そのあたり検証したり調べたりするのが面倒だったので、雑に再起動してしまっています。

3. GUI 上での設定

GUI 上の設定に進みます。

:information_source: 個人的な習慣で UI の表示言語を英語に設定しているため、日本語環境の方は適宜読み替えて下さい。

3-1. キーボードレイアウトの設定

まず、KDE の設定画面から Keyboard > Keyboard と進みます。左上の検索ボックスから Keyboard と検索しても構いません。
Hardware タブが最初に開いているはずですので、Keyboard model が自分のキーボードにあっているか確認して下さい。多分現代の多くの Windows 向けキーボードは Generic 105-key PC になるのでしょうか…? (自信なし)

次に、そのまま Layouts タブを開きます。
Configure layouts のチェックが外れているか、またはその下のリストにあるキーボードレイアウトが jp / Japanese だけであることを確認して下さい。

私の環境では何か操作をして OS 再起動すると、一度 jp / Japanese に設定しても en / English に強制的に戻されてしまうことが何度かありました。そもそも OS インストール時に日本語キーボードレイアウトを選んでいるはずなので、何かしらの問題がありそうです。
Configure layouts のチェックを外すか、もしくは Add ボタンから下記のダイアログを開き、Japanese を選択することで正常化しました。
この手順を全て踏んでも正しく fcitx が正しく動作しなければ、この画面に戻って再度確認してみて下さい。

3-2. Fcitx 5 を IME として設定

次に、KDE の設定画面 > Keyboard > Virtual Keyboard を開き、Fcitx 5 を選択します。
私の環境は “Fcitx 5 Wayland Launcher …” というものも表示されていたのですが、こちらを選んでもうまく fcitx は動いてくれないようです。

3-3. Fcitx で Mozc を使うよう設定

画面右下のシステムトレイにキーボードのアイコンがあるので、クリックし、出てきたコンテキストメニューの中から Configure をクリックすると、fcitx の設定画面が出てきます。

尚、キーボードのアイコンは2種類あり、下記のケーブルが上に付いている方のキーボードアイコンの方をクリックして下さい。

下記の左上に緑の点が付いており、ケーブルが付いていない方のアイコンは別のアイコンですので、間違えないように注意して下さい。

さて、ここまで来ると、見慣れた画面だという方も多いのではないでしょうか。

画面左下の Select system keyboard layout ボタンを押すと下記のようなダイアログが表示されるため、Layout: Japanese、Variant: Default を選択し OK を押します。

左側の、Current Input Method (現在有効になっている IME の一覧) に Keyboard - Japanese がない場合、「キーボードに対応した IME (恐らく Mozc など) がないけど、インストールする?」と聞かれます。Yes を押すと Keyboard - Japanese が有効化されてしまいます。
今回は Mozc を使いたいので、No を押しましょう。

ウィンドウ右側の Available Input Method (利用可能な IME の一覧) から Mozc を探し、画面中央にある < ボタンを押すことで、左側の Current Input Method (現在有効になっている IME の一覧) に Mozc を入れることで、Mozc が使えるようになります。
Keyboard - Japanese はよくわからない日本語 IME なので Mozc があれば不要です。(もしかして中身は Anthy なのでしょうか…?) 画面中央の > ボタンを押して無効化しましょう。Keyboard - English (US) も、IME を無効化すれば英語モードになるので、こちらも無効化して構いません。

これでキーボードの「ひらがな」キーを押せば、fcitx 5 / mozc が有効化され、日本語が入力できるようになるはずです。

もしかすると OS アカウントへの再ログインまたは OS 再起動が必要な可能性もあるかもしれません。もし動かなければ再ログインや再起動を試してみて下さい。

3-4. Input Method Panel ウィジェットを追加

Input Method Panel というウィジェットがあるので、画面右下のシステムトレイの左側にでもおいておくと良いと思います。
※Input Method というウィジェットもすぐ左にありますが、こちらはキーボードのアイコンが表示されるだけで、クリックしても何が起こったのかよくわからないウィジェットでしたので、間違えないよう注意して下さい。

左クリックや右クリックをすることで、各種設定が開くようになります。
今のところペンギン (Tux 君) が3匹表示されてしまっており、バグっぽいのですが、追々確認してみようと思います。

以上です。

3 Likes

早速自分もやってみました!

参考になるかもしれないので、自分のパターンについてもここに書きたいと思います。

自分の環境は以下のとおりです。

  • Plasma 6 (クリーンインストールではなく Plasma 5 からのアップグレード)
  • ibus からの移行

自分が行ったこと

  • (このあたりは小川さんと同様です)

    • sudo apt install fcitx5-mozc kde-config-fcitx5
    • sudo apt remove --purge im-config
    • export XMODIFIERS=@im=fcitx.bashrc に記載
  • (自分は ibus を使っていたので)

    • ibus 本体と、 ibus 関連の設定を削除 (.bashrc.profile 内の設定)
  • (引っかかった部分)

    OS を再起動した後、ターミナルで

    echo $GTK_IM_MODULE
    echo $QT_IM_MODULE
    

    を実行し、両変数の中身が空になっていることを確認して下さい。
    空になっていれば成功です。

    .bashrc などの $GTK_IM_MODULE の設定を無効にしているため、変数が空のはずですが、なぜか ibus と出力されました。(再起動も何回か行ったのですが)
    .bashrcexport GTK_IM_MODULE= (本来は export GTK_IM_MODULE=ibus のようになる)という設定にしたら中身が空になりました。(ゴリ押し)

  • GUI 設定

    • Fcitx 5 を IME として設定
      自分は GUI の設定はこれだけで大丈夫でした。

まとめ

かなりゴリ押しですが、使えるようになったのでよいとしましょう。
気のせいかもしれませんが、 ibus のときよりも変換の精度が良くなった気がする…

自分も3連ペンギン (Tux 君) です。
Screenshot_20240422_223417

Opera では (追記: Opera だけじゃなく、 VSCode でも同様になるので、 Qt/GTK 以外で起こるバグでしょうか?) 変換して Enter を押すまで文字が表示されないという謎の入力バグ?があります…
誰か解決策を知っている人がいたらぜひ教えてください
Screenshot_20240422_222445

1 Like

@lemon73 ありがとうございます。

  • (引っかかった部分)

OS を再起動した後、ターミナルで

echo $GTK_IM_MODULE
echo $QT_IM_MODULE

を実行し、両変数の中身が空になっていることを確認して下さい。
空になっていれば成功です。

.bashrc などの $GTK_IM_MODULE の設定を無効にしているため、変数が空のはずですが、なぜか ibus と出力されました。(再起動も何回か行ったのですが)
.bashrcexport GTK_IM_MODULE= (本来は export GTK_IM_MODULE=ibus のようになる)という設定にしたら中身が空になりました。(ゴリ押し)

何かの拍子に /etc/X11/Xsession.d/70im-config_launch が復活してたりとかしないですかね? fcitx5 を普通にインストールするだけで、im-config がインストールされてこのファイルが生成されてしまうので、確認すると良いかもしれません。

あと、“_IM_MODULE” で grep -R か Dolphin での検索をかけて、どこかのスクリプトで *_IM_MODULE 変数を設定してないか調べてみるのも良いかもしれません。
/etc/ 以下で設定されている可能性が高い気がするので、まずは /etc/ ディレクトリー以下だけ検索すれば良いと思います。見つからなければ、ルートディレクトリーから全検索で。

Opera では (追記: Opera だけじゃなく、 VSCode でも同様になるので、 Qt/GTK 以外で起こるバグでしょうか?) 変換して Enter を押すまで文字が表示されないという謎の入力バグ?があります…
誰か解決策を知っている人がいたらぜひ教えてください
Screenshot_20240422_222445

これ、私の環境でも、アプリによっては発生することがありますね。クリーンインストール後は起きていないのですが、以前時々起こることがありました。

VSCode は Electron ベースなので Chromium というか、Blink レンダリングエンジンがベースのはずですし、Opera も最近は Chromium/Blink ベースらしいので、Chromium/Blink との相性問題でしょうか…?

解決策はわからずすみません :pray:

1 Like

返信と情報提供ありがとうございます!

“_IM_MODULE” で /etc/* を検索してみると、 @phanect さんがおっしゃっているように /etc/profile にて ibus の設定がされていました。
(この部分を削除したら、しっかり空になりました。)

私の環境で調査したところ、

  • Konsole, Dolphin, Discover, Kate など (KDE/Qt 系) → 正常
  • Firefox → 正常
  • Opera, VSCode, Steam など (ブラウザ/ Electron 系) → 先述のバグ
  • Blender → 別のバグ (Enter を押したあとも文字が残る)
  • VLC のファイル検索 (GTK ?) → 日本語入力できない
    という感じでした。

KDE のソフトウェアをメインで使っているので、あまり気にしていませんでしたが、 Qt 系 (+ GTK 系 ?) 以外では少し不安定なのかな?

これに関しては、引き続き情報を探していきたいと思います。

いえいえ、とても参考になりました。
ありがとうございます。

Wayland 上で Fcitx 5 を使う (英文) によると、

Run chromium/electron application with --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

つまり、 Chromium や Electron のアプリケーションを開くときは、コマンドで
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime を加えると正常に動くようです。

実際に VSCode は code --ozone-platform=wayland で動きました。

が、 Opera, Steam はこれでも正常に動作していないので、挙動が謎です。

私も VSCode は使っていますが、特に --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime をせずとも日本語入力が動作しているので、アップグレード環境であるが故に古い設定か何かが残ってしまっている可能性はありそうですね。

そういえば ryam さんの記事では

いくつかのアプリケーションでは、GTK_IM_MODULE もしくは QT_IM_MODULE を個別に設定しないと、正しく動作しないようです。

その場合は、アプリケーションランチャーのエントリを右クリック > アプリケーションを編集… からデスクトップエントリのプロパティを開き、環境変数 (Environment Variables) を以下の例のように設定してください。

とありましたね。

公式 Wiki を見ると、今は環境変数の代わりに ~/.config/gtk-3.0/settings.ini など設定ファイルに書き込めば、個別に環境変数で指定しなくても良いようです。

1 Like
  • ~/.config/gtk3.0/settings.ini
  • ~/.config/gtk4.0/settings.ini
  • ~/.gtkrc-2.0

gtk-im-module=fcitx を追加すると、 Opera でも以下のように正常に動作するようになりました。

情報提供ありがとうございます!!

Screenshot_20240427_110413

2 Likes

私の投稿を参考にしていただけたようで良かったです :slightly_smiling_face:

Input Method ウィジェットは仮想キーボードの状態を表示するためのウィジェットのはずです。紛らわしいですよね。

Keyboard - JapaneseはIMEではなく、入力メソッドがオフのときに使用されるキーボードレイアウトだと思います。参考までに、私はこのような設定にしています。

Tuxくんが3匹表示されているのは、Mozcのアイコン群(Mozc、辞書ツール、設定ツールのアイコン)が何故かTuxくんに置き換えられているためですね。ウィジェットの代わりに、システムトレイの「入力メソッド」エントリを使用すると1匹にすることができます。

2 Likes

Ubuntu 24.04 ベースの KDE neon がリリースされ、少し設定方法も変わっていたので書き直しました。
KDE Discuss はしばらくすると投稿内容の更新ができないようなので、Zenn に移しました。

1 Like