「Fcitx」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎設定: cloud ピンインの設定を翻訳して追加)
(→‎トラブルシューティング: トリガー入力方法の追加キーを無効化または変更する [sic]を翻訳して追加)
282行目: 282行目:
 
[[Fcitx5#特殊文字を入力]] を参照してください。この内容は Fcitx にも適用されます。
 
[[Fcitx5#特殊文字を入力]] を参照してください。この内容は Fcitx にも適用されます。
   
==トラブルシューティング==
+
== トラブルシューティング ==
  +
  +
=== ''トリガー入力方法の追加キー'' を無効化または変更する [sic] ===
  +
  +
この設定は ''Global Config'' タブにあり、デフォルトは ''SHIFT 左右'' です。つまり、どちらかのシフトキーを押せばすぐに入力方法が変わるということです。本来はシフトキーを個別に押した場合にのみ適用されるはずですが、標準的なキーボード入力を使用しているときに大文字の入力やキーボードによるテキスト選択などがランダムに中断される傾向があります。
  +
  +
また、この設定は、いつでも警告なしにデフォルトに戻る可能性があります。fcitx の設定を変更できないようにするためには、fcitx の設定ファイルを ”不変" にする必要があります。{{ic|chattr +i ~/.config/fcitx/config}} (rootユーザで)
  +
 
=== 問題の診断 ===
 
=== 問題の診断 ===
 
fcitx を使っていて問題が発生する場合、例えばどのアプリケーションでも Ctrl+Space が使えないときは、{{ic|fcitx-diagnose}} を使ってまず問題を診断してみてください。{{ic|fcitx-diagnose}} はよくある問題についての手がかりを提供してくれます。また、(IRC やフォーラムなどで) 他の人に相談するときはコマンドの出力を貼り付けると役に立つはずです。
 
fcitx を使っていて問題が発生する場合、例えばどのアプリケーションでも Ctrl+Space が使えないときは、{{ic|fcitx-diagnose}} を使ってまず問題を診断してみてください。{{ic|fcitx-diagnose}} はよくある問題についての手がかりを提供してくれます。また、(IRC やフォーラムなどで) 他の人に相談するときはコマンドの出力を貼り付けると役に立つはずです。
   
===Emacs===
+
=== Emacs ===
 
{{ic|LC_CTYPE}} が英語の場合、emacs のバグによって emacs でインプットメソッドが使えなくなることがあります。emacs を起動する前に {{ic|ja_JP.UTF-8}} など {{ic|LC_CTYPE}} を他の値に設定することで問題を回避できます。
 
{{ic|LC_CTYPE}} が英語の場合、emacs のバグによって emacs でインプットメソッドが使えなくなることがあります。emacs を起動する前に {{ic|ja_JP.UTF-8}} など {{ic|LC_CTYPE}} を他の値に設定することで問題を回避できます。
   

2022年2月17日 (木) 22:08時点における版

関連記事

Fcitx (Flexible Input Method Framework) は Linux に環境非依存の言語サポートを提供する軽量の インプットメソッドフレームワーク です。多くの言語をサポートし便利な non-CJK 機能が含まれています。

警告: Fcitx は現在メンテナンスモードになっています、代わりに Fcitx5 を使用することをお勧めします。

インストール

fcitx公式リポジトリから Pacman でインストールできます。

インプットメソッドエンジン

入力したい言語にあわせて、インプットメソッドエンジンをインストールしてください:

中国語

日本語

  • fcitx-anthy: 人気の日本語入力エンジン。開発は停止しています。
  • fcitx-mozc: Google 日本語入力のオープンソース版である Mozc がベース。
  • fcitx-kkc: libkkc がベースの新しい日本語仮名漢字入力エンジン。
  • fcitx-skk: libskk がベースの日本語仮名漢字入力エンジン。

他の言語

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

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

以下のアプリケーションは GTK+/Qt インプットモジュールを使用しません:

その他

fcitx のコンポーネントをインストールした後は fcitx の再起動が必要です。

使用方法

ノート: 対応する文字を入力できるように、中国語、日本語、ハングル、ベトナム語 フォント がインストールされている必要があります。

デスクトップ環境での自動起動

KDE, GNOME (X 上で動作している場合), Xfce, LXDE などの XDG 互換のデスクトップ環境を使っている場合は、再ログインで自動的に起動するようになるはずです。起動しないときは、ターミナルを開いて次のように入力してください:

$ fcitx-autostart

fcitx が正しく動作しているか確認するために、leafpad といったアプリケーションを開いて Ctrl+Space (インプットメソッドの切り替えのデフォルトのショートカット) を押して FCITX を呼び出しなにか文字を入力してみて下さい。

Fcitx があなたの環境で自動で起動しない場合や fcitx を起動するパラメータを変更したい場合は、デスクトップ環境によって提供されているツールを使って xdg の自動起動を設定するか ~/.config/autostart/ ディレクトリ内の fcitx-autostart.desktop ファイルを編集してください (存在しないときは /etc/xdg/autostart/ からコピーしてください)。

デスクトップ環境が xdg 自動起動をサポートしていない場合は、(環境変数を正しく設定した後に) 次の行をスタートアップスクリプトに追加してください:

$ fcitx-autostart

xim サポートのある他のインプットメソッドが動作していると、Fcitx は xim エラーで起動できません。Fcitx を起動する前に他のインプットメソッドが動いていないことを確認してください。

インプットメソッドモジュールの環境変数の設定

インプットメソッドモジュールを登録するための環境変数を定義します。これらの変数がないと、アプリケーションはXIMプロトコルにフォールバックする可能性があります。ただし、XIMサポートがなく、インプットメソッドモジュールを配置する必要があるqt5アプリケーションは例外です。

一般的な推奨事項として、~/.pam_environment に以下の環境変数を定義してください。これは、X11セッションとWaylandセッションの両方を含むすべてのログインについて、pam_env モジュールによって読み取られます。構文と使用法の詳細については、man 8 pam_env を参照してください。

~/.pam_environment
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=@im=fcitx

~/.pam_environment ですべてのログインセッションで上記の変数を定義したくない場合は、X11セッションの開始ファイルの1つにそれらを追加することを検討してください。GDMSDDM などのほとんどの ディスプレイマネージャ は、X11セッション用のファイルをソースします(ただし、Waylandセッション用ではありません)。 ~/.xprofile ファイルの構文は、特定の ディスプレイマネージャ とログインシェルによって異なる場合があります。次の例を検討し、シェルの構文に合わせて変更してください。

~/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

SLiMstartx のユーザーは、~/.xprofile ではなく、~/.xinitrc でX11セッションを開始します。~/.xinitrcexec YOUR_WM 行の前に以下の行を追加します。

~/.xinitrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
...
exec YOUR_WM

これらの環境変数を有効にするには、再ログインまたは再起動してください。

もし、fcitx プロセスが自動的に起動しない場合は、~/.xinitrcfcitx & を追加する必要があります。fcitx & でも起動しない場合、fcitx-autostart & に変更するか、fcitx & の前に sleep 2 を追加してください。

警告: 上記の設定を .bashrc でしないでください。.bashrc はインタラクティブな bash セッションを初期化するときに使われます。インタラクティブでないセッションや X セッションの初期化では用いられません。さらに、.bashrc で環境変数を設定すると、コマンドラインから実行した診断ツールに誤解を与えて、X セッションでは環境変数が使われていないのに正しく設定されているかのように表示されることがあります。
ノート:
  • 上の設定で動かないときは export DefaultIMModule=fcitx を追加してみて下さい。
  • Fcitx で全ての Qt アプリに問題が発生する場合、qtconfig (qtconfig-qt4) を起動して、3番目のタブを開いて、"Default Input Method" コンボボックスに fcitx があることを確認してください。
  • 現在、Qt5 アプリケーション + fcitx を使用する場合、上記の環境変数を .bashrc ファイルにも追加しないと動作しないという報告があります (Plasma 5 を startx した場合や、gnome-shell で qt5 アプリケーションを起動した場合)。

Xim

任意で、上記のモジュールをインストールせずに、GTK や Qt のプログラム、あるいはその両方で X Input Method (XIM) を使用するように設定することも可能です。この場合、上記の対応する行を以下のように変更してください:

GTK_IM_MODULE DEFAULT = xim
QT_IM_MODULE DEFAULT = xim

~/.xprofile または ~/.xinitrc を変更する場合は、export を追加します。

警告: xim を使用するとインプットメソッドによって、入力ができなくなったりインプットメソッドを再起動するとアプリケーションがフリーズするなどの問題がおこることがあります。xim 関連の問題に対しては Fcitx は修正やサポートを提供できません。これは他のインプットメソッドフレームワークでも同じで、可能な限り xim ではなく ツールキット (gtk/qt) のインプットメソッドモジュールを使って下さい。
ノート: Gtk2 は 2.24.20 から immodule のキャッシュファイルとして /usr/lib/gtk-2.0/2.10.0/immodules.cache を使っています。GTM_IM_MODULE_FILE 環境変数を設定していたり公式パッケージの install スクリプトを使ってキャッシュを更新していない場合、環境変数を変更・削除して /usr/bin/gtk-query-immodules-2.0 --update-cache を使って immodule キャッシュを更新してください。

変更を適用するためにログインしなおしてください。

設定

設定ツール

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 を押して下さい。長い単語を入力すれば、動いているかどうか確認できます。

入力メソッドの設定

GUI ツールで入力メソッドの追加/削除が可能です。大文字と小文字を区別して検索することに注意してください。

最初に設定された入力メソッドは非アクティブ状態、それ以外はすべてアクティブ状態になります。一般に、非アクティブ状態は キーボード オプションの1つです(例:"キーボード - 英語(US)") これらのオプションは、名前にあるキーボードレイアウトに基づいて入力するだけです。

グローバル設定では、トリガー入力メソッドのショートカットは非アクティブ状態と最後に使用したアクティブ状態の間でしか切り替わりません。Scroll between Input Methods はデフォルトでは異なるアクティブ状態間のスクロールのみですが、詳細設定で非アクティブ状態を含むように設定することもできます。さらに、Scroll between Input Methods のショートカットは順番に押さなければなりません。例えば ALT_SHIFTaltshift より前に押されたときのみ有効になります。

IME の設定は、キーボードを任意の IME に設定し、トレイアイコンを右クリックすることで確認できます。

デフォルト 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 を再起動してください。

スキン

スキンをダウンロードし、以下のディレクトリのいずれかに解凍します。ディレクトリが存在しない場合は、作成することができます。

/usr/share/fcitx/skin   #Global settings
~/.config/fcitx/skin    #User settings

cloud ピンインの設定

fcitx-cloudpinyin 入力メソッドをインストールした後、fcitx を再起動してください。コンフィギュレーション GUI で見つからない場合は、advanced settingsを有効にしてください。クラウドクエリの結果は自動的に現在の入力メソッドの辞書に追加されます。

Google にアクセスできない場合は、cloud ピンインのソースを Baidu に変更します。

cloud のクエリ結果は、デフォルトでは二次候補としてリストアップされますが、設定可能です。既に結果が存在する場合は、1件のみ表示されます。

ノート: クエリが空の結果を返すと辞書の順序が変わるので、クエリ結果を第一候補に設定することはお勧めしません。

ヒントとテクニック

ショートカットキー

よく使われるデフォルトのショートカットキーをいくつか紹介します。

  • Ctrl+Space - 入力メソッドをアクティブにします。
  • Left Shift - 一時的に英語に切り替わります。
  • Ctrl+Shift - 入力方式を切り替えます。
  • -/= - ページ送り/戻し
  • Shift+Space - 全角・半角切り替え
ノート: これらのショートカットキーは、設定インタフェースのグローバルコンフィギュレーションで変更することができます。

Vim

Vim で Fcitx をよく使う場合、vim-fcitxAUR プラグインをインストールするか、以下のコードを ~/.vimrc に追加してください。挿入モードを終了するときは Fcitx は自動的に閉じられ、そうでないときはその逆です。

"##### auto fcitx  ###########
let g:input_toggle = 1
function! Fcitx2en()
   let s:input_status = system("fcitx-remote")
   if s:input_status == 2
      let g:input_toggle = 1
      let l:a = system("fcitx-remote -c")
   endif
endfunction

function! Fcitx2zh()
   let s:input_status = system("fcitx-remote")
   if s:input_status != 2 && g:input_toggle == 1
      let l:a = system("fcitx-remote -o")
      let g:input_toggle = 0
   endif
endfunction

set ttimeoutlen=150
"Exit insert mode
autocmd InsertLeave * call Fcitx2en()
"Enter insert mode
autocmd InsertEnter * call Fcitx2zh()
"##### auto fcitx end ######
ノート: 外部プログラムを呼び出すため、挿入モードの入出力を繰り返すマッピングの速度が著しく低下します。該当するマッピングを書き換え、fcitx.vim と併用して Python をサポートした Vim を使用することで効率を上げることが出来ます。

クリップボード

Fcitx にはクリップボードが付属しています、ショートカットキーは Ctrl+; です。

特殊記号

~/.config/fcitx/data/pySym.mb を作成し、ファイルの内容は以下の通りです。

 #The first line with "#" is a comment
 #Format: coding symbol
 #Code can only be lowercase letters, after pinyin analysis, the longest is 10 (such as py is 2, pinyin is also 2)
 #Mathematics symbols
 sxfh +
 sxfh -
 sxfh <
 sxfh =
 sxfh >
 sxfh ±
 sxfh ×
 sxfh ÷
 sxfh ∈
 sxfh ∏
 sxfh ∑
 sxfh ∕
 sxfh √
 sxfh ∝

対応する特殊記号と一致するコードを直接入力してください。

ノート: エンコーディングは小文字の26文字で表現され、v で始まる文字は無効です。

クリップボードアクセス

fcitx を使ってクリップボード (とクリップボード履歴) にある文章を入力することが可能です。デフォルトのトリガーキーは Control-; です。このトリガーキーはクリップボードのアドオンの設定ページにある他のオプションと同じように設定することが可能です。

ノート: クリップボードマネージャではないため、クリップボードマネージャにあるような中身の選択や変更はできません。クリップボードからの入力にだけ使えます。
警告: クライアントによっては複数行の入力をサポートしていないため fcitx-clipboard を使ってクリップボードの中身をペーストすると一行しか出ないことがあります。これはバグかプログラムの方の入力の問題なので fcitx は何もできません。

fcitx-remote(リモート)

fcitx-remote は fcitx の状態を制御するために使用することができるコマンドラインツールです。fcitx パッケージと一緒にインストールされます。

ここで詳しく説明する価値のあるオプションは fcitx-remote -s imname で、これは imname で特定される入力メソッドに切り替わります。使用中の入力メソッドに対する正しい imname は、 fcitx-diagnose を実行し、 "## インプットメソッド:" セクションで確認することができます。

特殊文字入力

Fcitx5#特殊文字を入力 を参照してください。この内容は Fcitx にも適用されます。

トラブルシューティング

トリガー入力方法の追加キー を無効化または変更する [sic]

この設定は Global Config タブにあり、デフォルトは SHIFT 左右 です。つまり、どちらかのシフトキーを押せばすぐに入力方法が変わるということです。本来はシフトキーを個別に押した場合にのみ適用されるはずですが、標準的なキーボード入力を使用しているときに大文字の入力やキーボードによるテキスト選択などがランダムに中断される傾向があります。

また、この設定は、いつでも警告なしにデフォルトに戻る可能性があります。fcitx の設定を変更できないようにするためには、fcitx の設定ファイルを ”不変" にする必要があります。chattr +i ~/.config/fcitx/config (rootユーザで)

問題の診断

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 の設定ツールで PinyinShuangpin インプットメソッドを追加してインプットメソッドが有効にしてください。

fcitx と KDE

何らかの理由で、KDE がキーボードレイアウトを適切に扱えないことがあります。例えば、US (English) から LT (Lithuanian) に切り替えた場合、キーボードの数字キーは全てリトアニア文字になるはずですが、数字が出力されてしまいます。以下の手順で修正することが可能です:

  1. 上のセクションで書かれているパッケージをインストールしてください。
  2. バックグラウンドで fcitx を動かしている場合は終了してください。
  3. KDE に関連することを無効にします:
    1. System settings --> Input devices --> Layouts (tab) から "Configure layouts" のチェックを外して下さい。
    2. System settings --> Input devices --> Advanced (tab) から "Configure keyboard options" のチェックを外して下さい。
  4. ターミナルを開いて fcitx と入力して fcitx を起動します。ターミナルは閉じてもかまいません。fcitx はバックグラウンドで動作し続けます。
  5. 必要なレイアウトを設定してください (システムトレイアイコンを右クリックして "Configure" をクリック)。
  6. システムトレイアイコンを右クリックして、"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 を参照してください。

HiDPI 環境では Fcitx の preedit box が小さすぎる

こちらを参照 HiDPI#Fcitx

参照