MATE の Debian Bulleye で IBus にラテンアメリカスペイン語キーボードレイアウトを追加しようとしましたが、スペイン語しか表示されません

MATE の Debian Bulleye で IBus にラテンアメリカスペイン語キーボードレイアウトを追加しようとしましたが、スペイン語しか表示されません

私は、最近 Buster からアップグレードし、デスクトップ環境として IBus と MATE を使用し、HP Pavillion Touch 14-N009LA ラップトップで AMD64 用の Debian 11 Bullseye を実行しています。ポイント リリースをアップグレードする前は、IBus でラテン アメリカ キーボード レイアウトを使用できましたが、その後は使用できなくなりました。

MATE コントロール センターのキーボード設定アプリにはラテン アメリカ スペイン語のレイアウトが表示され、ターミナルで手動で設定できますsetxkbmap latam(IBus が起動して置き換える前)。ただし、IBus では、句読点キーが異なるスペイン スペイン語キーボードに対応する「スペイン語」キーボードのみが表示されます。「ラテン アメリカ」などのオプションはありません。

実行するibus list-engineと次の出力が表示されますが、ラテンアメリカスペイン語のレイアウトは表示されず、一致するlatamものや類似するものも表示されません。

<irrelevant languages omitted>
language: Spanish
  xkb:es:nodeadkeys:spa - Spanish (no dead keys)
  xkb:es:sundeadkeys:spa - Spanish (Sun dead keys)
  xkb:es:winkeys:spa - Spanish (Windows)
  xkb:es:dvorak:spa - Spanish (Dvorak)
  xkb:es:deadtilde:spa - Spanish (dead tilde)
  xkb:es:mac:spa - Spanish (Macintosh)
  xkb:es::spa - Spanish
<irrelevant languages omitted>

今のところ私が見つけたのはUbuntuにのみ適用されると思われるガイド、 そしてIBus の Arch Linux ガイド

以前のガイドでは、システム用にスペイン語ロケールを生成する必要があるかもしれないと示唆されていました。私は、 のes-MXロケールのコメントを外して を実行し/etc/locale.gen、それを実行しましたlocale-gen。その後、システムを再起動しました。うまくいきませんでした。

Debian Bullseye の IBus でラテンアメリカスペイン語レイアウトを使用する方法について、他に何かアイデアはありますか?

答え1

アップデート。私はそれを見つけましたIBusソースの最新コミットブラックリストはすでに導入されており、すべてのラテンアメリカのレイアウトはデフォルトでブラックリストに登録されています

これは、ビルド時にPythonスクリプトで実行される生成プロセスに影響し、利用可能なXレイアウトを以下から取得します/usr/share/X11/xkb/rules/evdev.xmlこのコメントに明確に述べられているように

この制限が実装された正確なコミットここにあるなぜこのようなことが行われたのかは正直私にはわかりませんが、この状況が適切に解決されるまで、私が以下に提案する修正を適用する必要があります。IBusが更新されるたびに(述べたようにこの前の回答で)。


私は Xubuntu 22.04 でも同じ問題に直面し、最近ホワイトリストを編集する回避策を使用しました。

たとえそう示唆されていたとしてもIBus 1.5.23には、現在使用されているホワイトリストの代わりにブラックリストが含まれます。追加されたエンジンが自動的に選択可能なレイアウトとして表示されるようにする機能はまだ実装されていないようです (現在バージョン 1.5.26 を使用しています)。

これを機能させるために私が行ったことは次のとおりです。

  1. と任意のエディタ/usr/share/ibus/component/simple.xmlを使用してファイルを開きます。sudo

  2. エンジンの位置を確認しますxkb:es::spa。私のマシンでは次のようになります。

<engine>
    <name>xkb:es::spa</name>
    <language>es</language>
    <license>GPL</license>
    <author>Peng Huang &lt;[email protected]&gt;</author>
    <layout>es</layout>
    <longname>Spanish</longname>
    <description>Spanish</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
  1. 見つかったら、<engine>タグをコピーしてその隣に(兄弟として、同じレベルで)貼り付け、次のタグ値を変更します。

    • name、 からxkb:es::spaxkb:latam::spa
    • layout、 からeslatam
    • longname、任意のテキストに追加して、他のレイアウトと区別できるようにします。

次のように表示されるはずです:

<!-- I added this one. vvv -->
<engine>
    <name>xkb:latam::spa</name>
    <language>es</language>
    <license>GPL</license>
    <author>logo_writer</author>
    <layout>latam</layout>
    <longname>Spanish Latam</longname>
    <description>Spanish Latam</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
<!-- I added this one. ^^^ -->

<engine>
    <name>xkb:es::spa</name>
    <language>es</language>
    <license>GPL</license>
    <author>Peng Huang &lt;[email protected]&gt;</author>
    <layout>es</layout>
    <longname>Spanish</longname>
    <description>Spanish</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
  1. 新しいエンジンが追加されたら、ファイルを保存します。

  2. コマンドを発行して、IBus サービスを再起動しますibus restart

  3. IBus が再起動したら、入力してibus list-engine新しいエンジンがリストに表示されることを確認します。

私のマシンでは、次の構成になっています。追加したのは ですSpanish Latam

$ ibus list-engine | grep -A 7 Espa
idioma: Español
  xkb:es:nodeadkeys:spa - Spanish (no dead keys)
  xkb:es:winkeys:spa - Spanish (Windows)
  xkb:es:dvorak:spa - Spanish (Dvorak)
  xkb:es:deadtilde:spa - Spanish (dead tilde)
  xkb:latam::spa - Spanish Latam
  xkb:es:mac:spa - Spanish (Macintosh)
  xkb:es::spa - Spanish
  1. ibus-setupまたは を使用してibus engine、レイアウトを以前に作成したものに設定します。この時点では、動作するはずです。

これがあなたにとって役立つことを願っています。:)

答え2

私はキーボードを全部取り外しましたIbus の設定次のコマンドを実行します:setxkbmap ラタムターミナル内。

関連情報