アラビア語のキーボード レイアウトでは合字が 1 つの文字として送信されます (Laa の問題)

アラビア語のキーボード レイアウトでは合字が 1 つの文字として送信されます (Laa の問題)

Ubuntuは送信しますアラビア語の合字単一のグリフとして送信されます。たとえば、Laa+Alif 合字「لا」(U+0644、U+0627) は「ﻻ」(U+FEFB) として送信され、(ﻷ، ﻵ، ﻹ) も同様です。

再現する手順

  1. 設定 > キーボード > デフォルトのアラビア語レイアウトを追加
  2. 「ﻻ」(QWERTYキーボードでは「b」)と入力します。

観測結果
出力はﻻ(U+FEFB)

期待される結果
出力は لا (U+0644, U+0627) です。

英語を話す人のために説明すると、これは合字を入力するためのキーがあるようなものです。たとえば、「b」を押して 2 つの文字を入力したいのですが、代わりに1 つの文字としてfi表示されます。これがまさにこの問題で発生していることです。

答え1

X キーボードレイアウト送信するアラビア語の合字グリフを単一のグリフとして送信します。たとえば、Laa+Alif 合字「لا」(U+0644、U+0627)は「ﻻ」(U+FEFB)として送信され、(ﻷ، ﻵ، ﻹ)も同様です。これは、既知の制限xkb では、キーを複数の文字にマッピングすることはできません。

X Compose による回避策

以下の解決策ではXサーバーの再起動が必要です。im-configインストールしている場合は、 を使用できますim-config -n xim。または、次の行を環境変数:

XIM=none
XIM_PROGRAM=/bin/true
XIM_ARGS=
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
SHORT_DESC="X compose table"

ただし、ほとんどの QT ベースのプログラムではこの問題は発生しないため、または を追加するexport GTK_IM_MODULE=ximだけで十分です。~/.xsessionrc~/.xprofile

ibus による回避策

  • 実行してibusを入力方法として設定します。

    im-chooser
    

    または環境変数を設定することによって:

    GTK_IM_MODULE=ibus; QT_IM_MODULE=ibus; XMODIFIERS=@im=ibus
    
  • ibus-daemonibus が設定されていない場合は実行しますibus-setup

  • ibus 入力方法として ar-kbd-m17n を​​使用します。

関連情報