Fcitx
Fcitx (Flexible Input Method Framework) は Linux に環境非依存の言語サポートを提供するインプットメソッドフレームワークです。多くの言語をサポートし便利な non-CJK 機能が含まれています。
インストール
fcitx は公式リポジトリから Pacman でインストールできます。
インプットメソッドエンジン
入力したい言語にあわせて、インプットメソッドエンジンをインストールしてください:
日本語
- fcitx-anthy: 人気の日本語入力エンジン。開発は停止しています。
- fcitx-mozc: Google 日本語入力のオープンソース版である Mozc がベース。
- fcitx-kkc: libkkc がベースの新しい日本語仮名漢字入力エンジン。
- fcitx-skk: libskk がベースの日本語仮名漢字入力エンジン。
他の言語
- fcitx-sunpinyin: sunpinyin がベース。速度と正確性のバランスが良い。
- fcitx-libpinyin: libpinyin がベース。fcitx-sunpinyin よりも優れたアルゴリズムが使われています。
- fcitx-rime: Rime IME プロジェクトのスキーマがベース。
- fcitx-googlepinyin: libgooglepinyin がベース。Android 用の Google ピンイン IME。
- fcitx-sogoupinyinAUR: Linux 向けの捜狗インプットメソッド。同音異字、クラウド入力、英語入力、混合入力をサポート。
- fcitx-cloudpinyin: クラウドによる中国語入力をサポート。
- fcitx-chewing: libchewing がベースの繁体字の注音入力エンジン。
- fcitx-table-extra: 倉頡, 郑码, 嘸蝦米サポートを追加。
- fcitx-hangul: libhangul がベースの韓国語のハングル入力エンジン。
- fcitx-unikey: ベトナム文字入力エンジン。
- fcitx-sayura: シンハラ文字入力エンジン。
- fcitx-m17n: M17n によって提供されている他の言語の入力エンジン。
インプットメソッドモジュール
GTK+ や Qt プログラムでより良い動作を得るには、必要に応じて fcitx-gtk2, fcitx-gtk3, fcitx-qt4, fcitx-qt5 パッケージをインストールしてください。もしくは fcitx-im グループで全てのパッケージをインストールできます。モジュールをインストールしなくてもアプリケーション上でインプットメソッドは動作しますが、フリーズしたりプレビューウィンドウの位置がおかしくなったり、プレビューが表示されなくなったりします。
以下のアプリケーションは GTK+/Qt インプットモジュールを使用しません:
- Tk, motif, xlib などを使用するアプリケーション
- Emacs, Opera, OpenOffice, LibreOffice, Skype, Wine, Java, Xterm, urxvt, WPS
スキン
fcitx にはスキンで外観をカスタマイズする機能があります。標準では dark, classic, default の3つのスキンのみが提供されています。
しかしながら、いくつかの追加スキンが AUR からインストールできます。以下はその一部です:
- fcitx-skin-materialAUR: マテリアルデザイン風の fcitx スキン。
- fcitx-skinsAUR: 8個のスキンを含んだリッチなパッケージ。
その他
- fcitx-ui-light: fcitx の軽量 UI。
- fcitx-fbterm[リンク切れ: アーカイブ: aur-mirror]: Fbterm のサポート。
- fcitx-table-other: Latex, 絵文字など。
- fcitx-tabletAUR: 手書きのタブレットサポート。
- fcitx-tsundereAUR: 文字を入力した後に何某かを追加するモジュール。
- kcm-fcitx: fcitx の KDE 設定モジュール。
fcitx のコンポーネントをインストールした後は fcitx の再起動が必要です。
使用方法
デスクトップ環境
KDE, GNOME, Xfce, LXDE などの XDG 互換のデスクトップ環境を使っている場合は、再ログインで自動的に起動するようになるはずです。起動しないときは、ターミナルを開いて次のように入力してください:
$ fcitx-autostart
fcitx が正しく動作しているか確認するために、leafpad といったアプリケーションを開いて CTRL+Space (インプットメソッドの切り替えのデフォルトのショートカット) を押して FCITX を呼び出しなにか文字を入力してみて下さい。
Fcitx があなたの環境で自動で起動しない場合や fctix を起動するパラメータを変更したい場合は、デスクトップ環境によって提供されているツールを使って xdg の自動起動を設定するか ~/.config/autostart/
ディレクトリ内の fcitx-autostart.desktop
ファイルを編集してください (存在しないときは /etc/xdg/autostart/
からコピーしてください)。
デスクトップ環境が xdg 自動起動をサポートしていない場合は、(環境変数を正しく設定した後に) 次の行をスタートアップスクリプトに追加してください:
$ fcitx-autostart
xim サポートのある他のインプットメソッドが動作していると、Fcitx は xim エラーで起動できません。Fcitx を起動する前に他のインプットメソッドが動いていないことを確認してください。
非デスクトップ環境
以下の行をデスクトップのスタートアップスクリプトファイル (GDM, LightDM, SDDM を使っている場合は .xprofile
もしくは .profile
、startx や Slim を使っている場合は .xinitrc
、Wayland を使っている場合は /etc/environment
) に追加してください。この設定で、fcitx は gtk/qt のインプットメソッドモジュールを使うようになり xim プログラムをサポートします (必要なインプットメソッドモジュールがすでにインストールされているか確認してください):
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx
fcitx プロセスが自動的に起動しない場合は、~/.xinitrc
に fcitx &
を追加する必要があるかもしれません。
変更を適用するためにログインしなおしてください。
Xim
任意で、gtk や qt のプログラムで xim を使うように設定することも可能で、その場合上の行を以下のように変更してください:
export GTK_IM_MODULE=xim export QT_IM_MODULE=xim
変更を適用するためにログインしなおしてください。
設定
設定ツール
Fcitx は GUI の設定ツールを提供しています。kcm-fcitx (KDE) または fcitx-configtool (GTK+3 ベース) がインストールできます。fcitx-configtool をインストールしたら fcitx-config-gtk3 を起動してください。別の言語のインプットメソッドを使用したいときは Only Show Current Language の設定を解除してください。
設定を変更する前に fcitx は停止してください。停止しないと変更が反映されません。
スペルチェックを有効にするには、fcitx が fcitx-keyboard によるインプットメソッドを使っている時に ctrl + alt + h を押して下さい。長い単語を入力すれば、動いているかどうか確認できます。
デフォルト UI の変更
Fcitx は kimpanel プロトコルによるデスクトップの統合をサポートしています。
- Gnome-Shell: extensions.gnome.org や gnome-shell-extension-kimpanel-gitAUR パッケージから kimpanel をインストールでき、ibus-gjs と同じように使うことができます。
- KDE: kimtoy は Sogou や fcitx のスキンを使えます。
ピンイン辞書の拡張
ピンイン辞書は ~/.config/fcitx/pinyin
に存在します。pybase.mb
ファイルには単一文字が pyphrase.mb
ファイルにはピンインのフレーズが定義されています。拡張するには /usr/share/fcitx/pinyin
にファイルを保存して fcitx を再起動してください。
ヒントとテクニック
クリップボード
fcitx を使ってクリップボード (とクリップボード履歴) にある文章を入力することが可能です。デフォルトのトリガーキーは Control-; です。このトリガーキーはクリップボードのアドオンの設定ページにある他のオプションと同じように設定することが可能です。
トラブルシューティング
問題の診断
fcitx を使っていて問題が発生する場合、例えばどのアプリケーションでも Ctrl+Space が使えないときは、fcitx-diagnose
を使ってまず問題を診断してみてください。fcitx-diagnose
はよくある問題についての手がかりを提供してくれます。また、(IRC やフォーラムなどで) 他の人に相談するときはコマンドの出力を貼り付けると役に立つはずです。
Emacs
LC_CTYPE
が英語の場合、emacs のバグによって emacs でインプットメソッドが使えなくなることがあります。emacs を起動する前に ja_JP.UTF-8
など LC_CTYPE
を他の値に設定することで問題を回避できます。
使用するロケールは有効である必要があります。/etc/locale.gen
を編集して適当な行 (例: ja_JP.UTF-8
) をアンコメントし、locale-gen
を実行してください。
デフォルトのフォントセットはベースフォントとして -*-*-*-r-normal--14-*-*-*-*-*-*-*
を使います (src/xfns.c)。マッチするフォント (terminus や 75dpi など、xlsfonts
の出力を見て下さい) がない場合、XIM は有効になりません。
Emacs デーモン
emacs デーモン/クライアントモードを使う場合、デーモンの起動時に LC_CTYPE
を設定してください。例えば LC_CTYPE=ja_JP.UTF-8 emacs --daemon
というコマンドを使って emacs デーモンを起動します。
systemd から emacs デーモンを起動している場合、ユニットファイルで以下のように Environment を設定してください:
Environment="LC_CTYPE=ja_JP.UTF-8" "XMODIFIERS=@im=fcitx"
systemd は .xprofile
をロードしないため XMODIFIERS は明示的に設定する必要があります。emacs で initial-environment
変数をチェックして変数が両方とも正しく設定されていることを確認してください。
Ctrl+Space が GTK のプログラムで機能しない
ロケールを英語に設定しているとこの問題が発生することがあります。GTK_IM_MODULE が正しく設定されているか確認してください。
参照: FAQ
- _IM_MODULE 環境変数を設定していても fcitx が有効にできない場合は、適切なインプットメソッドモジュールをインストールしているか確認してください。
プログラムによっては xim しか使わないため、そうしたプログラムを使っているときは、XMODIFIERS が正しく設定されているか確認してください。プログラムの例: gtk や qt を使わないプログラム全て (例: tk や motif、もしくは xlib を直接使っているプログラム), emacs, opera, openoffice, libreoffice, skype。
gnome の gnome-terminal で fcitx が有効にできず、上の方法で効果がない場合は、以下のコマンドを試してみて下さい:
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"
内蔵の Chinese Pinyin がデフォルトで有効にならない
ロケールが en_US.UTF-8
である場合、fcitx は内蔵の Chinese Pinyin インプットメソッドをデフォルトで有効にしません。fcitx-keyboard-us
インプットメソッドだけが有効にされます。fcitx-diagnose
コマンドを実行すると以下のように表示されます:
## Input Methods: 1. Found 1 enabled input methods: fcitx-keyboard-us 2. Default input methods: **You only have one input method enabled, please add a keyboard input method as the first one and your main input method as the second one.**
GUI の設定ツールで Pinyin
や Shuangpin
インプットメソッドを追加してインプットメソッドが有効にしてください。
fcitx と KDE
何らかの理由で、KDE がキーボードレイアウトを適切に扱えないことがあります。例えば、US (English) から LT (Lithuanian) に切り替えた場合、キーボードの数字キーは全てリトアニア文字になるはずですが、数字が出力されてしまいます。以下の手順で修正することが可能です:
- 上のセクションで書かれているパッケージをインストールしてください。
- バックグラウンドで
fcitx
を動かしている場合は終了してください。 - KDE に関連することを無効にします:
- System settings --> Input devices --> Layouts (tab) から "Configure layouts" のチェックを外して下さい。
- System settings --> Input devices --> Advanced (tab) から "Configure keyboard options" のチェックを外して下さい。
- ターミナルを開いて
fcitx
と入力して fcitx を起動します。ターミナルは閉じてもかまいません。fcitx
はバックグラウンドで動作し続けます。 - 必要なレイアウトを設定してください (システムトレイアイコンを右クリックして "Configure" をクリック)。
- システムトレイアイコンを右クリックして、"Exit" をクリック。
これでレイアウトがちゃんと使えるようになるはずです。KDE のレイアウト切り替えrアイコンが表示され、マウススクロールしたりアイコンをクリックすることでレイアウトを切り替えられます。
勝手にインプットメソッドが英語に切り替わってしまう
XMind でエンターを押してノードを作成したときなど、インプットメソッドが勝手に英語に切り替わってしまって、元のインプットメソッドに手動で戻さなくてはならないことがあります。
この問題を修正するには、fcitx の GUI 設定ツール (fcitx-configtool に含まれています) を開いて、"Global Config" タブの "Share State Among Window" ドロップダウンメニューから、"PerProgram" または "All" を選択してください。
GNOME/Wayland 上での Fcitx の利用
Wayland は ~/.xprofile
に保管された環境変数を読み込むことができないため、Wayland 上で Fcitx を使うときは /etc/environment
で環境変数を設定してください。
xmodmap の設定が上書きされる
Fcitx はキーボードレイアウトを制御するため、xmodmap の設定は上書きされてしまいます。4.2.7 から、Fcitx は ~/.Xmodmap
のロードを行うようになります。
xmodmap の変更を保存する方法については FAQ を参照してください。