IBus

提供: ArchWiki
2023年11月28日 (火) 04:06時点におけるKgx (トーク | 投稿記録)による版 (→‎トラブルシューティング: キーを押し続けると "固着" するを翻訳して追加)
ナビゲーションに移動 検索に移動

関連記事

IBus ("Intelligent Input Bus") は様々な言語の文字を入力するためのシステムである、インプットメソッドフレームワークのひとつです。IBus は Fcitx, SCIM, UIM と同等の機能を持っています。

インストール

ibus パッケージをインストールしてください。

さらに、Qt アプリケーションで IBus を有効にするために、ibus-qtAUR ライブラリをインストールしましょう。

統合

少なくとも以下の 環境変数 を設定してください。

/etc/environment
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus
ノート: GNOME はバージョン 3.6 から IBus を 統合 しており、デフォルトで利用しているので、デスクトップ環境 として利用している場合は次の部分を読み飛ばしても構いません。

ユーザーログイン時に IBus を起動するには、以下のコマンドで 自動起動 エントリを作成します。

ibus-daemon -drxR

次のログイン時に、IBus はユーザーセッションと一緒に起動します。

ヒント:
  • ibus-autostartAUR パッケージはこれを 自動起動 するエントリを提供します。
  • ibus-daemonAUR パッケージは ibus@$DISPLAY.service を提供し、これを 有効化 することで実現できます。
  • KDE には Input Method Panel という plasmoid があり、IBus のフロントエンドとして動作し、より良い統合体験を提供できる可能性があります。
    • Input Method Panel で IBus を起動するには、上記の ibus-daemon コマンドで --panel=/usr/lib/kimpanel-ibus-panel オプションを使用します。入力メソッドパネル ウィジェットを設定するには、KDE UserBase WikiKDE#ウィジェット を参照してください。
    • ibus-autostart-kimpanelAUR パッケージは、自動起動 するエントリを提供します。
  • KDE での追加機能は kimtoy で提供されるかもしれません。しかし、このプロジェクトは アーカイブ されており、期待通りに動作しないかもしれません。

設定方法

システムに非ラテン語の言語をサポートするためのヘルプは ロケール を参照してください。

利用可能な非ラテン語フォントの非網羅的なリストについては フォント#ラテン文字 を参照してください。

GNOME

GNOME はデフォルトで IBus を使用しているので、設定 > キーボード > 入力ソース で好きな言語のキーボードレイアウトを追加することができます。

その他のデスクトップ環境

IBus の環境設定ウィンドウを起動するには、以下の方法があります。

  • IBus のトレイアイコンを右クリックし、Preferencesを選択します。
  • GUI アプリケーションの IBus Preferences を見つけて起動するか、または
  • ターミナルでコマンド ibus-setup を実行する。

ここで注目すべき点は、次のインプットメソッド (デスクトップ環境が提供するデフォルトのショートカットの代わりに使用したいもの) のキーボードショートカットと、異なるキーボードレイアウトを追加または削除できる インプットメソッド タブ (デスクトップ環境のデフォルトレイアウトマネージャの代わりに実行したいもの) です。

ヒントとテクニック

絵文字入力

IBus は絵文字アイコンの入力をサポートしています。Ctrl+. または Ctrl+; と入力すると、入力プロンプトが下線付きの e 文字に変わります。次に、必要な絵文字の記号または名前 (例 :) または face) を入力し、Space を押してレンダリングします。結果に満足したら、Enter を押して送信し、絵文字入力モードを終了するか、もう一度 Space を押してダイアログを開き、目的の絵文字をさらにカスタマイズできます。

詳細については、ibus-emoji(7) を参照してください。

Unicode 入力

IBus は複雑な Unicode 文字の入力をサポートしています。 Ctrl+Shift+u と入力すると、入力プロンプトが下線付きの u 文字に変わります。次に、必要な Unicode 文字のコードを入力し、Space または Enter を押して、レンダリングして送信します。

トレイアイコンの色

デフォルトでは、IBus は濃い青色を使用して、現在アクティブなレイアウトの言語記号を表示します(例:EN)色の値は gsettings schema に保存されているため、変更する場合は次のコマンドを実行できます。

$ gsettings set org.freedesktop.ibus.panel xkb-icon-rgba 'COLOR'

文字列 COLOR は​​、次のガイドラインに準拠している必要があります。

