karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

デスクトップlinux用keybaseで日本語入力が出来無い

久し振りにまたnihonngo ga utenai案件に遭遇した
インプットメソッドモジュールとかいうのが必要になるという話だった

なにがあった

[Urgent] Keybase desktop clients prevent switching IME to Japanese language · Issue #9861 · keybase/client · GitHub
これに遭遇した
既に修正はマージされているという話なのでpacaur -S keybase-gitで最新を持ってくれば解決やん!
と思っていたけれど解決しない
いしゅーの通り、systemd経由でない起動方法
+ /opt/keybase/keybase &で起動
+ export KEYBASE_SYSTEMD=0してから起動
だと問題なく日本語が打てる

解決策

fcitx-diagnoseしてみると、

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:

    環境変数 GTK_IM_MODULE は "fcitx" に正しく設定されています。

2.  `gtk-query-immodules`:

    1.  gtk 2:

        gtk `2.24.31` 用の `gtk-query-immodules` を `/usr/bin/gtk-query-immodules-2.0` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.31

        **Failed to find fcitx in the output of `/usr/bin/gtk-query-immodules-2.0`**

        **gtk 2 用のFcitx im モジュールが見つかりません。**

    2.  gtk 3:

        gtk `3.22.26` 用の `gtk-query-immodules` を `/usr/bin/gtk-query-immodules-3.0` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.22.26

        gtk `3.22.26` 用のFcitx im モジュールを見つけました。

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

3.  Gtk IM モジュールキャッシュ:

    1.  gtk 2:

        gtk `2.24.31` の immodule cache を `/usr/lib/gtk-2.0/2.10.0/immodules.cache` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.31

        **Failed to find fcitx in immodule cache at `/usr/lib/gtk-2.0/2.10.0/immodules.cache`**

        **キャッシュに gtk 2 用の fcitx im モジュールが見つかりません。**

    2.  gtk 3:

gtk 2 用のFcitx im モジュールが見つかりません。
キャッシュに gtk 2 用の fcitx im モジュールが見つかりません。

keybaseはgtk2を使っているしこの辺が問題そう?
と思いpacaur -S fcitx-gtk2すると問題なくsystemd経由でも日本語入力が出来るようになった

おわりに

最強コマンドfcitx-diagnoseほんとえらい
今更使うと思っていなくてfcitx-gtk2を入れていなかったのもあったり、

Fcitx - ArchWiki

インプットメソッドモジュール

GTK+ や Qt プログラムでより良い動作を得るには、必要に応じて fcitx-gtk2, fcitx-gtk3, fcitx-qt4, fcitx-qt5 パッケージをインストールしてください。もしくは fcitx-im グループで全てのパッケージをインストールできます。モジュールをインストールしなくてもアプリケーション上でインプットメソッドは動作しますが、フリーズしたりプレビューウィンドウの位置がおかしくなったり、プレビューが表示されなくなったりします。 

とここを見る限りだとちょっと困るくらいの内容なのかな??と思って読んでいたので、インプットメソッドモジュールを甘くみていました…