Убунту отправляетАрабские лигатурные глифыкак один глиф. Например, лигатура Лаа+Алиф "لا" (U+0644, U+0627) отправляется как "ﻻ" (U+FEFB), и аналогично для (ﻷ، ﻵ، ﻹ).
ДЕЙСТВИЯ ПО ВОСПРОИЗВЕДЕНИЮ
- Настройки > Клавиатура > Добавить арабскую раскладку по умолчанию
- Введите «ﻻ» (например: «b» на QWERTY-клавиатурах)
НАБЛЮДАЕМЫЙ РЕЗУЛЬТАТ
Выходной сигнал: (U+FEFB)
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ
Выходные данные: لا (U+0644, U+0627).
Чтобы прояснить ситуацию для англоговорящих, это похоже на наличие клавиши для ввода лигатуры. Допустим, вы хотите нажать "b", чтобы ввести два символа: 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-setup
если ibus не настроен.Используйте ar-kbd-m17n в качестве метода ввода ibus.