Ubuntuは送信しますアラビア語の合字単一のグリフとして送信されます。たとえば、Laa+Alif 合字「لا」(U+0644、U+0627) は「ﻻ」(U+FEFB) として送信され、(ﻷ، ﻵ، ﻹ) も同様です。
再現する手順
- 設定 > キーボード > デフォルトのアラビア語レイアウトを追加
- 「ﻻ」(QWERTYキーボードでは「b」)と入力します。
観測結果
出力はﻻ(U+FEFB)
期待される結果
出力は لا (U+0644, U+0627) です。
英語を話す人のために説明すると、これは合字を入力するためのキーがあるようなものです。たとえば、「b」を押して 2 つの文字を入力したいのですが、代わりに1 つの文字としてfi
表示されます。これがまさにこの問題で発生していることです。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-daemon
ibus が設定されていない場合は実行しますibus-setup
。ibus 入力方法として ar-kbd-m17n を使用します。