Вопрос или проблема
Мой недавно установленный метод установки fcitx5 для китайского языка не работает в приложениях на базе Electron. (Я могу вводить только латинские символы, и кажется, что метод ввода не принимает мой ввод.) Я использую Ubuntu 24.04 и GNOME 46.
Примечание: Я добавил
--enable-wayland-ime --ozone-platform-hint=wayland --enable-features=UseOzonePlatform
для работы в Wayland. Удаление этих флагов заставляет fcitx5 работать, но они мне нужны, так как я использую дробное масштабирование, которое плохо работает в XWayland.
Я протестировал некоторые другие приложения, не основанные на Electron, такие как Evince и Nautilus, и fcitx5 работает правильно.
Я установил необходимые переменные окружения и установил kimpanel по инструкциям здесь. Я также запустил im-config
и выбрал fcitx5.
/etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
- результат
fcitx5-diagnose
(Примечание: некоторая личная информация удалена, спрашивайте, если это необходимо для решения проблемы.)
-
uname -a
:
[удалено, спрашивайте, если это необходимо] -
lsb_release -a
:Distributor ID: Ubuntu Description: Ubuntu 24.04.1 LTS Release: 24.04 Codename: noble
-
lsb_release -d
:Description: Ubuntu 24.04.1 LTS
-
/etc/lsb-release
:DISTRIB_ID=Ubuntu DISTRIB_RELEASE=24.04 DISTRIB_CODENAME=noble DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"
-
/etc/os-release
:PRETTY_NAME="Ubuntu 24.04.1 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.1 LTS (Noble Numbat)" VERSION_CODENAME=noble ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=noble LOGO=ubuntu-logo
-
Рабочая среда:
Рабочая среда:
gnome3
. -
Тип XDG сессии:
XDG_SESSION_TYPE='wayland'
-
Версия Bash:
BASH_VERSION='5.2.21(1)-release'
Окружение:
-
DISPLAY:
DISPLAY=':0' WAYLAND_DISPLAY='wayland-0'
-
Клавиатурная раскладка:
-
setxkbmap
:WARNING: Running setxkbmap against an Xwayland server xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
-
xprop
:_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
-
-
Языковые настройки:
-
Доступные языковые настройки:
C C.utf8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IL en_IL.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX zh_CN.utf8 zh_SG.utf8
-
Текущие языковые настройки:
LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:en_US:en LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC=zh_CN.UTF-8 LC_TIME=zh_CN.UTF-8 LC_COLLATE="zh_CN.UTF-8" LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES="zh_CN.UTF-8" LC_PAPER=zh_CN.UTF-8 LC_NAME=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 LC_TELEPHONE=zh_CN.UTF-8 LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=zh_CN.UTF-8 LC_ALL=
-
-
Каталоги:
-
Домашний каталог:
/home/[my username, удалено]
-
${XDG_CONFIG_HOME}
:Переменная окружения
XDG_CONFIG_HOME
не установлена.Текущее значение
XDG_CONFIG_HOME
это~/.config
(/home/[my username]/.config
). -
Каталог настроек Fcitx5:
Текущий каталог настроек fcitx5 это
~/.config/fcitx5
(/home/[my username]/.config/fcitx5
).
-
-
Текущий пользователь:
Скрипт запущен от имени [my username] (1000).
Состояние Fcitx:
-
Исполняемый файл:
fcitx5 найден в
/usr/bin/fcitx5
. -
Версия:
Версия Fcitx:
5.1.7
-
Процесс:
Найден 1 процесс fcitx5:
3563 fcitx5
-
fcitx5-remote
:fcitx5-remote
работает нормально. -
Интерфейс DBus:
Используйте
dbus-send
для проверки dbus.Владелец имени DBus
org.fcitx.Fcitx5
это:1.85
.Владелец PID имени DBus
org.fcitx.Fcitx5
это3563
.Отладочная информация от dbus:
Group [x11::0] has 0 InputContext(s) Group [wayland:] has 5 InputContext(s) IC [fee9340d9d2349d2aeccfa71867efada] program:org.gnome.Nautilus frontend:dbus cap:4001000032 focus:0 IC [8d946ad303c04e809ba570a2b4af7dfd] program:gnome-terminal-server frontend:dbus cap:6001000032 focus:1 IC [f2f7df07339d48f1b19644170f0395a3] program:org.gnome.Nautilus frontend:dbus cap:4001021072 focus:0 IC [b6b2642c4b834c929777fa14db5fc868] program:sublime_text frontend:dbus cap:6001000020 focus:0 IC [9f1f250ef47d4680aa8df4f539960021] program: frontend:ibus cap:52 focus:0 Input Context without group
Конфигурация Fcitx:
-
Инструмент конфигурации:
fcitx5-configtool найден в
/usr/bin/fcitx5-configtool
. -
Qt конфигурационный интерфейс:
fcitx5-config-qt найден в
/usr/bin/fcitx5-config-qt
. -
KDE конфигурационный интерфейс:
kcmshell5
не найден.
Настройки переднего плана:
Проверяемые переменные окружения могут показать только окружение текущей командной строки. Есть вероятность, что ваша окружение не применено ко всему рабочему столу. Вы можете использовать xargs -0 -L1 /proc/$PID/environ
для проверки переменных окружения процесса, который не работает должным образом.
Xim:
-
${XMODIFIERS}
:Переменная окружения XMODIFIERS корректно установлена на “@im=fcitx”.
Имя службы Xim, полученное из переменной окружения, это fcitx. -
Службы XIM на корневом окне:
Имя службы XIM совпадает с указанным в переменной окружения.
Qt:
-
qt4 –
${QT4_IM_MODULE}
:Переменная окружения QT_IM_MODULE корректно установлена на “fcitx”.
fcitx5-qt4-immodule-probing
не найден. -
qt5 –
${QT_IM_MODULE}
:Переменная окружения QT_IM_MODULE корректно установлена на “fcitx”.
Используйте fcitx5-qt5-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:
QT_QPA_PLATFORM=wayland QT_IM_MODULE=fcitx IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
-
qt6 –
${QT_IM_MODULE}
:Переменная окружения QT_IM_MODULE корректно установлена на “fcitx”.
Используйте fcitx5-qt6-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:
QT_QPA_PLATFORM=wayland QT_IM_MODULE=fcitx IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
-
Файлы модуля ввода Qt:
Найден Qt5 модуль ввода fcitx5:
/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so
.
Найден Qt6 модуль ввода fcitx5:/lib/x86_64-linux-gnu/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so
.
Найден модуль fcitx5 qt6:/lib/x86_64-linux-gnu/fcitx5/qt6/libfcitx-quickphrase-editor5.so
.Следующие ошибки могут быть неточными, так как угадать путь соответствующей версии Qt зависит от того, как Qt упакован в дистрибутиве. Если вы не используете каких-либо программ соответствующей версии Qt или используете текстовый ввод Qt в Wayland, следущие ошибки не являются критичными.Не найдены модули ввода для Qt4 fcitx5.
Gtk:
-
gtk –
${GTK_IM_MODULE}
:Переменная окружения GTK_IM_MODULE корректно установлена на “fcitx”.
Используйте fcitx5-gtk2-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:
GTK_IM_MODULE=fcitx
Используйте fcitx5-gtk3-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:
GTK_IM_MODULE=fcitx
Используйте fcitx5-gtk4-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:
GTK_IM_MODULE=fcitx
-
gtk-query-immodules
:-
gtk 2:
Не найден
gtk-query-immodules
для gtk 2.Не найден модуль ввода для gtk 2 fcitx5.
-
gtk 3:
Не найден
gtk-query-immodules
для gtk 3.Не найден модуль ввода для gtk 3 fcitx5.
-
-
Кэш модуля ввода Gtk:
-
gtk 2:
Кэш модуля ввода gtk
2.24.33
найден в/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache
.
Строка с версией:# Создано /usr/lib/x86_64-linux-gnu/libgtk2.0-0t64/gtk-query-immodules-2.0 из gtk+-2.24.33
Модуль ввода fcitx5 найден для gtk
2.24.33
."/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-fcitx5.so" "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*"
-
gtk 3:
Кэш модуля ввода gtk
3.24.41
найден в/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
.
Строка с версией:# Создано /usr/lib/x86_64-linux-gnu/libgtk-3-0t64/gtk-query-immodules-3.0 из gtk+-3.24.41
Модуль ввода fcitx5 найден для gtk
3.24.41
."/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-fcitx5.so" "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*"
Кэш модуля ввода gtk
3.24.41
найден в/lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules.cache
.
Строка с версией:# Создано /usr/lib/i386-linux-gnu/libgtk-3-0t64/gtk-query-immodules-3.0 из gtk+-3.24.41
Модуль fcitx5 не найден в кэше
/lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules.cache
-
-
Файлы модуля ввода Gtk:
-
gtk 2:
Все найденные файлы модулей ввода Gtk 2 доступны.
-
gtk 3:
Все найденные файлы модулей ввода Gtk 3 доступны.
-
gtk 4:
Все найденные файлы модулей ввода Gtk 4 доступны.
-
Конфигурация:
Модули Fcitx:
-
Каталог конфигурационных файлов модулей:
Найден каталог конфигурационных файлов модулей fcitx5:
/usr/share/fcitx5/addon
. -
Список модулей:
-
Найдено 30 активированных модулей:
Chewing 5.1.1 Simplified and Traditional Chinese Translation 5.1.3 Classic User Interface 5.1.7 Clipboard 5.1.7 Cloud Pinyin 5.1.3 DBus 5.1.7 DBus Frontend 5.1.7 Emoji 5.1.7 Fcitx4 Frontend 5.1.7 Full width character 5.1.3 IBus Frontend 5.1.7 Lua IME API 5.0.12 Input method selector 5.1.7 Keyboard 5.1.7 KDE Input Method Panel 5.1.7 Lua Addon Loader 5.0.12 Status Notifier 5.1.7 Notification 5.1.7 Pinyin 5.1.3 Extra Pinyin functionality 5.1.3 Punctuation 5.1.3 Quick Phrase 5.1.7 Spell 5.1.7 Table 5.1.3 Unicode 5.1.7 DBus Virtual Keyboard 5.1.7 Wayland 5.1.7 Wayland Input method frontend 5.1.7 XCB 5.1.7 X Input Method Frontend 5.1.7
-
Найдено 0 отключенных модулей:
-
-
Библиотека модулей:
Все библиотеки, необходимые для модулей, найдены.
-
Пользовательский интерфейс:
Найдено 3 активированных модуля пользовательского интерфейса:
Classic User Interface KDE Input Method Panel DBus Virtual Keyboard
Процесс Kimpanel:
3229 /usr/bin/gnome-shell
Методы ввода:
-
$HOME/.config/fcitx5/profile
:[Groups/0] # Имя группы Name=По умолчанию # Раскладка Default Layout=us # Метод ввода по умолчанию DefaultIM=pinyin [Groups/0/Items/0] # Имя Name=keyboard-us # Раскладка Layout= [Groups/0/Items/1] # Имя Name=pinyin # Раскладка Layout= [GroupOrder] 0=По умолчанию
Лог:
-
date
:2025年 01月 04日 星期六 14:15:03 CST
-
$HOME/.config/fcitx5/crash.log
:$HOME/.config/fcitx5/crash.log
не найден.
Ответ или решение
Когда вы сталкиваетесь с проблемой работы метода ввода fcitx5 в приложениях на основе Electron/Chromium в Ubuntu 24.04 под Wayland, важно учитывать несколько ключевых аспектов для успешной настройки и решения проблемы. Давайте подробно рассмотрим ситуацию и предложим варианты решений.
Описание проблемы
На вашем компьютере установлена Ubuntu 24.04 с GNOME 46, и вы используете среду Wayland. Вы сталкиваетесь с проблемой, когда китайский метод ввода fcitx5 не работает в приложениях, основанных на Electron и Chromium, хотя работает в других приложениях, таких как Evince и Nautilus. Применение флагов --enable-wayland-ime --ozone-platform-hint=wayland --enable-features=UseOzonePlatform
было необходимо для работы с дробным масштабированием, однако, это привело к проблемам с методом ввода.
Анализ
-
Параметры среды: Ваши настройки среды включают правильные переменные для интеграции fcitx5, такие как
GTK_IM_MODULE=fcitx
,QT_IM_MODULE=fcitx
, иXMODIFIERS=@im=fcitx
. Это указывает на то, что основная конфигурация сделана правильно. -
Wayland и Electron/Chromium: Использование Wayland в сочетании с Electron/Chromium может вызывать проблемы, так как Wayland и X11 имеют разные методы обработки ввода. Electron и Chromium все еще могут иметь недоработки в поддержке IME под Wayland.
-
Флаги запуска: Флаги
--enable-wayland-ime --ozone-platform-hint=wayland --enable-features=UseOzonePlatform
необходимы для работы приложения на Wayland, но могут влиять на работу IME.
Возможные решения
-
Обновление Electron/Chromium: Проверьте, доступны ли обновления для Electron или Chromium. Новые релизы могут содержать улучшения совместимости с Wayland и IME.
-
Использование альтернативных методов ввода: Если fcitx5 не работает в специфических приложениях, попробуйте альтернативы, такие как ibus, если это возможно.
-
Отладка среды Wayland: Используйте
xprop
иxev
для проверки событий ввода и убедитесь, что соответствующие события проходят через Wayland корректно. -
Тестирование окружения IME: Выполните проверку переменных окружения в работающем процессе, как предложено в вашей конфигурации, используя
xargs
на/proc/$PID/environ
, чтобы убедиться, что все переменные установлены правильно во всех контекстах. -
Конфигурация Electron/Chromium: Возможно, параметров самого приложения недостаточно. Попробуйте внести изменения в файл конфигурации
~/.config/electron-flags.conf
, добавив туда нужные флаги.
Заключение
Успешная интеграция fcitx5 в среду Wayland с приложениями на базе Electron и Chromium требует всестороннего подхода. Убедитесь, что все системные компоненты и приложения обновлены до последних версий, и перепроверьте правильность всех конфигураций. Этот подход позволит максимально использовать преимущества вашего рабочего окружения и обеспечить функционирование всех необходимых методов ввода.