The RGBA value can be 1. a color name from X11, 2. a hex value in form '#rrggbb' where 'r', 'g' and 'b' are hex digits of the red, green, and blue, 3. a RGB color in form 'rgb(r,g,b)' or 4. a RGBA color in form 'rgba(r,g,b,a)' where 'r', 'g', and 'b' are either integers in the range 0 to 255 or percentage values in the range 0% to 100%, and 'a' is a floating point value in the range 0 to 1 of the alpha.
ヒント: dconf-editor を使用して、よりユーザーフレンドリーな方法で gsettings テーマを編集することもできます。
ノート: これは、GNOMEKDE のどちらにも KDE 入力方式パネルでは適用されません。どちらも IBus に独自のアイコンを提供するためです。

レイアウトスイッチャーの表示遅延

次の入力方法 ホットキーを押すと、IBus はレイアウトスイッチを示す小さなダイアログを表示します。デフォルトでは、このダイアログはキーを押してから400ミリ秒後に表示されますが、この値はユーザーが変更できます。興味深い選択肢として、ダイアログをすぐに表示するための 0 または負の値(-1 など)があります。ウィンドウをまったく表示せずにレイアウトを切り替える (2つのレイアウトのみを使用し、一方から他方に切り替える場合に便利な場合があります。)

値は gsettings schema に保存されるため、変更する場合は次のコマンドを実行できます。

$ gsettings set org.freedesktop.ibus.general switcher-delay-time 'VALUE'

現在保存されている値を表示するには、次のコマンドを実行します。

$ gsettings get org.freedesktop.ibus.general switcher-delay-time

文字列 'VALUE' は、次のガイドラインに準拠している必要があります。

Set popup delay milliseconds to show IME switcher window. The default is 400. 0 = Show the window immediately. 0 < Delay milliseconds. 0 > Do not show the window and switch prev/next engines.
ヒント: dconf-editor を使用して、よりユーザーフレンドリーな方法で gsettings テーマを編集することもできます。

修飾キーの組み合わせを使用してレイアウトを切り替える

何らかの理由で、IBus 設定 GUI では、修飾キーの組み合わせのサブセット(Alt+Shift_R など)をレイアウト切り替えホットキーとして使用できません。ただし、IBus はホットキーを文字列として gsettings schema に保存するため、その文字列を直接編集することで、このような組み合わせを引き続き使用できます。

$ gsettings set org.freedesktop.ibus.general.hotkey triggers "['VALUE']"

文字列 'VALUE' は、IBus が認識できる形式で記述された有効な修飾キーの組み合わせである必要があります。AltShift_R

ヒント: dconf-editor を使用して、よりユーザーフレンドリーな方法で gsettings テーマを編集することもできます。

rxvt-unicode

rxvt-unicode が IBus で正しく機能するためには、次の行を ~/.Xresources に追加する必要がある場合があります。

URxvt.inputMethod: ibus
URxvt.preeditType: OverTheSpot

トラブルシューティング

pyenvが原因でパッケージが欠落している

python のバージョンと設定を管理するために pyenv を使用している場合、 ibus の依存関係が設定されたグローバルな python バージョンにインストールされないことがあります。これは、グローバルバージョンがシステムで管理されているもの (ibusが依存する依存関係、例えば gi がインストールされるもの) ではない場合に起こり得ます。その結果、ibus のセットアップが起動しているが機能しない (システムトレイに ibus があるが、環境設定が開けない、など) ことがあります。この問題を確認する一つの方法は、ibus-setupを実行してみて、依存関係の欠如のエラーが発生するかどうかを確認することです。

この問題を修正するには、pyenv グローバルバージョンをシステムバージョンに変更します。:

pyenv global system

再起動後に設定が削除される

再起動後に設定が一貫して削除されている (入力メソッドが元に戻されている) 場合は、プリロードされるように設定されているエンジンと、それらがロードされる順序を確認します:

$ gsettings get org.freedesktop.ibus.general preload-engines
['xkb:us::eng']
$ gsettings get org.freedesktop.ibus.general engines-order
['xkb:us::eng', 'anthy']

この場合に anthy が確実に読み込まれるようにするには、org.freedesktop.ibus.preload-engines リストに追加します。

$ gsettings set org.freedesktop.ibus.general preload-engines "['xkb:us::eng', 'anthy']"

変更はすぐに反映され、再起動後も保持されます。

Ibus IME のパッケージはキーボードのネイティブ文字セットのみを入力します

考えられる修正は、GTK_IM_MODULE 環境変数 を ibus ではなく xim に設定することです。

/etc/environment
GTK_IM_MODULE=xim
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

キーを押し続けると "固着" する

特定のゲーム、特に Proton 経由で実行されるゲームでは、キーを数秒間押し続けると、そのキーが再度押されて離されるまで "固着" (押されたものとして押され続ける) することがあります。限られたテスト [1] では、IBus デーモンを kill するだけでこの問題が解決することがわかりました。

参照