テクニカルプア

備忘録と若干の補足

Qtでの動作を念頭に置いて設定等をしたFcitxがGTK+なアプリ上で動かなくて困った時に確認すると嬉しいかもしれない事項一覧

 いろいろあってTox*1シンパになった。
 しかし困ったことに、慣れ親しんだuimはToxのQtフロントエンドであるqTox*2で必要となるQt5に公式には対応しておらず、結果日本語が使用できない。
 githubにあるuimのレポジトリなどから入手できる最新の不安定版では一応Qt5に対応しているようだが*3、それを使うとqToxがSegmentation Faultという断末魔を上げて死んでしまう*4。日本語話者なのでToxでも日本語を使いたくて困っていたけれど、これまたいろいろあってuimをやめてQt5に対応済みのFcitxに移行すれば良いのだと気がついた。
 ここでタイトルの登場となる。つまりはそうなったのだ。

前提

Qtでの動作を念頭に置いて

というのはつまりFcitxを導入するときに以下のようにインストールした場合という意味:

$ sudo pacman -S fcitx-im fcitx-im-qt5 kcm-fcitx kdeplasma-addons-applets-kimpanel

その他Fcitxのインストールや設定に関する情報は全てFcitx (日本語) - ArchWikiを参照した。

確認事項

プロファイル系の設定ファイル

 .xprofileとか.xinitrcとかを意味する。ここに追記するFcitxに関しての内容が

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"

となっているかをみる。以上の内容で駄目な場合は一行加わって

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"
export DefaultIMModule="fcitx"

となることもある。

ロケール

 LC_CTYPEが"ja_JP.UTF-8"ではない場合、GTK+なアプリでIMEが有効にならない場合がある。
 ArchWikiによれば(GTK+アプリではないものの)これはEmacsのバグでEmacs上で生じるみたいなことが書いてあった。だがGTK+を使用しているはずのChromiumやmikutter上でもIMEが有効にならないことがあった。
 これについては/etc/locale.confや${HOME}/.xinitrcなどの適当な設定ファイルへ

export LC_CTYPE="ja_JP.UTF-8"

と書けばよい。

GTK IM Module

 GTK+のIM関連の設定を更新するといい感じになることがある。これは以下のようにする。

# gtk-query-immodules-{x}.0 --update-cache

{x}は2か3で置き換えるGTK+ 2系を対象にする場合は"2"で、GTK+ 3系を対象にする場合は"3"でそれぞれ置き換えて実行する。
 詳細はFcitx (日本語) - ArchWikiを参照。

GTK+の外観設定ファイル

 .gtkrc-2.0や.gtkrc-2.0-kde4のようなファイルがホームディレクトリ直下に存在する場合、これをリネームするか削除するかすると良い感じになる事がある。GTK+ - ArchWikiによれば、これらのファイルはGTK+アプリで外観周りの設定を記述するための設定ファイルであるようだ。

*1:https://tox.im/

*2:https://wiki.tox.im/QTox

*3:こういうのがAURにもある:AUR (en) - uim-qt5

*4:qToxの問題かと思ったけれど、fcitxでもvi-cooperative modeもどき | とさいぬの隠し部屋によればQt5のアプリであればqToxに関わらず全部死ぬようだ