阿拉伯语键盘布局将连字符作为一个字符发送(Laa 问题)

阿拉伯语键盘布局将连字符作为一个字符发送(Laa 问题)

Ubuntu 发送阿拉伯语连字符作为单个字形发送。例如,Laa+Alif 连字符“لا”(U+0644、U+0627)被发送为“ﻻ”(U+FEFB),对于(ﻷ، ﻵ، ﻹ)也是如此。

重现步骤

  1. 设置 > 键盘 > 添加默认阿拉伯语布局
  2. 输入“ﻻ”(即 QWERTY 键盘中的“b”)

观察结果
输出为ﻻ (U+FEFB)

预期结果
输出为لا (U+0644, U+0627)。

向英语使用者解释一下,这就像有一个键可以输入连字符。假设您想按“b”键输入两个字符: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 未设置,则运行ibus-daemon或。ibus-setup

  • 使用 ar-kbd-m17n 作为 ibus 输入法。

相关内容