Как использовать японский метод ввода fcitx5 для программ с графическим интерфейсом (acme, sam, 9term...) Plan 9 из пользовательского пространства (plan9port)?
Я использую i3wm.
Я уже объявил три переменные среды, как показано ниже:
$ export -p | grep fcitx
declare -x GTK_IM_MODULE="fcitx"
declare -x QT_IM_MODULE="fcitx"
declare -x XMODIFIERS="@im=fcitx"
$
Руководства plan9port мне не помогли. Когда я вызываю9 acme
,9 sam
,9 9term
, они не позволяют мне изменить режим ввода на японский.
1 ответ
Итак, прежде всего, давайте посмотрим, как это реализовано. Приложение plan9port основано на прокладке соответствующего API. Фактическое перемещение окон осуществляется с помощью библиотеки libdraw, которая вообще не имеет понятия метода ввода.
devdraw — это процесс, который напрямую взаимодействует с X11. А поскольку он использует Xlib, мы можем просто проверить, есть ли в нем какая-либо ссылка на API метода ввода Xlib (точка входа — XOpenIM1).
Хотя мы не находим никаких следов в текущем коде, появляется несвязанный запрос на включение 2 .
Кратко прочитав его, он пытается включить метод ввода в devdraw, что является хорошим способом его поддержки, пока интерфейс commit_string между devdraw и приложением может быть смоделирован нажатием клавиши, и из кода кажется, что это так (gfx_keystroke).
Попробовал этот запрос на извлечение на Arch, кажется, все еще работает. fcixt5 с plan9 в данной ветке. Всплывающее окно не окажется в ожидаемом месте.